From 62faba8f20f78c47dbaf3400871d5578863766ea Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 28 Jan 2013 19:12:22 -0300 Subject: [PATCH] First Draft --- .DS_Store | Bin 0 -> 12292 bytes org.isistan.flabot.debugger/.classpath | 7 + org.isistan.flabot.debugger/.project | 30 + .../META-INF/MANIFEST.MF | 24 + .../debugger/BreakpointsInstaller.class | Bin 0 -> 4513 bytes .../flabot/debugger/DebuggerPlugin.class | Bin 0 -> 1911 bytes .../debugger/InstallBreakpointsAction.class | Bin 0 -> 9394 bytes .../flabot/debugger/messages/Messages.class | Bin 0 -> 1376 bytes .../debugger/messages/messages.properties | 3 + org.isistan.flabot.debugger/build.properties | 8 + .../org.eclipse.jdt.ui.prefs | 3 + org.isistan.flabot.debugger/plugin.xml | 15 + .../icon/failureLocatedActionIcon.gif | Bin 0 -> 907 bytes .../flabot/debugger/BreakpointsInstaller.java | 93 + .../flabot/debugger/DebuggerPlugin.java | 89 + .../debugger/InstallBreakpointsAction.java | 166 + .../flabot/debugger/messages/Messages.java | 34 + .../debugger/messages/messages.properties | 3 + org.isistan.flabot.engine/.classpath | 7 + org.isistan.flabot.engine/.project | 31 + .../META-INF/MANIFEST.MF | 39 + .../edit/controlview/ControlView$1.class | Bin 0 -> 1139 bytes .../edit/controlview/ControlView$2.class | Bin 0 -> 1107 bytes .../edit/controlview/ControlView$3.class | Bin 0 -> 1736 bytes .../edit/controlview/ControlView$4.class | Bin 0 -> 1369 bytes .../edit/controlview/ControlView$5.class | Bin 0 -> 1369 bytes .../ControlView$MenuCreator$1.class | Bin 0 -> 1392 bytes .../controlview/ControlView$MenuCreator.class | Bin 0 -> 3556 bytes .../flabot/edit/controlview/ControlView.class | Bin 0 -> 7175 bytes .../ControlViewContentProvider.class | Bin 0 -> 2342 bytes .../ControlViewLabelProvider.class | Bin 0 -> 3879 bytes .../edit/controlview/ControlViewPage$1.class | Bin 0 -> 955 bytes .../edit/controlview/ControlViewPage.class | Bin 0 -> 8550 bytes .../isistan/flabot/edit/mapview/MapView.class | Bin 0 -> 3603 bytes .../flabot/edit/mapview/MapViewPage$1.class | Bin 0 -> 1027 bytes .../flabot/edit/mapview/MapViewPage$2.class | Bin 0 -> 865 bytes .../flabot/edit/mapview/MapViewPage$3.class | Bin 0 -> 911 bytes .../flabot/edit/mapview/MapViewPage$4.class | Bin 0 -> 1314 bytes ...iewPage$CompoundVisualSimplePathNode.class | Bin 0 -> 1675 bytes .../flabot/edit/mapview/MapViewPage.class | Bin 0 -> 37126 bytes .../NoExecutionFlabotCommandStack.class | Bin 0 -> 949 bytes .../mapview/editparts/EllipseEditPart.class | Bin 0 -> 1926 bytes .../editparts/MapViewComponentEditPart.class | Bin 0 -> 637 bytes .../editparts/MapViewDiagramEditPart.class | Bin 0 -> 614 bytes .../mapview/editparts/MapViewFactory.class | Bin 0 -> 3494 bytes .../editparts/MapViewVisualJumpEditPart.class | Bin 0 -> 1931 bytes .../ScalableFreeformMapViewRootEditPart.class | Bin 0 -> 727 bytes .../mapview/editparts/StateColorFactory.class | Bin 0 -> 2092 bytes .../edit/mapview/figure/EllipseFigure.class | Bin 0 -> 1793 bytes .../edit/sequenceview/SequenceView.class | Bin 0 -> 3299 bytes .../sequenceview/SequenceViewPage$1.class | Bin 0 -> 1092 bytes .../sequenceview/SequenceViewPage$2.class | Bin 0 -> 1394 bytes .../edit/sequenceview/SequenceViewPage.class | Bin 0 -> 7160 bytes .../editparts/SequenceViewEditPart$1.class | Bin 0 -> 1040 bytes ...ViewEditPart$DependecyToArrowFactory.class | Bin 0 -> 1333 bytes ...uenceViewEditPart$SequenceViewFooter.class | Bin 0 -> 1613 bytes ...uenceViewEditPart$SequenceViewHeader.class | Bin 0 -> 1335 bytes .../editparts/SequenceViewEditPart.class | Bin 0 -> 16237 bytes .../editparts/SequenceViewFactory.class | Bin 0 -> 1004 bytes .../edit/sequenceview/figures/Constants.class | Bin 0 -> 2749 bytes .../sequenceview/figures/Interaction.class | Bin 0 -> 2267 bytes .../figures/InteractionManagement.class | Bin 0 -> 1795 bytes .../figures/SequenceDiagram.class | Bin 0 -> 17070 bytes .../actions/GeneralLogFilterAction.class | Bin 0 -> 3507 bytes .../edit/ucmeditor/actions/ResetAction.class | Bin 0 -> 5527 bytes .../ucmeditor/actions/RunEngineAction.class | Bin 0 -> 7592 bytes .../actions/TreatFailureAction.class | Bin 0 -> 3941 bytes .../engine/EnginePerspectiveFactory.class | Bin 0 -> 1843 bytes .../isistan/flabot/engine/EnginePlugin.class | Bin 0 -> 2531 bytes .../engine/ExtensionPointConstants.class | Bin 0 -> 1383 bytes .../flabot/engine/InterfaceContextInfo.class | Bin 0 -> 391 bytes .../flabot/engine/InterfacePluginEngine.class | Bin 0 -> 1485 bytes .../isistan/flabot/engine/JavaLogEngine.class | Bin 0 -> 12928 bytes .../isistan/flabot/engine/JavaRuntime.class | Bin 0 -> 7808 bytes .../org/isistan/flabot/engine/Loader.class | Bin 0 -> 14172 bytes .../RuntimeManager$ResultsRunnable.class | Bin 0 -> 4040 bytes .../flabot/engine/RuntimeManager.class | Bin 0 -> 18131 bytes .../SystemFactory$GetStateRunnable.class | Bin 0 -> 1811 bytes .../isistan/flabot/engine/SystemFactory.class | Bin 0 -> 6840 bytes .../engine/commands/AnalyzeCommand.class | Bin 0 -> 5574 bytes .../commands/AnalyzeConstraintCommand.class | Bin 0 -> 1873 bytes .../commands/AnalyzeDefaultCommand.class | Bin 0 -> 1646 bytes .../commands/AnalyzeMappingCommand.class | Bin 0 -> 2237 bytes .../AnalyzePostConstraintCommand.class | Bin 0 -> 2053 bytes .../commands/AnalyzePostDefaultCommand.class | Bin 0 -> 2640 bytes .../commands/AnalyzePostMappingCommand.class | Bin 0 -> 2156 bytes .../flabot/engine/commands/Command.class | Bin 0 -> 835 bytes .../commands/EvaluateAndJoinCommand.class | Bin 0 -> 2817 bytes .../engine/commands/EvaluateCommand.class | Bin 0 -> 2414 bytes .../commands/EvaluateDefaultCommand.class | Bin 0 -> 2227 bytes .../EvaluateMappingAndConstraintCommand.class | Bin 0 -> 2289 bytes .../commands/EvaluateOrJoinCommand.class | Bin 0 -> 2853 bytes .../commands/EvaluatePostAndJoinCommand.class | Bin 0 -> 3750 bytes .../EvaluatePostMappingStubCommand.class | Bin 0 -> 3247 bytes ...tePostOrJoinCommand$GetStateRunnable.class | Bin 0 -> 2394 bytes .../commands/EvaluatePostOrJoinCommand.class | Bin 0 -> 5664 bytes .../commands/EvaluatePostStubCommand.class | Bin 0 -> 2945 bytes .../engine/commands/EvaluateStubCommand.class | Bin 0 -> 5885 bytes .../engine/commands/SituationCommand.class | Bin 0 -> 2166 bytes .../dialogs/JoinOrSetStateDialog$1.class | Bin 0 -> 1235 bytes .../dialogs/JoinOrSetStateDialog$2.class | Bin 0 -> 1235 bytes .../dialogs/JoinOrSetStateDialog$3.class | Bin 0 -> 1159 bytes .../dialogs/JoinOrSetStateDialog$4.class | Bin 0 -> 2020 bytes .../engine/dialogs/JoinOrSetStateDialog.class | Bin 0 -> 10386 bytes ...ResponsibilityExecutionStateDialog$1.class | Bin 0 -> 1617 bytes ...ResponsibilityExecutionStateDialog$2.class | Bin 0 -> 1671 bytes ...ResponsibilityExecutionStateDialog$3.class | Bin 0 -> 1669 bytes .../ResponsibilityExecutionStateDialog.class | Bin 0 -> 13048 bytes .../ResultFaultLocatorEngineDialog$1.class | Bin 0 -> 1354 bytes .../ResultFaultLocatorEngineDialog$2.class | Bin 0 -> 1354 bytes .../ResultFaultLocatorEngineDialog$3.class | Bin 0 -> 1354 bytes .../ResultFaultLocatorEngineDialog$4.class | Bin 0 -> 1312 bytes .../ResultFaultLocatorEngineDialog$5.class | Bin 0 -> 1478 bytes .../ResultFaultLocatorEngineDialog.class | Bin 0 -> 11164 bytes .../org/isistan/flabot/engine/engine.genmodel | 72 + .../flabot/engine/executionmodel.ecore | 110 + .../flabot/engine/executionstate.ecore | 83 + .../BasicMappingBasedFilter.class | Bin 0 -> 235 bytes .../ContextCreationException.class | Bin 0 -> 964 bytes .../engine/executionstate/Diagnostic.class | Bin 0 -> 709 bytes .../executionstate/ExecutionState.class | Bin 0 -> 3547 bytes .../ExecutionStateManager.class | Bin 0 -> 7307 bytes .../ExecutionstateFactory.class | Bin 0 -> 1936 bytes .../ExecutionstatePackage.class | Bin 0 -> 6387 bytes .../GeneralLogFilterStrategy.class | Bin 0 -> 282 bytes .../ManualStateDeterminationStrategy.class | Bin 0 -> 261 bytes .../ManualTraceInferenceStrategy.class | Bin 0 -> 249 bytes .../executionstate/MappingBasedFilter.class | Bin 0 -> 528 bytes .../engine/executionstate/OrFilter.class | Bin 0 -> 253 bytes .../PrologProviderStrategy.class | Bin 0 -> 323 bytes .../SimpleGeneralLogFilterStrategy.class | Bin 0 -> 358 bytes .../SimplePrologProviderStrategy.class | Bin 0 -> 249 bytes .../SimpleTraceInferenceStrategy.class | Bin 0 -> 249 bytes .../StateDeterminationException.class | Bin 0 -> 806 bytes .../StateDeterminationStrategy.class | Bin 0 -> 702 bytes .../StateDeterminationStrategyRegistry.class | Bin 0 -> 288 bytes ...romMappingStateDeterminationStrategy.class | Bin 0 -> 281 bytes ...TraceBasedStateDeterminationStrategy.class | Bin 0 -> 1855 bytes .../TraceInferenceStrategy.class | Bin 0 -> 859 bytes .../executionstate/TraceLogManager$1.class | Bin 0 -> 5048 bytes .../executionstate/TraceLogManager.class | Bin 0 -> 1894 bytes .../TraceLogManagerException.class | Bin 0 -> 510 bytes .../GetResponsibilityNodeStateAction.class | Bin 0 -> 3200 bytes ...pdateGeneralLogFilterStrategyCommand.class | Bin 0 -> 1874 bytes .../UpdatePrologProviderStrategyCommand.class | Bin 0 -> 1824 bytes ...ateStateDeterminationStrategyCommand.class | Bin 0 -> 1877 bytes .../FlabotFileContextProvider$1.class | Bin 0 -> 1830 bytes .../FlabotFileContextProvider$2.class | Bin 0 -> 1811 bytes .../FlabotFileContextProvider$3.class | Bin 0 -> 1934 bytes .../FlabotFileContextProvider.class | Bin 0 -> 9478 bytes ...ileContextProviderConfigurationTab$1.class | Bin 0 -> 1693 bytes ...ileContextProviderConfigurationTab$2.class | Bin 0 -> 1292 bytes ...tFileContextProviderConfigurationTab.class | Bin 0 -> 7733 bytes .../LaunchConfigurationConstants.class | Bin 0 -> 360 bytes ...LogStateDeterminationContextProvider.class | Bin 0 -> 3328 bytes .../correlation/AndCompositeCorrelator.class | Bin 0 -> 1697 bytes .../CallStackDistanceCorrelator.class | Bin 0 -> 2562 bytes .../correlation/Correlator.class | Bin 0 -> 408 bytes .../correlation/LastExecutionCorrelator.class | Bin 0 -> 1879 bytes .../correlation/NullCorrelator.class | Bin 0 -> 954 bytes .../correlation/SameInstanceCorrelator.class | Bin 0 -> 2066 bytes .../correlation/SameThreadCorrelator.class | Bin 0 -> 1918 bytes .../TimestampDeltaCorrelator.class | Bin 0 -> 2101 bytes .../dialog/TagFilterDialogManager.class | Bin 0 -> 826 bytes .../swt/ShowTagInformationDialog$1.class | Bin 0 -> 1074 bytes .../swt/ShowTagInformationDialog$2.class | Bin 0 -> 1089 bytes .../dialog/swt/ShowTagInformationDialog.class | Bin 0 -> 9792 bytes .../dialog/swt/TagFilterContentProvider.class | Bin 0 -> 1725 bytes ...TagFilterDialog$SWTTagFilterDialog$1.class | Bin 0 -> 3431 bytes ...TagFilterDialog$SWTTagFilterDialog$2.class | Bin 0 -> 2389 bytes ...TagFilterDialog$SWTTagFilterDialog$3.class | Bin 0 -> 2414 bytes ...TagFilterDialog$SWTTagFilterDialog$4.class | Bin 0 -> 1297 bytes ...TagFilterDialog$SWTTagFilterDialog$5.class | Bin 0 -> 2728 bytes ...TagFilterDialog$SWTTagFilterDialog$6.class | Bin 0 -> 1672 bytes .../TagFilterDialog$SWTTagFilterDialog.class | Bin 0 -> 11234 bytes .../dialog/swt/TagFilterDialog.class | Bin 0 -> 1476 bytes .../dialog/swt/TagFilterLabelProvider.class | Bin 0 -> 5007 bytes .../swt/TagTreeModel$PropertyWrapper.class | Bin 0 -> 2048 bytes .../dialog/swt/TagTreeModel$TagWrapper.class | Bin 0 -> 3807 bytes .../dialog/swt/TagTreeModel$Wrapper.class | Bin 0 -> 525 bytes .../correlation/dialog/swt/TagTreeModel.class | Bin 0 -> 2031 bytes ...TagTreeViewSorter$InstanceComparator.class | Bin 0 -> 2704 bytes .../swt/TagTreeViewSorter$TagComparator.class | Bin 0 -> 1577 bytes ...gTreeViewSorter$TagWrapperComparator.class | Bin 0 -> 2871 bytes .../dialog/swt/TagTreeViewSorter.class | Bin 0 -> 2303 bytes .../dialogs/ChangeNotifier.class | Bin 0 -> 183 bytes .../dialogs/ManualStrategyGUIFactory.class | Bin 0 -> 3942 bytes ...teDeterminationStrategyEditionItem$1.class | Bin 0 -> 1957 bytes ...tateDeterminationStrategyEditionItem.class | Bin 0 -> 10764 bytes .../StateFromMappingStrategyGUIFactory.class | Bin 0 -> 5799 bytes .../dialogs/StrategyGUIFactory.class | Bin 0 -> 973 bytes .../dialogs/StrategyGUILoader.class | Bin 0 -> 5950 bytes .../dialogs/TraceStrategyGUIFactory.class | Bin 0 -> 8929 bytes .../DefaultPredefinedCondition.class | Bin 0 -> 2542 bytes .../conditions/PredefinedCondition.class | Bin 0 -> 907 bytes .../SnapshotPredefinedCondition.class | Bin 0 -> 526 bytes .../predefined/EventObjectSnapshot.class | Bin 0 -> 2961 bytes .../predefined/EventPreviousScope.class | Bin 0 -> 1472 bytes .../predefined/FixedStateDefault.class | Bin 0 -> 1833 bytes .../predefined/GeneralLogObjectSnapshot.class | Bin 0 -> 2852 bytes .../ResponsibilityObjectSnapshot.class | Bin 0 -> 2890 bytes .../ResponsibilityPreviousScope.class | Bin 0 -> 1220 bytes .../predefined/VariableStateOnAnyTag.class | Bin 0 -> 2147 bytes .../predefined/VariableStateOnCustomTag.class | Bin 0 -> 2830 bytes .../predefined/VariableStateOnError.class | Bin 0 -> 2158 bytes .../ArgumentPredefinedProperty.class | Bin 0 -> 1679 bytes .../ExecutionInstancePredefinedProperty.class | Bin 0 -> 1708 bytes .../ReturnValuePredefinedProperty.class | Bin 0 -> 1689 bytes .../SnapshotFieldPredefinedProperty.class | Bin 0 -> 2033 bytes .../SnapshotNullPredefinedProperty.class | Bin 0 -> 1092 bytes .../SnapshotObjectPredefinedProperty.class | Bin 0 -> 1946 bytes .../SnapshotToStringPredefinedProperty.class | Bin 0 -> 1769 bytes .../StringMatchingPredefinedProperty.class | Bin 0 -> 2242 bytes .../ConditionEventStrategyEditionItem$1.class | Bin 0 -> 1959 bytes .../ConditionEventStrategyEditionItem.class | Bin 0 -> 9921 bytes .../SimplePrologProviderStrategyGUI$1.class | Bin 0 -> 1817 bytes .../SimplePrologProviderStrategyGUI.class | Bin 0 -> 9334 bytes ...eneralLogFilterStrategyEditionItem$1.class | Bin 0 -> 2013 bytes .../GeneralLogFilterStrategyEditionItem.class | Bin 0 -> 9523 bytes ...LogFilterPrologProviderStrategyGUI$1.class | Bin 0 -> 1856 bytes ...alLogFilterPrologProviderStrategyGUI.class | Bin 0 -> 7709 bytes .../MatchingPredefinedPropertyDialog$1.class | Bin 0 -> 1233 bytes .../MatchingPredefinedPropertyDialog$2.class | Bin 0 -> 1248 bytes .../MatchingPredefinedPropertyDialog$3.class | Bin 0 -> 1248 bytes .../MatchingPredefinedPropertyDialog.class | Bin 0 -> 7077 bytes .../prolog/PrologEditComposite$1.class | Bin 0 -> 1901 bytes .../prolog/PrologEditComposite$2.class | Bin 0 -> 2071 bytes .../dialogs/prolog/PrologEditComposite.class | Bin 0 -> 4701 bytes .../dialogs/prolog/RulesEditionDialog$1.class | Bin 0 -> 996 bytes .../prolog/RulesEditionDialog$10.class | Bin 0 -> 2592 bytes .../prolog/RulesEditionDialog$11.class | Bin 0 -> 2646 bytes .../dialogs/prolog/RulesEditionDialog$2.class | Bin 0 -> 1011 bytes .../dialogs/prolog/RulesEditionDialog$3.class | Bin 0 -> 1011 bytes .../dialogs/prolog/RulesEditionDialog$4.class | Bin 0 -> 1915 bytes .../dialogs/prolog/RulesEditionDialog$5.class | Bin 0 -> 1633 bytes .../dialogs/prolog/RulesEditionDialog$6.class | Bin 0 -> 2933 bytes .../dialogs/prolog/RulesEditionDialog$7.class | Bin 0 -> 2916 bytes .../dialogs/prolog/RulesEditionDialog$8.class | Bin 0 -> 3087 bytes .../dialogs/prolog/RulesEditionDialog$9.class | Bin 0 -> 2907 bytes .../dialogs/prolog/RulesEditionDialog.class | Bin 0 -> 24188 bytes .../impl/BasicMappingBasedFilterImpl.class | Bin 0 -> 6172 bytes .../executionstate/impl/DiagnosticImpl.class | Bin 0 -> 6782 bytes .../EStringToEJavaObjectMapEntryImpl.class | Bin 0 -> 5040 bytes .../impl/ExecutionstateFactoryImpl.class | Bin 0 -> 8272 bytes .../impl/ExecutionstatePackageImpl.class | Bin 0 -> 16751 bytes ...inationStrategyImpl$GetStateRunnable.class | Bin 0 -> 2018 bytes ...ManualStateDeterminationStrategyImpl.class | Bin 0 -> 4914 bytes .../ManualTraceInferenceStrategyImpl.class | Bin 0 -> 7450 bytes .../impl/MappingBasedFilterImpl.class | Bin 0 -> 7051 bytes .../executionstate/impl/OrFilterImpl.class | Bin 0 -> 7265 bytes ...ateDeterminationStrategyMapEntryImpl.class | Bin 0 -> 5409 bytes .../SimpleGeneralLogFilterStrategyImpl.class | Bin 0 -> 3472 bytes .../SimplePrologProviderStrategyImpl.class | Bin 0 -> 1273 bytes .../SimpleTraceInferenceStrategyImpl.class | Bin 0 -> 6573 bytes .../impl/StateDeterminationStrategyImpl.class | Bin 0 -> 3253 bytes ...ateDeterminationStrategyRegistryImpl.class | Bin 0 -> 3663 bytes ...appingStateDeterminationStrategyImpl.class | Bin 0 -> 4252 bytes ...eBasedStateDeterminationStrategyImpl.class | Bin 0 -> 17070 bytes .../impl/TraceInferenceStrategyImpl.class | Bin 0 -> 5214 bytes .../DefaultLogQueryPredicates.class | Bin 0 -> 9409 bytes .../JavalogTraceInferenceStrategy.class | Bin 0 -> 359 bytes .../javalogtrace/JavalogtraceFactory.class | Bin 0 -> 799 bytes .../javalogtrace/JavalogtracePackage.class | Bin 0 -> 1454 bytes .../javalogtrace/LogQueryPredicates$1.class | Bin 0 -> 1452 bytes .../javalogtrace/LogQueryPredicates.class | Bin 0 -> 14248 bytes .../TraceInferenceJavalogEngine.class | Bin 0 -> 1587 bytes .../TraceInferenceJavalogEngineLocator.class | Bin 0 -> 2290 bytes .../DefaultJavalogCorrelatorBuilder.class | Bin 0 -> 4812 bytes .../JavalogCorrelatorBuilder.class | Bin 0 -> 1036 bytes ...ferenceStrategyImpl$AcceptAllMapping.class | Bin 0 -> 853 bytes .../JavalogTraceInferenceStrategyImpl.class | Bin 0 -> 14358 bytes .../impl/JavalogtraceFactoryImpl.class | Bin 0 -> 2163 bytes .../impl/JavalogtracePackageImpl.class | Bin 0 -> 6278 bytes .../DefaultJavalogTagFilterBuilder.class | Bin 0 -> 3954 bytes .../JavalogTagFilterBuilder.class | Bin 0 -> 985 bytes .../util/JavalogtraceAdapterFactory$1.class | Bin 0 -> 1785 bytes .../util/JavalogtraceAdapterFactory.class | Bin 0 -> 2239 bytes .../util/JavalogtraceSwitch.class | Bin 0 -> 2707 bytes .../tagfilter/AcceptAllFilter.class | Bin 0 -> 610 bytes .../tagfilter/AndCompositeFilter.class | Bin 0 -> 1379 bytes .../tagfilter/ClassTagJClass.class | Bin 0 -> 9648 bytes .../tagfilter/ComponentScopeTagFilter.class | Bin 0 -> 1792 bytes .../InstanceClassSubstringFilter.class | Bin 0 -> 2094 bytes .../tagfilter/JavalogFilter.class | Bin 0 -> 1730 bytes .../executionstate/tagfilter/TagFilter.class | Bin 0 -> 208 bytes .../util/ExecutionstateAdapterFactory$1.class | Bin 0 -> 7388 bytes .../util/ExecutionstateAdapterFactory.class | Bin 0 -> 4022 bytes .../util/ExecutionstateSwitch.class | Bin 0 -> 10693 bytes .../FailureLocatedAction.class | Bin 0 -> 338 bytes .../FailureLocatedActionLoader.class | Bin 0 -> 6791 bytes .../flabot/engine/icons/arrow_constraint.gif | Bin 0 -> 87 bytes .../flabot/engine/icons/arrow_mapping.gif | Bin 0 -> 85 bytes .../engine/icons/arrow_precondition.gif | Bin 0 -> 85 bytes .../flabot/engine/icons/arrow_previous.gif | Bin 0 -> 85 bytes .../flabot/engine/icons/dependency.gif | Bin 0 -> 84 bytes .../org/isistan/flabot/engine/icons/dot.gif | Bin 0 -> 110 bytes .../org/isistan/flabot/engine/icons/ff.gif | Bin 0 -> 337 bytes .../org/isistan/flabot/engine/icons/pause.gif | Bin 0 -> 338 bytes .../org/isistan/flabot/engine/icons/play.gif | Bin 0 -> 379 bytes .../isistan/flabot/engine/icons/property.gif | Bin 0 -> 181 bytes .../org/isistan/flabot/engine/icons/rr.gif | Bin 0 -> 335 bytes .../isistan/flabot/engine/icons/source.gif | Bin 0 -> 179 bytes .../org/isistan/flabot/engine/icons/step.gif | Bin 0 -> 89 bytes .../org/isistan/flabot/engine/icons/stop.gif | Bin 0 -> 217 bytes .../org/isistan/flabot/engine/icons/tag.gif | Bin 0 -> 313 bytes .../isistan/flabot/engine/icons/target.gif | Bin 0 -> 863 bytes .../isistan/flabot/engine/javalogtrace.ecore | 10 + .../engine/locator/FlabotEngineLocator.class | Bin 0 -> 3371 bytes .../flabot/engine/messages/Messages.class | Bin 0 -> 1370 bytes .../engine/messages/messages.properties | 186 + .../flabot/executionmodel/Dependency.class | Bin 0 -> 340 bytes .../executionmodel/DependencyInfo.class | Bin 0 -> 401 bytes .../executionmodel/EvaluationStep.class | Bin 0 -> 508 bytes .../executionmodel/ExecutionContext.class | Bin 0 -> 2371 bytes .../flabot/executionmodel/ExecutionInfo.class | Bin 0 -> 827 bytes .../executionmodel/ExecutionInfoManager.class | Bin 0 -> 746 bytes .../flabot/executionmodel/ExecutionStep.class | Bin 0 -> 1413 bytes .../ExecutionmodelFactory.class | Bin 0 -> 1115 bytes .../ExecutionmodelPackage.class | Bin 0 -> 8467 bytes .../executionmodel/impl/DependencyImpl.class | Bin 0 -> 3654 bytes .../EStringToEJavaObjectMapEntryImpl.class | Bin 0 -> 5012 bytes .../impl/EStringToEObjectMapEntryImpl.class | Bin 0 -> 5230 bytes .../impl/EvaluationStepImpl.class | Bin 0 -> 5185 bytes .../impl/ExecutionContextImpl.class | Bin 0 -> 22880 bytes .../impl/ExecutionInfoImpl.class | Bin 0 -> 7220 bytes .../impl/ExecutionInfoManagerImpl.class | Bin 0 -> 7370 bytes .../impl/ExecutionStepImpl.class | Bin 0 -> 12110 bytes .../impl/ExecutionmodelFactoryImpl.class | Bin 0 -> 5141 bytes .../impl/ExecutionmodelPackageImpl.class | Bin 0 -> 20122 bytes ...lityNodeToExecutionStateMapEntryImpl.class | Bin 0 -> 5746 bytes ...PathNodeToExecutionStateMapEntryImpl.class | Bin 0 -> 5714 bytes .../util/ExecutionmodelAdapterFactory$1.class | Bin 0 -> 3630 bytes .../util/ExecutionmodelAdapterFactory.class | Bin 0 -> 2937 bytes .../util/ExecutionmodelSwitch.class | Bin 0 -> 5407 bytes org.isistan.flabot.engine/build.properties | 10 + org.isistan.flabot.engine/icons/flabot.gif | Bin 0 -> 1034 bytes org.isistan.flabot.engine/plugin.properties | 20 + org.isistan.flabot.engine/plugin.xml | 92 + .../resource/LocatorMethod-Improved.pl | 394 + .../resource/LogicModuleConstraint.pl | 51 + .../resource/LogicModuleGeneral.pl | 149 + .../resource/LogicModuleStub.pl | 163 + .../resource/TraceInferencePredicates.pl | 565 + .../schema/failureLocatedAction.exsd | 135 + .../generalLogFilterStrategyUIComboBox.exsd | 105 + .../schema/strategyUIComboBox.exsd | 105 + .../flabot/edit/controlview/ControlView.java | 259 + .../ControlViewContentProvider.java | 88 + .../controlview/ControlViewLabelProvider.java | 106 + .../edit/controlview/ControlViewPage.java | 294 + .../isistan/flabot/edit/mapview/MapView.java | 105 + .../flabot/edit/mapview/MapViewPage.java | 1212 + .../NoExecutionFlabotCommandStack.java | 36 + .../mapview/editparts/EllipseEditPart.java | 51 + .../editparts/MapViewComponentEditPart.java | 21 + .../editparts/MapViewDiagramEditPart.java | 20 + .../mapview/editparts/MapViewFactory.java | 94 + .../editparts/MapViewVisualJumpEditPart.java | 30 + .../ScalableFreeformMapViewRootEditPart.java | 25 + .../mapview/editparts/StateColorFactory.java | 49 + .../edit/mapview/figure/EllipseFigure.java | 44 + .../edit/sequenceview/SequenceView.java | 101 + .../edit/sequenceview/SequenceViewPage.java | 249 + .../editparts/SequenceViewEditPart.java | 679 + .../editparts/SequenceViewFactory.java | 36 + .../edit/sequenceview/figures/Constants.java | 2 + .../sequenceview/figures/SequenceDiagram.java | 808 + .../actions/GeneralLogFilterAction.java | 22 + .../edit/ucmeditor/actions/ResetAction.java | 67 + .../ucmeditor/actions/RunEngineAction.java | 224 + .../ucmeditor/actions/TreatFailureAction.java | 56 + .../engine/EnginePerspectiveFactory.java | 43 + .../isistan/flabot/engine/EnginePlugin.java | 103 + .../engine/ExtensionPointConstants.java | 50 + .../flabot/engine/InterfaceContextInfo.java | 18 + .../flabot/engine/InterfacePluginEngine.java | 24 + .../isistan/flabot/engine/JavaLogEngine.java | 425 + .../isistan/flabot/engine/JavaRuntime.java | 163 + .../src/org/isistan/flabot/engine/Loader.java | 364 + .../isistan/flabot/engine/RuntimeManager.java | 577 + .../isistan/flabot/engine/SystemFactory.java | 183 + .../engine/commands/AnalyzeCommand.java | 120 + .../commands/AnalyzeConstraintCommand.java | 44 + .../commands/AnalyzeDefaultCommand.java | 36 + .../commands/AnalyzeMappingCommand.java | 50 + .../AnalyzePostConstraintCommand.java | 38 + .../commands/AnalyzePostDefaultCommand.java | 51 + .../commands/AnalyzePostMappingCommand.java | 42 + .../flabot/engine/commands/Command.java | 34 + .../commands/EvaluateAndJoinCommand.java | 55 + .../engine/commands/EvaluateCommand.java | 48 + .../commands/EvaluateDefaultCommand.java | 44 + .../EvaluateMappingAndConstraintCommand.java | 44 + .../commands/EvaluateOrJoinCommand.java | 55 + .../commands/EvaluatePostAndJoinCommand.java | 65 + .../EvaluatePostMappingStubCommand.java | 55 + .../commands/EvaluatePostOrJoinCommand.java | 123 + .../commands/EvaluatePostStubCommand.java | 50 + .../engine/commands/EvaluateStubCommand.java | 114 + .../engine/commands/SituationCommand.java | 44 + .../engine/dialogs/JoinOrSetStateDialog.java | 268 + .../ResponsibilityExecutionStateDialog.java | 90 + .../ResultFaultLocatorEngineDialog.java | 301 + .../org/isistan/flabot/engine/engine.genmodel | 72 + .../flabot/engine/executionmodel.ecore | 110 + .../flabot/engine/executionstate.ecore | 83 + .../BasicMappingBasedFilter.java | 11 + .../ContextCreationException.java | 13 + .../engine/executionstate/Diagnostic.java | 74 + .../engine/executionstate/ExecutionState.java | 326 + .../executionstate/ExecutionStateManager.java | 132 + .../executionstate/ExecutionstateFactory.java | 137 + .../executionstate/ExecutionstatePackage.java | 1031 + .../GeneralLogFilterStrategy.java | 27 + .../ManualStateDeterminationStrategy.java | 16 + .../ManualTraceInferenceStrategy.java | 15 + .../executionstate/MappingBasedFilter.java | 37 + .../engine/executionstate/OrFilter.java | 23 + .../PrologProviderStrategy.java | 28 + .../SimpleGeneralLogFilterStrategy.java | 53 + .../SimplePrologProviderStrategy.java | 21 + .../SimpleTraceInferenceStrategy.java | 16 + .../StateDeterminationException.java | 43 + .../StateDeterminationStrategy.java | 52 + .../StateDeterminationStrategyRegistry.java | 24 + ...FromMappingStateDeterminationStrategy.java | 17 + .../TraceBasedStateDeterminationStrategy.java | 106 + .../TraceInferenceStrategy.java | 56 + .../executionstate/TraceLogManager.java | 118 + .../TraceLogManagerException.java | 19 + .../GetResponsibilityNodeStateAction.java | 84 + ...UpdateGeneralLogFilterStrategyCommand.java | 66 + .../UpdatePrologProviderStrategyCommand.java | 66 + ...dateStateDeterminationStrategyCommand.java | 76 + .../FlabotFileContextProvider.java | 236 + ...otFileContextProviderConfigurationTab.java | 252 + .../LaunchConfigurationConstants.java | 18 + .../LogStateDeterminationContextProvider.java | 49 + .../correlation/AndCompositeCorrelator.java | 41 + .../CallStackDistanceCorrelator.java | 85 + .../correlation/Correlator.java | 29 + .../correlation/LastExecutionCorrelator.java | 43 + .../correlation/NullCorrelator.java | 24 + .../correlation/SameInstanceCorrelator.java | 48 + .../correlation/SameThreadCorrelator.java | 45 + .../correlation/TimestampDeltaCorrelator.java | 62 + .../dialog/TagFilterDialogManager.java | 33 + .../dialog/swt/ShowTagInformationDialog.java | 267 + .../dialog/swt/TagFilterContentProvider.java | 76 + .../dialog/swt/TagFilterDialog.java | 284 + .../dialog/swt/TagFilterLabelProvider.java | 157 + .../correlation/dialog/swt/TagTreeModel.java | 162 + .../dialog/swt/TagTreeViewSorter.java | 137 + .../dialogs/ChangeNotifier.java | 7 + .../dialogs/ManualStrategyGUIFactory.java | 71 + ...StateDeterminationStrategyEditionItem.java | 231 + .../StateFromMappingStrategyGUIFactory.java | 102 + .../dialogs/StrategyGUIFactory.java | 61 + .../dialogs/StrategyGUILoader.java | 112 + .../dialogs/TraceStrategyGUIFactory.java | 157 + .../DefaultPredefinedCondition.java | 54 + .../conditions/PredefinedCondition.java | 40 + .../SnapshotPredefinedCondition.java | 22 + .../predefined/EventObjectSnapshot.java | 82 + .../predefined/EventPreviousScope.java | 40 + .../predefined/FixedStateDefault.java | 56 + .../predefined/GeneralLogObjectSnapshot.java | 79 + .../ResponsibilityObjectSnapshot.java | 76 + .../ResponsibilityPreviousScope.java | 35 + .../predefined/VariableStateOnAnyTag.java | 57 + .../predefined/VariableStateOnCustomTag.java | 79 + .../predefined/VariableStateOnError.java | 57 + .../ArgumentPredefinedProperty.java | 47 + .../ExecutionInstancePredefinedProperty.java | 46 + .../ReturnValuePredefinedProperty.java | 47 + .../SnapshotFieldPredefinedProperty.java | 54 + .../SnapshotNullPredefinedProperty.java | 32 + .../SnapshotObjectPredefinedProperty.java | 45 + .../SnapshotToStringPredefinedProperty.java | 43 + .../StringMatchingPredefinedProperty.java | 71 + .../ConditionEventStrategyEditionItem.java | 208 + .../SimplePrologProviderStrategyGUI.java | 151 + .../GeneralLogFilterStrategyEditionItem.java | 205 + ...ralLogFilterPrologProviderStrategyGUI.java | 119 + .../MatchingPredefinedPropertyDialog.java | 176 + .../dialogs/prolog/PrologEditComposite.java | 128 + .../dialogs/prolog/RulesEditionDialog.java | 552 + .../impl/BasicMappingBasedFilterImpl.java | 219 + .../executionstate/impl/DiagnosticImpl.java | 333 + .../EStringToEJavaObjectMapEntryImpl.java | 292 + .../impl/ExecutionstateFactoryImpl.java | 255 + .../impl/ExecutionstatePackageImpl.java | 794 + .../ManualStateDeterminationStrategyImpl.java | 159 + .../ManualTraceInferenceStrategyImpl.java | 205 + .../impl/MappingBasedFilterImpl.java | 337 + .../executionstate/impl/OrFilterImpl.java | 291 + ...tateDeterminationStrategyMapEntryImpl.java | 299 + .../SimpleGeneralLogFilterStrategyImpl.java | 178 + .../SimplePrologProviderStrategyImpl.java | 59 + .../SimpleTraceInferenceStrategyImpl.java | 200 + .../impl/StateDeterminationStrategyImpl.java | 168 + ...tateDeterminationStrategyRegistryImpl.java | 154 + ...MappingStateDeterminationStrategyImpl.java | 128 + ...ceBasedStateDeterminationStrategyImpl.java | 451 + .../impl/TraceInferenceStrategyImpl.java | 212 + .../DefaultLogQueryPredicates.java | 282 + .../JavalogTraceInferenceStrategy.java | 32 + .../javalogtrace/JavalogtraceFactory.java | 46 + .../javalogtrace/JavalogtracePackage.java | 130 + .../javalogtrace/LogQueryPredicates.java | 802 + .../TraceInferenceJavalogEngine.java | 70 + .../TraceInferenceJavalogEngineLocator.java | 72 + .../DefaultJavalogCorrelatorBuilder.java | 131 + .../JavalogCorrelatorBuilder.java | 37 + .../JavalogTraceInferenceStrategyImpl.java | 446 + .../impl/JavalogtraceFactoryImpl.java | 78 + .../impl/JavalogtracePackageImpl.java | 224 + .../DefaultJavalogTagFilterBuilder.java | 94 + .../JavalogTagFilterBuilder.java | 35 + .../util/JavalogtraceAdapterFactory.java | 138 + .../javalogtrace/util/JavalogtraceSwitch.java | 149 + .../tagfilter/AcceptAllFilter.java | 19 + .../tagfilter/AndCompositeFilter.java | 39 + .../tagfilter/ClassTagJClass.java | 615 + .../tagfilter/ComponentScopeTagFilter.java | 44 + .../InstanceClassSubstringFilter.java | 52 + .../tagfilter/JavalogFilter.java | 45 + .../executionstate/tagfilter/TagFilter.java | 23 + .../util/ExecutionstateAdapterFactory.java | 477 + .../util/ExecutionstateSwitch.java | 566 + .../FailureLocatedAction.java | 6 + .../FailureLocatedActionLoader.java | 133 + .../flabot/engine/icons/arrow_constraint.gif | Bin 0 -> 87 bytes .../flabot/engine/icons/arrow_mapping.gif | Bin 0 -> 85 bytes .../engine/icons/arrow_precondition.gif | Bin 0 -> 85 bytes .../flabot/engine/icons/arrow_previous.gif | Bin 0 -> 85 bytes .../flabot/engine/icons/dependency.gif | Bin 0 -> 84 bytes .../org/isistan/flabot/engine/icons/dot.gif | Bin 0 -> 110 bytes .../org/isistan/flabot/engine/icons/ff.gif | Bin 0 -> 337 bytes .../org/isistan/flabot/engine/icons/pause.gif | Bin 0 -> 338 bytes .../org/isistan/flabot/engine/icons/play.gif | Bin 0 -> 379 bytes .../isistan/flabot/engine/icons/property.gif | Bin 0 -> 181 bytes .../org/isistan/flabot/engine/icons/rr.gif | Bin 0 -> 335 bytes .../isistan/flabot/engine/icons/source.gif | Bin 0 -> 179 bytes .../org/isistan/flabot/engine/icons/step.gif | Bin 0 -> 89 bytes .../org/isistan/flabot/engine/icons/stop.gif | Bin 0 -> 217 bytes .../org/isistan/flabot/engine/icons/tag.gif | Bin 0 -> 313 bytes .../isistan/flabot/engine/icons/target.gif | Bin 0 -> 863 bytes .../isistan/flabot/engine/javalogtrace.ecore | 10 + .../engine/locator/FlabotEngineLocator.java | 105 + .../flabot/engine/messages/Messages.java | 33 + .../engine/messages/messages.properties | 186 + .../flabot/executionmodel/Dependency.java | 42 + .../flabot/executionmodel/DependencyInfo.java | 11 + .../flabot/executionmodel/EvaluationStep.java | 77 + .../executionmodel/ExecutionContext.java | 389 + .../flabot/executionmodel/ExecutionInfo.java | 17 + .../executionmodel/ExecutionInfoManager.java | 50 + .../flabot/executionmodel/ExecutionStep.java | 143 + .../executionmodel/ExecutionmodelFactory.java | 77 + .../executionmodel/ExecutionmodelPackage.java | 1583 + .../executionmodel/impl/DependencyImpl.java | 220 + .../EStringToEJavaObjectMapEntryImpl.java | 298 + .../impl/EStringToEObjectMapEntryImpl.java | 305 + .../impl/EvaluationStepImpl.java | 335 + .../impl/ExecutionContextImpl.java | 1778 + .../impl/ExecutionInfoImpl.java | 222 + .../impl/ExecutionInfoManagerImpl.java | 337 + .../impl/ExecutionStepImpl.java | 740 + .../impl/ExecutionmodelFactoryImpl.java | 185 + .../impl/ExecutionmodelPackageImpl.java | 1053 + ...ilityNodeToExecutionStateMapEntryImpl.java | 307 + ...ePathNodeToExecutionStateMapEntryImpl.java | 301 + .../util/ExecutionmodelAdapterFactory.java | 299 + .../util/ExecutionmodelSwitch.java | 344 + .../.classpath | 7 + .../.project | 30 + .../META-INF/MANIFEST.MF | 64 + .../ExecutionConditionPlugin.class | Bin 0 -> 1957 bytes ...InterfacePluginExecutionStateMapping.class | Bin 0 -> 2259 bytes .../commands/diagram/AddStateCommand.class | Bin 0 -> 4464 bytes ...TransitionConditionConnectionCommand.class | Bin 0 -> 3578 bytes ...onditionToTransitionConditionCommand.class | Bin 0 -> 2158 bytes ...ignPreFiltersToStateContainerCommand.class | Bin 0 -> 2523 bytes .../ChangeStateInfoValueActionCommand.class | Bin 0 -> 1850 bytes .../commands/diagram/DeleteStateCommand.class | Bin 0 -> 2188 bytes ...TransitionConditionConnectionCommand.class | Bin 0 -> 3076 bytes .../diagram/ManageStateDiagramCommand.class | Bin 0 -> 1917 bytes .../diagram/ModifyNamedElementCommand.class | Bin 0 -> 1631 bytes .../diagram/StateSetConstraintCommand.class | Bin 0 -> 3148 bytes .../CompoundManageCommand.class | Bin 0 -> 1131 bytes ...anageMethodExecutionConditionCommand.class | Bin 0 -> 3622 bytes .../ManagePersistentTreeElementCommand.class | Bin 0 -> 2186 bytes .../ManageTreeStructure.class | Bin 0 -> 4743 bytes .../ModifyExecutionConditionCommand.class | Bin 0 -> 3895 bytes .../AbstractExecutionConditionDialog$1.class | Bin 0 -> 2952 bytes .../AbstractExecutionConditionDialog$2.class | Bin 0 -> 2227 bytes .../AbstractExecutionConditionDialog$3.class | Bin 0 -> 1172 bytes .../AbstractExecutionConditionDialog.class | Bin 0 -> 5508 bytes .../ExecutionConditionFilterDialog$1.class | Bin 0 -> 1670 bytes .../ExecutionConditionFilterDialog$2.class | Bin 0 -> 1339 bytes .../ExecutionConditionFilterDialog.class | Bin 0 -> 8681 bytes .../GeneralExecutionConditionDialog$1.class | Bin 0 -> 1037 bytes .../GeneralExecutionConditionDialog$2.class | Bin 0 -> 1585 bytes .../GeneralExecutionConditionDialog$3.class | Bin 0 -> 1309 bytes .../GeneralExecutionConditionDialog$4.class | Bin 0 -> 2962 bytes .../GeneralExecutionConditionDialog.class | Bin 0 -> 16358 bytes .../dialogs/LogicalExpressionBuilder$1.class | Bin 0 -> 2454 bytes .../dialogs/LogicalExpressionBuilder$2.class | Bin 0 -> 2452 bytes .../dialogs/LogicalExpressionBuilder.class | Bin 0 -> 15679 bytes .../MethodExecutionConditionDialog$1$1.class | Bin 0 -> 1584 bytes .../MethodExecutionConditionDialog$1.class | Bin 0 -> 2869 bytes .../MethodExecutionConditionDialog$2.class | Bin 0 -> 1554 bytes ...onDialog$InternalMethodCallsProvider.class | Bin 0 -> 6292 bytes .../MethodExecutionConditionDialog.class | Bin 0 -> 19848 bytes .../dialogs/ParameterFieldsProperties$1.class | Bin 0 -> 2659 bytes .../dialogs/ParameterFieldsProperties$2.class | Bin 0 -> 1168 bytes .../dialogs/ParameterFieldsProperties.class | Bin 0 -> 8189 bytes .../dialogs/ScrollableItemDialog$1.class | Bin 0 -> 1058 bytes .../dialogs/ScrollableItemDialog.class | Bin 0 -> 7738 bytes .../dialogs/ShowPrologDialog$1.class | Bin 0 -> 1034 bytes .../dialogs/ShowPrologDialog.class | Bin 0 -> 6583 bytes .../dialogs/common/ActivatedElement.class | Bin 0 -> 194 bytes .../dialogs/common/AggregableElement.class | Bin 0 -> 296 bytes ...xecutionConditionMenuButtonOptions$1.class | Bin 0 -> 2177 bytes ...xecutionConditionMenuButtonOptions$2.class | Bin 0 -> 4034 bytes ...xecutionConditionMenuButtonOptions$3.class | Bin 0 -> 2997 bytes ...xecutionConditionMenuButtonOptions$4.class | Bin 0 -> 2602 bytes ...nExecutionConditionMenuButtonOptions.class | Bin 0 -> 5674 bytes .../ExecutionConditionEditorBuilder.class | Bin 0 -> 10706 bytes .../common/ListElementEventProvider.class | Bin 0 -> 461 bytes .../common/ListElementsComposite$1.class | Bin 0 -> 998 bytes .../common/ListElementsComposite$2.class | Bin 0 -> 1000 bytes .../common/ListElementsComposite$3.class | Bin 0 -> 1270 bytes .../common/ListElementsComposite$4.class | Bin 0 -> 1000 bytes .../common/ListElementsComposite$5.class | Bin 0 -> 1000 bytes .../common/ListElementsComposite$6.class | Bin 0 -> 1776 bytes .../common/ListElementsComposite.class | Bin 0 -> 9658 bytes .../dialogs/common/MenuSubItem.class | Bin 0 -> 840 bytes .../common/PreFilterManagerComposite.class | Bin 0 -> 5935 bytes .../ExceptionFilterComposite$1.class | Bin 0 -> 1325 bytes .../ExceptionFilterComposite$2.class | Bin 0 -> 1325 bytes .../ExceptionFilterComposite$3.class | Bin 0 -> 1095 bytes .../ExceptionFilterComposite$4.class | Bin 0 -> 2905 bytes .../ExceptionFilterComposite.class | Bin 0 -> 10053 bytes .../dialogs/jdtcomposites/FieldBehavior.class | Bin 0 -> 566 bytes .../jdtcomposites/GeneralFieldComposite.class | Bin 0 -> 8229 bytes .../jdtcomposites/GeneralJDTComposite$1.class | Bin 0 -> 1326 bytes .../jdtcomposites/GeneralJDTComposite$2.class | Bin 0 -> 1075 bytes .../jdtcomposites/GeneralJDTComposite.class | Bin 0 -> 6440 bytes ...eralParametersReturnValueComposite$1.class | Bin 0 -> 1576 bytes ...eralParametersReturnValueComposite$2.class | Bin 0 -> 1494 bytes ...eneralParametersReturnValueComposite.class | Bin 0 -> 12979 bytes .../GeneralScopeFilterComposite.class | Bin 0 -> 4864 bytes .../ITypeBasedJDTComposite$1.class | Bin 0 -> 2582 bytes .../ITypeBasedJDTComposite.class | Bin 0 -> 9585 bytes .../ITypeFieldsComposite$1$1.class | Bin 0 -> 1237 bytes .../ITypeFieldsComposite$1$2.class | Bin 0 -> 2857 bytes .../ITypeFieldsComposite$1.class | Bin 0 -> 4050 bytes .../jdtcomposites/ITypeFieldsComposite.class | Bin 0 -> 11707 bytes .../ITypeParametersReturnValueComposite.class | Bin 0 -> 11813 bytes .../dialogs/jdtcomposites/JDTComposite.class | Bin 0 -> 11604 bytes .../ComboBooleanVarProvider.class | Bin 0 -> 1525 bytes .../ComboCharVarProvider.class | Bin 0 -> 1854 bytes .../ComboConstants.class | Bin 0 -> 2447 bytes .../ComboContentProvider.class | Bin 0 -> 335 bytes .../ComboExecutionStateProvider.class | Bin 0 -> 2183 bytes .../ComboGeneralVarProvider.class | Bin 0 -> 2364 bytes .../ComboNumericVarProvider.class | Bin 0 -> 1863 bytes .../ComboObjectVarProvider.class | Bin 0 -> 1723 bytes .../ComboStringVarProvider.class | Bin 0 -> 2051 bytes .../listeners/CheckBoxChangeListener.class | Bin 0 -> 1752 bytes .../listeners/ClassOfListener.class | Bin 0 -> 1644 bytes .../listeners/ComboChangeListener.class | Bin 0 -> 1345 bytes .../listeners/FieldButtonListener.class | Bin 0 -> 1595 bytes .../valuecomposites/BooleanComposite.class | Bin 0 -> 3011 bytes .../valuecomposites/ByteComposite.class | Bin 0 -> 1609 bytes .../valuecomposites/CharComposite.class | Bin 0 -> 1375 bytes .../valuecomposites/ClassOfComposite$1.class | Bin 0 -> 2153 bytes .../valuecomposites/ClassOfComposite.class | Bin 0 -> 5332 bytes .../valuecomposites/DoubleComposite.class | Bin 0 -> 1625 bytes .../valuecomposites/FieldComposite.class | Bin 0 -> 4118 bytes .../valuecomposites/FloatComposite.class | Bin 0 -> 1617 bytes .../valuecomposites/IntComposite.class | Bin 0 -> 1605 bytes .../valuecomposites/LongComposite.class | Bin 0 -> 1620 bytes .../valuecomposites/ShortComposite.class | Bin 0 -> 1622 bytes .../valuecomposites/StringComposite.class | Bin 0 -> 717 bytes .../valuecomposites/TextComposite.class | Bin 0 -> 2810 bytes .../valuecomposites/ValueComposite.class | Bin 0 -> 1159 bytes .../BlockExpressionGUI$1.class | Bin 0 -> 1466 bytes .../BlockExpressionGUI$2.class | Bin 0 -> 1537 bytes .../BlockExpressionGUI$3.class | Bin 0 -> 2003 bytes .../BlockExpressionGUI$4.class | Bin 0 -> 1267 bytes .../BlockExpressionGUI$5.class | Bin 0 -> 1260 bytes .../BlockExpressionGUI.class | Bin 0 -> 13823 bytes .../ExpressionGUIBuilder.class | Bin 0 -> 5644 bytes .../LogicalExpressionGUI$1.class | Bin 0 -> 1134 bytes .../LogicalExpressionGUI$2.class | Bin 0 -> 1139 bytes .../LogicalExpressionGUI.class | Bin 0 -> 8670 bytes .../SingleExpressionGUI$1.class | Bin 0 -> 1543 bytes .../SingleExpressionGUI$2.class | Bin 0 -> 1273 bytes .../SingleExpressionGUI$3.class | Bin 0 -> 1950 bytes .../SingleExpressionGUI$4$1.class | Bin 0 -> 2263 bytes .../SingleExpressionGUI$4.class | Bin 0 -> 2085 bytes .../SingleExpressionGUI.class | Bin 0 -> 13187 bytes .../strategy/CompositeStrategy$1.class | Bin 0 -> 1452 bytes .../strategy/CompositeStrategy$2.class | Bin 0 -> 1452 bytes .../strategy/CompositeStrategy$3.class | Bin 0 -> 3249 bytes .../strategy/CompositeStrategy$4.class | Bin 0 -> 1438 bytes .../strategy/CompositeStrategy$5.class | Bin 0 -> 1442 bytes .../strategy/CompositeStrategy$6.class | Bin 0 -> 3038 bytes .../strategy/CompositeStrategy$7.class | Bin 0 -> 2635 bytes .../strategy/CompositeStrategy$8.class | Bin 0 -> 1379 bytes .../dialogs/strategy/CompositeStrategy.class | Bin 0 -> 20758 bytes .../strategy/CompositeTabStrategy$1.class | Bin 0 -> 1046 bytes .../strategy/CompositeTabStrategy$2.class | Bin 0 -> 3346 bytes .../strategy/CompositeTabStrategy$3.class | Bin 0 -> 1076 bytes .../strategy/CompositeTabStrategy$4.class | Bin 0 -> 1078 bytes .../strategy/CompositeTabStrategy.class | Bin 0 -> 17252 bytes .../EventStrategyPrologProviderTabItem.class | Bin 0 -> 5797 bytes ...itionGeneralLogFilterStrategyTabItem.class | Bin 0 -> 8535 bytes ...ionTraceInferenceStrategyTabItem$1$1.class | Bin 0 -> 1524 bytes ...itionTraceInferenceStrategyTabItem$1.class | Bin 0 -> 2308 bytes ...ionTraceInferenceStrategyTabItem$2$1.class | Bin 0 -> 2119 bytes ...itionTraceInferenceStrategyTabItem$2.class | Bin 0 -> 2603 bytes ...ionTraceInferenceStrategyTabItem$3$1.class | Bin 0 -> 2119 bytes ...itionTraceInferenceStrategyTabItem$3.class | Bin 0 -> 2598 bytes ...ionTraceInferenceStrategyTabItem$4$1.class | Bin 0 -> 2242 bytes ...itionTraceInferenceStrategyTabItem$4.class | Bin 0 -> 2321 bytes ...ionTraceInferenceStrategyTabItem$5$1.class | Bin 0 -> 3151 bytes ...itionTraceInferenceStrategyTabItem$5.class | Bin 0 -> 3116 bytes ...nTraceInferenceStrategyTabItem$6$1$1.class | Bin 0 -> 1786 bytes ...ionTraceInferenceStrategyTabItem$6$1.class | Bin 0 -> 3399 bytes ...itionTraceInferenceStrategyTabItem$6.class | Bin 0 -> 3111 bytes ...itionTraceInferenceStrategyTabItem$7.class | Bin 0 -> 1913 bytes ...itionTraceInferenceStrategyTabItem$8.class | Bin 0 -> 2170 bytes ...itionTraceInferenceStrategyTabItem$9.class | Bin 0 -> 2166 bytes ...nditionTraceInferenceStrategyTabItem.class | Bin 0 -> 14869 bytes .../dialogs/utils/DialogUtils$1$1.class | Bin 0 -> 1396 bytes .../dialogs/utils/DialogUtils$1.class | Bin 0 -> 1731 bytes .../dialogs/utils/DialogUtils$2.class | Bin 0 -> 1164 bytes .../dialogs/utils/DialogUtils.class | Bin 0 -> 8040 bytes .../utils/contentproviders/ItemProvider.class | Bin 0 -> 290 bytes .../contentproviders/PrologItemProvider.class | Bin 0 -> 2005 bytes ...reeExecutionConditionContentProvider.class | Bin 0 -> 2430 bytes .../utils/errors/ItemErrorProvider.class | Bin 0 -> 3586 bytes .../dialogs/utils/errors/Validator.class | Bin 0 -> 263 bytes ...FilteredElementTreeSelectionDialog$1.class | Bin 0 -> 1153 bytes .../FilteredElementTreeSelectionDialog.class | Bin 0 -> 6216 bytes .../utils/filter/UpdatableFilteredView.class | Bin 0 -> 436 bytes .../utils/filter/ViewFilterProvider.class | Bin 0 -> 407 bytes .../filter/ViewFilterProviderAdapter.class | Bin 0 -> 836 bytes .../DecoratedWorkbenchLabelProvider.class | Bin 0 -> 2057 bytes .../ExecutionLabelProvider.class | Bin 0 -> 2803 bytes ...ssionExecutionConditionLabelProvider.class | Bin 0 -> 2264 bytes .../InternalMethodCallsLabelProvider.class | Bin 0 -> 1725 bytes .../PreFilterLabelProvider.class | Bin 0 -> 1266 bytes .../TreeExecutionConditionLabelProvider.class | Bin 0 -> 4782 bytes ...ExecutionConditionSelectionValidator.class | Bin 0 -> 1748 bytes .../StateDiagramSelectionValidator.class | Bin 0 -> 1716 bytes .../viewerfilters/ClassViewerFilter.class | Bin 0 -> 1715 bytes .../ExecutionConditionScopeViewerFilter.class | Bin 0 -> 3049 bytes .../MethodClassViewerFilter.class | Bin 0 -> 1887 bytes .../StateDiagramScopeViewerFilter.class | Bin 0 -> 1880 bytes .../editor/FinalStateCreationTool.class | Bin 0 -> 2434 bytes .../editor/StateEditor$1.class | Bin 0 -> 1595 bytes .../editor/StateEditor$2.class | Bin 0 -> 1362 bytes .../editor/StateEditor$3.class | Bin 0 -> 1193 bytes .../editor/StateEditor.class | Bin 0 -> 10451 bytes .../StateEditorContextMenuProvider.class | Bin 0 -> 3038 bytes .../editor/StateEditorContributor.class | Bin 0 -> 3004 bytes .../editor/StateEditorPaletteFactory$1.class | Bin 0 -> 1987 bytes .../editor/StateEditorPaletteFactory$2.class | Bin 0 -> 1996 bytes .../editor/StateEditorPaletteFactory$3.class | Bin 0 -> 1802 bytes .../editor/StateEditorPaletteFactory$4.class | Bin 0 -> 1578 bytes .../editor/StateEditorPaletteFactory$5.class | Bin 0 -> 1114 bytes .../editor/StateEditorPaletteFactory$6.class | Bin 0 -> 1981 bytes .../editor/StateEditorPaletteFactory.class | Bin 0 -> 5565 bytes .../editor/ToggleGridRetargetAction.class | Bin 0 -> 868 bytes .../editor/ToggleRulerRetargetAction.class | Bin 0 -> 883 bytes .../ToggleSnapToGeometryRetargetAction.class | Bin 0 -> 898 bytes ...AssignMethodExecutionConditionAction.class | Bin 0 -> 4244 bytes .../ChangeExecutionConditionAction.class | Bin 0 -> 3262 bytes .../actions/ChangeFinalStateValueAction.class | Bin 0 -> 4510 bytes .../EditExecutionConditionAction$1.class | Bin 0 -> 1427 bytes .../EditExecutionConditionAction.class | Bin 0 -> 4438 bytes .../editor/actions/EditPreFiltersAction.class | Bin 0 -> 4671 bytes .../actions/EditVisualizationAction.class | Bin 0 -> 3601 bytes .../NewGeneralExecutionConditionAction.class | Bin 0 -> 3983 bytes .../NewMethodExecutionConditionAction.class | Bin 0 -> 3684 bytes .../ChooseFinalStateValueDialog$1.class | Bin 0 -> 1189 bytes .../ChooseFinalStateValueDialog$2.class | Bin 0 -> 1905 bytes .../ChooseFinalStateValueDialog$3.class | Bin 0 -> 1204 bytes .../dialogs/ChooseFinalStateValueDialog.class | Bin 0 -> 5775 bytes .../editparts/StateDiagramEditPart$1.class | Bin 0 -> 3846 bytes .../editparts/StateDiagramEditPart.class | Bin 0 -> 6515 bytes .../editor/editparts/StateEditManager$1.class | Bin 0 -> 1164 bytes .../editor/editparts/StateEditManager.class | Bin 0 -> 1372 bytes .../editor/editparts/StateEditPart$1.class | Bin 0 -> 2581 bytes .../editor/editparts/StateEditPart$2.class | Bin 0 -> 3917 bytes .../editor/editparts/StateEditPart$3.class | Bin 0 -> 2451 bytes .../editor/editparts/StateEditPart.class | Bin 0 -> 8973 bytes .../editparts/StateEditPartFactory.class | Bin 0 -> 2604 bytes ...nsitionConditionConnectionEditPart$1.class | Bin 0 -> 2716 bytes ...nsitionConditionConnectionEditPart$2.class | Bin 0 -> 2067 bytes ...ransitionConditionConnectionEditPart.class | Bin 0 -> 6126 bytes .../EventFigure$CompartmentFigureBorder.class | Bin 0 -> 1779 bytes .../editor/figures/EventFigure.class | Bin 0 -> 1008 bytes .../editor/figures/FinalStateFigure.class | Bin 0 -> 3156 bytes .../editor/figures/InitialStateFigure.class | Bin 0 -> 3011 bytes .../editor/figures/StateBoxAnchor.class | Bin 0 -> 778 bytes .../figures/StateCellEditorLocator.class | Bin 0 -> 1955 bytes .../editor/figures/StateFigure$1.class | Bin 0 -> 1391 bytes .../editor/figures/StateFigure.class | Bin 0 -> 6599 bytes .../properties/StateDiagramProperty.class | Bin 0 -> 5235 bytes .../editor/properties/StateProperty.class | Bin 0 -> 2444 bytes .../executionstatemapping/icons/add.gif | Bin 0 -> 1000 bytes .../icons/condition_general.gif | Bin 0 -> 961 bytes .../icons/condition_method.gif | Bin 0 -> 966 bytes .../executionstatemapping/icons/delete.gif | Bin 0 -> 1000 bytes .../executionstatemapping/icons/dis_add.png | Bin 0 -> 906 bytes .../icons/dis_delete.png | Bin 0 -> 935 bytes .../executionstatemapping/icons/dis_edit.png | Bin 0 -> 741 bytes .../executionstatemapping/icons/dis_sort.gif | Bin 0 -> 160 bytes .../executionstatemapping/icons/eclipse32.png | Bin 0 -> 4594 bytes .../executionstatemapping/icons/edit.gif | Bin 0 -> 582 bytes .../executionstatemapping/icons/error_obj.gif | Bin 0 -> 354 bytes .../executionstatemapping/icons/folder.gif | Bin 0 -> 1043 bytes .../executionstatemapping/icons/note.gif | Bin 0 -> 543 bytes .../executionstatemapping/icons/note_link.gif | Bin 0 -> 568 bytes .../executionstatemapping/icons/options.gif | Bin 0 -> 833 bytes .../executionstatemapping/icons/prefilter.gif | Bin 0 -> 936 bytes .../executionstatemapping/icons/sort.gif | Bin 0 -> 162 bytes .../icons/state_final.gif | Bin 0 -> 953 bytes .../icons/state_link.gif | Bin 0 -> 863 bytes .../icons/state_normal.gif | Bin 0 -> 914 bytes .../icons/stateeditor.gif | Bin 0 -> 1052 bytes .../messages/Messages.class | Bin 0 -> 1437 bytes .../messages/messages.properties | 308 + .../messages/messages.properties.back | 308 + .../util/ArgumentsReplacer$Transition.class | Bin 0 -> 1012 bytes .../messages/util/ArgumentsReplacer.class | Bin 0 -> 4119 bytes .../messages/util/MessagesUtil.class | Bin 0 -> 1937 bytes .../util/SpecialCharacterConversion.class | Bin 0 -> 713 bytes ...pecialCharactersConverter$Transition.class | Bin 0 -> 1066 bytes .../util/SpecialCharactersConverter.class | Bin 0 -> 4042 bytes .../flabot/executionstatemapping/model.ecore | 270 + .../executionstatemapping/model.genmodel | 239 + .../ExecutionStateMappingFileModel.class | Bin 0 -> 1016 bytes .../model/ModelFactory.class | Bin 0 -> 784 bytes .../model/ModelPackage$Literals.class | Bin 0 -> 1400 bytes .../model/ModelPackage.class | Bin 0 -> 1887 bytes .../ExecutionStateMappingFileModelImpl.class | Bin 0 -> 11301 bytes .../model/impl/ModelFactoryImpl.class | Bin 0 -> 2887 bytes .../model/impl/ModelPackageImpl.class | Bin 0 -> 6556 bytes .../model/prolog/PrologCodeFactory.class | Bin 0 -> 740 bytes .../model/prolog/PrologElement.class | Bin 0 -> 355 bytes .../model/prolog/PrologFactory.class | Bin 0 -> 807 bytes .../model/prolog/PrologPackage$Literals.class | Bin 0 -> 1184 bytes .../model/prolog/PrologPackage.class | Bin 0 -> 1881 bytes .../model/prolog/TagProvider.class | Bin 0 -> 382 bytes .../prolog/VisitedExpressionProlog.class | Bin 0 -> 337 bytes .../prolog/VisitorExpressionProlog.class | Bin 0 -> 534 bytes .../prolog/impl/EventTagProviderImpl.class | Bin 0 -> 1665 bytes .../impl/GeneralLogFilterTagProvider.class | Bin 0 -> 1094 bytes .../prolog/impl/PrologCodeFactoryImpl.class | Bin 0 -> 26496 bytes .../model/prolog/impl/PrologFactoryImpl.class | Bin 0 -> 2919 bytes .../model/prolog/impl/PrologPackageImpl.class | Bin 0 -> 8267 bytes .../impl/ResponsibilityTagProviderImpl.class | Bin 0 -> 1317 bytes .../prolog/util/PrologAdapterFactory$1.class | Bin 0 -> 3819 bytes .../prolog/util/PrologAdapterFactory.class | Bin 0 -> 2580 bytes .../model/prolog/util/PrologSwitch.class | Bin 0 -> 5257 bytes .../model/semantic/AbstractExpression.class | Bin 0 -> 878 bytes .../model/semantic/AndExpression.class | Bin 0 -> 242 bytes .../model/semantic/BlockExpression.class | Bin 0 -> 455 bytes .../model/semantic/ConditionValue.class | Bin 0 -> 4318 bytes .../model/semantic/EvaluationCondition.class | Bin 0 -> 498 bytes .../model/semantic/EventType.class | Bin 0 -> 3136 bytes .../ExceptionEvaluationCondition.class | Bin 0 -> 350 bytes .../model/semantic/ExecutionCondition.class | Bin 0 -> 2065 bytes .../model/semantic/ExecutionStateValue.class | Bin 0 -> 4039 bytes .../semantic/FieldEvaluationCondition.class | Bin 0 -> 361 bytes .../model/semantic/FinalState.class | Bin 0 -> 447 bytes .../MappedTreeStructuredElement.class | Bin 0 -> 783 bytes .../model/semantic/NamedElement.class | Bin 0 -> 281 bytes .../model/semantic/NotedElement.class | Bin 0 -> 354 bytes .../model/semantic/OrExpression.class | Bin 0 -> 240 bytes .../ParameterEvaluationCondition.class | Bin 0 -> 574 bytes .../ReturnedValueEvaluationCondition.class | Bin 0 -> 284 bytes .../semantic/ScopeEvaluationCondition.class | Bin 0 -> 476 bytes .../model/semantic/ScopeFilterType.class | Bin 0 -> 3216 bytes .../model/semantic/SemanticFactory.class | Bin 0 -> 3333 bytes .../semantic/SemanticPackage$Literals.class | Bin 0 -> 9932 bytes .../model/semantic/SemanticPackage.class | Bin 0 -> 13183 bytes ...impleExecutionConditionConfiguration.class | Bin 0 -> 1314 bytes .../SimpleExpressionExecutionCondition.class | Bin 0 -> 713 bytes .../model/semantic/SingleExpression.class | Bin 0 -> 478 bytes .../model/semantic/State.class | Bin 0 -> 798 bytes .../model/semantic/StateContainer.class | Bin 0 -> 1345 bytes .../model/semantic/StateType.class | Bin 0 -> 3114 bytes .../model/semantic/TransitionCondition.class | Bin 0 -> 715 bytes .../semantic/TreeStructuredElement.class | Bin 0 -> 1488 bytes .../model/semantic/TreeType.class | Bin 0 -> 4059 bytes .../model/semantic/VisitedExpression.class | Bin 0 -> 306 bytes .../model/semantic/VisitorExpression.class | Bin 0 -> 436 bytes .../impl/AbstractExpressionImpl.class | Bin 0 -> 6167 bytes .../semantic/impl/AndExpressionImpl.class | Bin 0 -> 1787 bytes .../semantic/impl/BlockExpressionImpl.class | Bin 0 -> 3644 bytes .../EStringToTreeStructuredElementImpl.class | Bin 0 -> 6032 bytes .../impl/EvaluationConditionImpl.class | Bin 0 -> 3974 bytes .../ExceptionEvaluationConditionImpl.class | Bin 0 -> 3005 bytes .../impl/ExecutionConditionImpl.class | Bin 0 -> 15378 bytes .../impl/FieldEvaluationConditionImpl.class | Bin 0 -> 2972 bytes .../model/semantic/impl/FinalStateImpl.class | Bin 0 -> 3254 bytes .../MappedTreeStructuredElementImpl.class | Bin 0 -> 4432 bytes .../semantic/impl/NamedElementImpl.class | Bin 0 -> 2779 bytes .../semantic/impl/NotedElementImpl.class | Bin 0 -> 2380 bytes .../semantic/impl/OrExpressionImpl.class | Bin 0 -> 1780 bytes .../ParameterEvaluationConditionImpl.class | Bin 0 -> 4585 bytes ...ReturnedValueEvaluationConditionImpl.class | Bin 0 -> 1019 bytes .../impl/ScopeEvaluationConditionImpl.class | Bin 0 -> 2198 bytes .../semantic/impl/SemanticFactoryImpl.class | Bin 0 -> 17939 bytes .../semantic/impl/SemanticPackageImpl.class | Bin 0 -> 27820 bytes ...gurationImpl$FilterExpressionChecker.class | Bin 0 -> 3223 bytes ...urationImpl$MappingExpressionChecker.class | Bin 0 -> 3226 bytes ...eExecutionConditionConfigurationImpl.class | Bin 0 -> 10787 bytes ...mpleExpressionExecutionConditionImpl.class | Bin 0 -> 5451 bytes .../semantic/impl/SingleExpressionImpl.class | Bin 0 -> 4109 bytes .../semantic/impl/StateContainerImpl.class | Bin 0 -> 9555 bytes .../model/semantic/impl/StateImpl.class | Bin 0 -> 7371 bytes .../impl/TransitionConditionImpl.class | Bin 0 -> 6413 bytes .../impl/TreeStructuredElementImpl.class | Bin 0 -> 8950 bytes .../util/SemanticAdapterFactory$1.class | Bin 0 -> 15405 bytes .../util/SemanticAdapterFactory.class | Bin 0 -> 4697 bytes .../model/semantic/util/SemanticSwitch.class | Bin 0 -> 18753 bytes ...ionConditionGeneralLogFilterStrategy.class | Bin 0 -> 602 bytes ...utionConditionTraceInferenceStrategy.class | Bin 0 -> 707 bytes .../StateDiagramTraceInferenceStrategy.class | Bin 0 -> 591 bytes .../strategymodel/StrategymodelFactory.class | Bin 0 -> 1278 bytes .../StrategymodelPackage$Literals.class | Bin 0 -> 1702 bytes .../strategymodel/StrategymodelPackage.class | Bin 0 -> 2613 bytes ...onditionGeneralLogFilterStrategyImpl.class | Bin 0 -> 7083 bytes ...nConditionTraceInferenceStrategyImpl.class | Bin 0 -> 9048 bytes ...ateDiagramTraceInferenceStrategyImpl.class | Bin 0 -> 8478 bytes .../impl/StrategymodelFactoryImpl.class | Bin 0 -> 4277 bytes .../impl/StrategymodelPackageImpl.class | Bin 0 -> 8371 bytes .../strategymodel/util/MappingChecker.class | Bin 0 -> 3524 bytes .../util/StrategymodelAdapterFactory$1.class | Bin 0 -> 4792 bytes .../util/StrategymodelAdapterFactory.class | Bin 0 -> 2890 bytes .../util/StrategymodelSwitch.class | Bin 0 -> 5860 bytes .../model/util/ModelAdapterFactory$1.class | Bin 0 -> 1828 bytes .../model/util/ModelAdapterFactory.class | Bin 0 -> 2154 bytes .../model/util/ModelSwitch.class | Bin 0 -> 2969 bytes .../model/visual/StateDiagram.class | Bin 0 -> 337 bytes .../model/visual/VisualFactory.class | Bin 0 -> 797 bytes .../model/visual/VisualPackage$Literals.class | Bin 0 -> 817 bytes .../model/visual/VisualPackage.class | Bin 0 -> 1703 bytes .../model/visual/impl/StateDiagramImpl.class | Bin 0 -> 3719 bytes .../model/visual/impl/VisualFactoryImpl.class | Bin 0 -> 2894 bytes .../model/visual/impl/VisualPackageImpl.class | Bin 0 -> 5752 bytes .../visual/util/VisualAdapterFactory$1.class | Bin 0 -> 2621 bytes .../visual/util/VisualAdapterFactory.class | Bin 0 -> 2381 bytes .../model/visual/util/VisualSwitch.class | Bin 0 -> 3557 bytes .../executionstatemapping/strategymodel.ecore | 22 + .../strategymodel.genmodel | 247 + .../utils/CommandUtils.class | Bin 0 -> 3376 bytes .../utils/ExecutionConditionUtils$1.class | Bin 0 -> 1163 bytes .../utils/ExecutionConditionUtils.class | Bin 0 -> 9437 bytes .../jdt/BinaryClassSearchRequestor$1.class | Bin 0 -> 2222 bytes .../jdt/BinaryClassSearchRequestor.class | Bin 0 -> 2908 bytes .../jdt/InternalMethodCallsSearcher$1.class | Bin 0 -> 1635 bytes .../jdt/InternalMethodCallsSearcher.class | Bin 0 -> 3305 bytes .../view/ExecutionConditionView.class | Bin 0 -> 3201 bytes .../view/ExecutionConditionViewPage$1.class | Bin 0 -> 1021 bytes .../view/ExecutionConditionViewPage$10.class | Bin 0 -> 1096 bytes .../view/ExecutionConditionViewPage$11.class | Bin 0 -> 1064 bytes .../view/ExecutionConditionViewPage$12.class | Bin 0 -> 1065 bytes .../view/ExecutionConditionViewPage$13.class | Bin 0 -> 1342 bytes .../view/ExecutionConditionViewPage$14.class | Bin 0 -> 1610 bytes .../view/ExecutionConditionViewPage$15.class | Bin 0 -> 1137 bytes .../view/ExecutionConditionViewPage$16.class | Bin 0 -> 1061 bytes .../view/ExecutionConditionViewPage$2.class | Bin 0 -> 1011 bytes .../view/ExecutionConditionViewPage$3.class | Bin 0 -> 1566 bytes .../view/ExecutionConditionViewPage$4.class | Bin 0 -> 1245 bytes .../view/ExecutionConditionViewPage$5.class | Bin 0 -> 2058 bytes .../view/ExecutionConditionViewPage$6.class | Bin 0 -> 981 bytes .../view/ExecutionConditionViewPage$7.class | Bin 0 -> 1683 bytes .../view/ExecutionConditionViewPage$8.class | Bin 0 -> 1597 bytes .../view/ExecutionConditionViewPage$9.class | Bin 0 -> 1094 bytes ...ditionViewPage$AddClassMenuCreator$1.class | Bin 0 -> 1607 bytes ...ditionViewPage$AddClassMenuCreator$2.class | Bin 0 -> 1618 bytes ...ditionViewPage$AddClassMenuCreator$3.class | Bin 0 -> 1618 bytes ...ditionViewPage$AddClassMenuCreator$4.class | Bin 0 -> 1618 bytes ...onditionViewPage$AddClassMenuCreator.class | Bin 0 -> 3512 bytes .../view/ExecutionConditionViewPage.class | Bin 0 -> 32052 bytes .../view/dnd/DragTransfer.class | Bin 0 -> 853 bytes .../view/dnd/TreeStructuredElementDrag.class | Bin 0 -> 3023 bytes .../view/dnd/TreeStructuredElementDrop.class | Bin 0 -> 4389 bytes .../build.properties | 10 + .../icons/executionmapping.gif | Bin 0 -> 1052 bytes .../plugin.properties | 20 + .../plugin.xml | 70 + .../EMF-GEF-executioncondition.flabot | 12111 ++++ .../examples/market-executioncondition.flabot | 3941 ++ .../GeneralExecutionCondition_demo.html | 45 + .../GeneralExecutionCondition_demo.swf | Bin 0 -> 701884 bytes ...ralExecutionCondition_demo_Fullmotion4.swf | Bin 0 -> 135087 bytes ...ralExecutionCondition_demo_Fullmotion5.swf | Bin 0 -> 72208 bytes ...ralExecutionCondition_demo_Fullmotion6.swf | Bin 0 -> 60829 bytes ...ralExecutionCondition_demo_Fullmotion7.swf | Bin 0 -> 175543 bytes .../GeneralExecutionCondition_demo_skin.swf | Bin 0 -> 13186 bytes .../standard.js | 10 + .../MethodExecutionCondition_demo.html | 45 + .../MethodExecutionCondition_demo.swf | Bin 0 -> 897873 bytes ...odExecutionCondition_demo_Fullmotion17.swf | Bin 0 -> 87443 bytes ...odExecutionCondition_demo_Fullmotion18.swf | Bin 0 -> 97207 bytes ...odExecutionCondition_demo_Fullmotion19.swf | Bin 0 -> 89068 bytes ...odExecutionCondition_demo_Fullmotion20.swf | Bin 0 -> 64321 bytes ...odExecutionCondition_demo_Fullmotion21.swf | Bin 0 -> 209248 bytes ...odExecutionCondition_demo_Fullmotion22.swf | Bin 0 -> 86459 bytes ...odExecutionCondition_demo_Fullmotion23.swf | Bin 0 -> 79353 bytes .../MethodExecutionCondition_demo_skin.swf | Bin 0 -> 13186 bytes .../MethodExecutionCondition_demo/standard.js | 10 + .../StateDeterminationStrategy_demo.html | 45 + .../StateDeterminationStrategy_demo.swf | Bin 0 -> 752869 bytes ...DeterminationStrategy_demo_Fullmotion1.swf | Bin 0 -> 364295 bytes ...DeterminationStrategy_demo_Fullmotion2.swf | Bin 0 -> 299849 bytes ...DeterminationStrategy_demo_Fullmotion3.swf | Bin 0 -> 564944 bytes .../StateDeterminationStrategy_demo_skin.swf | Bin 0 -> 13188 bytes .../standard.js | 10 + .../StateDiagramExample_demo.html | 45 + .../StateDiagramExample_demo.swf | Bin 0 -> 698152 bytes .../StateDiagramExample_demo_Fullmotion15.swf | Bin 0 -> 83724 bytes .../StateDiagramExample_demo_Fullmotion16.swf | Bin 0 -> 98108 bytes .../StateDiagramExample_demo_Fullmotion17.swf | Bin 0 -> 161483 bytes .../StateDiagramExample_demo_Fullmotion18.swf | Bin 0 -> 127079 bytes .../StateDiagramExample_demo_skin.swf | Bin 0 -> 13184 bytes .../StateDiagramExample_demo/standard.js | 10 + .../resource/help/html/demos/demos.html | 34 + .../resource/help/toc.xml | 9 + .../resource/help/tocdemos.xml | 9 + .../ExecutionConditionPlugin.java | 107 + .../InterfacePluginExecutionStateMapping.java | 32 + .../commands/diagram/AddStateCommand.java | 90 + ...dTransitionConditionConnectionCommand.java | 91 + ...ConditionToTransitionConditionCommand.java | 48 + ...signPreFiltersToStateContainerCommand.java | 52 + .../ChangeStateInfoValueActionCommand.java | 47 + .../commands/diagram/DeleteStateCommand.java | 51 + ...eTransitionConditionConnectionCommand.java | 67 + .../diagram/ManageStateDiagramCommand.java | 45 + .../diagram/ModifyNamedElementCommand.java | 41 + .../diagram/StateSetConstraintCommand.java | 60 + .../CompoundManageCommand.java | 72 + ...ManageMethodExecutionConditionCommand.java | 64 + .../ManagePersistentTreeElementCommand.java | 47 + .../ManageTreeStructure.java | 131 + .../ModifyExecutionConditionCommand.java | 92 + .../AbstractExecutionConditionDialog.java | 205 + .../ExecutionConditionFilterDialog.java | 165 + .../GeneralExecutionConditionDialog.java | 413 + .../dialogs/LogicalExpressionBuilder.java | 325 + .../MethodExecutionConditionDialog.java | 605 + .../dialogs/ParameterFieldsProperties.java | 201 + .../dialogs/ScrollableItemDialog.java | 188 + .../dialogs/ShowPrologDialog.java | 178 + .../dialogs/common/ActivatedElement.java | 8 + .../dialogs/common/AggregableElement.java | 8 + ...onExecutionConditionMenuButtonOptions.java | 121 + .../ExecutionConditionEditorBuilder.java | 172 + .../common/ListElementEventProvider.java | 10 + .../dialogs/common/ListElementsComposite.java | 261 + .../dialogs/common/MenuSubItem.java | 26 + .../common/PreFilterManagerComposite.java | 78 + .../ExceptionFilterComposite.java | 265 + .../dialogs/jdtcomposites/FieldBehavior.java | 15 + .../jdtcomposites/GeneralFieldComposite.java | 170 + .../jdtcomposites/GeneralJDTComposite.java | 152 + ...GeneralParametersReturnValueComposite.java | 267 + .../GeneralScopeFilterComposite.java | 118 + .../jdtcomposites/ITypeBasedJDTComposite.java | 223 + .../jdtcomposites/ITypeFieldsComposite.java | 261 + .../ITypeParametersReturnValueComposite.java | 219 + .../dialogs/jdtcomposites/JDTComposite.java | 268 + .../ComboBooleanVarProvider.java | 19 + .../ComboCharVarProvider.java | 38 + .../combocontentproviders/ComboConstants.java | 19 + .../ComboContentProvider.java | 10 + .../ComboExecutionStateProvider.java | 34 + .../ComboGeneralVarProvider.java | 56 + .../ComboNumericVarProvider.java | 40 + .../ComboObjectVarProvider.java | 33 + .../ComboStringVarProvider.java | 44 + .../listeners/CheckBoxChangeListener.java | 31 + .../listeners/ClassOfListener.java | 31 + .../listeners/ComboChangeListener.java | 26 + .../listeners/FieldButtonListener.java | 29 + .../valuecomposites/BooleanComposite.java | 69 + .../valuecomposites/ByteComposite.java | 38 + .../valuecomposites/CharComposite.java | 26 + .../valuecomposites/ClassOfComposite.java | 123 + .../valuecomposites/DoubleComposite.java | 37 + .../valuecomposites/FieldComposite.java | 104 + .../valuecomposites/FloatComposite.java | 38 + .../valuecomposites/IntComposite.java | 38 + .../valuecomposites/LongComposite.java | 37 + .../valuecomposites/ShortComposite.java | 38 + .../valuecomposites/StringComposite.java | 16 + .../valuecomposites/TextComposite.java | 73 + .../valuecomposites/ValueComposite.java | 24 + .../BlockExpressionGUI.java | 419 + .../ExpressionGUIBuilder.java | 103 + .../LogicalExpressionGUI.java | 293 + .../SingleExpressionGUI.java | 284 + .../dialogs/strategy/CompositeStrategy.java | 557 + .../strategy/CompositeTabStrategy.java | 404 + .../EventStrategyPrologProviderTabItem.java | 100 + ...ditionGeneralLogFilterStrategyTabItem.java | 133 + ...onditionTraceInferenceStrategyTabItem.java | 486 + .../dialogs/utils/DialogUtils.java | 207 + .../utils/contentproviders/ItemProvider.java | 8 + .../contentproviders/PrologItemProvider.java | 35 + ...TreeExecutionConditionContentProvider.java | 70 + .../utils/errors/ItemErrorProvider.java | 80 + .../dialogs/utils/errors/Validator.java | 9 + .../FilteredElementTreeSelectionDialog.java | 151 + .../utils/filter/UpdatableFilteredView.java | 15 + .../utils/filter/ViewFilterProvider.java | 11 + .../filter/ViewFilterProviderAdapter.java | 14 + .../DecoratedWorkbenchLabelProvider.java | 43 + .../ExecutionLabelProvider.java | 77 + ...essionExecutionConditionLabelProvider.java | 45 + .../InternalMethodCallsLabelProvider.java | 26 + .../PreFilterLabelProvider.java | 29 + .../TreeExecutionConditionLabelProvider.java | 123 + .../ExecutionConditionSelectionValidator.java | 30 + .../StateDiagramSelectionValidator.java | 31 + .../viewerfilters/ClassViewerFilter.java | 34 + .../ExecutionConditionScopeViewerFilter.java | 80 + .../MethodClassViewerFilter.java | 38 + .../StateDiagramScopeViewerFilter.java | 34 + .../editor/FinalStateCreationTool.java | 37 + .../editor/StateEditor.java | 331 + .../StateEditorContextMenuProvider.java | 100 + .../editor/StateEditorContributor.java | 7 + .../editor/StateEditorPaletteFactory.java | 250 + .../AssignMethodExecutionConditionAction.java | 46 + .../ChangeExecutionConditionAction.java | 76 + .../actions/ChangeFinalStateValueAction.java | 89 + .../actions/EditExecutionConditionAction.java | 89 + .../editor/actions/EditPreFiltersAction.java | 92 + .../actions/EditVisualizationAction.java | 91 + .../NewGeneralExecutionConditionAction.java | 47 + .../NewMethodExecutionConditionAction.java | 51 + .../dialogs/ChooseFinalStateValueDialog.java | 119 + .../editparts/StateDiagramEditPart.java | 243 + .../editor/editparts/StateEditManager.java | 32 + .../editor/editparts/StateEditPart.java | 330 + .../editparts/StateEditPartFactory.java | 70 + ...TransitionConditionConnectionEditPart.java | 62 + .../editor/figures/EventFigure.java | 30 + .../editor/figures/FinalStateFigure.java | 66 + .../editor/figures/InitialStateFigure.java | 57 + .../editor/figures/StateBoxAnchor.java | 17 + .../figures/StateCellEditorLocator.java | 38 + .../editor/figures/StateFigure.java | 201 + .../properties/StateDiagramProperty.java | 132 + .../editor/properties/StateProperty.java | 69 + .../executionstatemapping/icons/add.gif | Bin 0 -> 1000 bytes .../icons/condition_general.gif | Bin 0 -> 961 bytes .../icons/condition_method.gif | Bin 0 -> 966 bytes .../executionstatemapping/icons/delete.gif | Bin 0 -> 1000 bytes .../executionstatemapping/icons/dis_add.png | Bin 0 -> 906 bytes .../icons/dis_delete.png | Bin 0 -> 935 bytes .../executionstatemapping/icons/dis_edit.png | Bin 0 -> 741 bytes .../executionstatemapping/icons/dis_sort.gif | Bin 0 -> 160 bytes .../executionstatemapping/icons/eclipse32.png | Bin 0 -> 4594 bytes .../executionstatemapping/icons/edit.gif | Bin 0 -> 582 bytes .../executionstatemapping/icons/error_obj.gif | Bin 0 -> 354 bytes .../executionstatemapping/icons/folder.gif | Bin 0 -> 1043 bytes .../executionstatemapping/icons/note.gif | Bin 0 -> 543 bytes .../executionstatemapping/icons/note_link.gif | Bin 0 -> 568 bytes .../executionstatemapping/icons/options.gif | Bin 0 -> 833 bytes .../executionstatemapping/icons/prefilter.gif | Bin 0 -> 936 bytes .../executionstatemapping/icons/sort.gif | Bin 0 -> 162 bytes .../icons/state_final.gif | Bin 0 -> 953 bytes .../icons/state_link.gif | Bin 0 -> 863 bytes .../icons/state_normal.gif | Bin 0 -> 914 bytes .../icons/stateeditor.gif | Bin 0 -> 1052 bytes .../messages/Messages.java | 33 + .../messages/messages.properties | 308 + .../messages/messages.properties.back | 308 + .../messages/util/ArgumentsReplacer.java | 131 + .../messages/util/MessagesUtil.java | 36 + .../util/SpecialCharacterConversion.java | 19 + .../util/SpecialCharactersConverter.java | 109 + .../flabot/executionstatemapping/model.ecore | 270 + .../executionstatemapping/model.genmodel | 239 + .../model/ExecutionStateMappingFileModel.java | 129 + .../model/ModelFactory.java | 46 + .../model/ModelPackage.java | 237 + .../ExecutionStateMappingFileModelImpl.java | 462 + .../model/impl/ModelFactoryImpl.java | 98 + .../model/impl/ModelPackageImpl.java | 254 + .../model/prolog/PrologCodeFactory.java | 42 + .../model/prolog/PrologElement.java | 59 + .../model/prolog/PrologFactory.java | 46 + .../model/prolog/PrologPackage.java | 310 + .../model/prolog/TagProvider.java | 13 + .../model/prolog/VisitedExpressionProlog.java | 30 + .../model/prolog/VisitorExpressionProlog.java | 50 + .../prolog/impl/EventTagProviderImpl.java | 33 + .../impl/GeneralLogFilterTagProvider.java | 19 + .../prolog/impl/PrologCodeFactoryImpl.java | 793 + .../model/prolog/impl/PrologFactoryImpl.java | 98 + .../model/prolog/impl/PrologPackageImpl.java | 330 + .../impl/ResponsibilityTagProviderImpl.java | 20 + .../prolog/util/PrologAdapterFactory.java | 198 + .../model/prolog/util/PrologSwitch.java | 219 + .../model/semantic/AbstractExpression.java | 112 + .../model/semantic/AndExpression.java | 22 + .../model/semantic/BlockExpression.java | 44 + .../model/semantic/ConditionValue.java | 459 + .../model/semantic/EvaluationCondition.java | 46 + .../model/semantic/EventType.java | 239 + .../ExceptionEvaluationCondition.java | 53 + .../model/semantic/ExecutionCondition.java | 224 + .../model/semantic/ExecutionStateValue.java | 288 + .../semantic/FieldEvaluationCondition.java | 35 + .../model/semantic/FinalState.java | 56 + .../semantic/MappedTreeStructuredElement.java | 22 + .../model/semantic/NamedElement.java | 26 + .../model/semantic/NotedElement.java | 46 + .../model/semantic/OrExpression.java | 22 + .../ParameterEvaluationCondition.java | 51 + .../ReturnedValueEvaluationCondition.java | 9 + .../semantic/ScopeEvaluationCondition.java | 25 + .../model/semantic/ScopeFilterType.java | 213 + .../model/semantic/SemanticFactory.java | 212 + .../model/semantic/SemanticPackage.java | 3145 + ...SimpleExecutionConditionConfiguration.java | 186 + .../SimpleExpressionExecutionCondition.java | 83 + .../model/semantic/SingleExpression.java | 53 + .../model/semantic/State.java | 53 + .../model/semantic/StateContainer.java | 124 + .../model/semantic/StateType.java | 239 + .../model/semantic/TransitionCondition.java | 65 + .../model/semantic/TreeStructuredElement.java | 101 + .../model/semantic/TreeType.java | 400 + .../model/semantic/VisitedExpression.java | 30 + .../model/semantic/VisitorExpression.java | 47 + .../semantic/impl/AbstractExpressionImpl.java | 338 + .../semantic/impl/AndExpressionImpl.java | 57 + .../semantic/impl/BlockExpressionImpl.java | 164 + .../EStringToTreeStructuredElementImpl.java | 326 + .../impl/EvaluationConditionImpl.java | 228 + .../ExceptionEvaluationConditionImpl.java | 166 + .../semantic/impl/ExecutionConditionImpl.java | 751 + .../impl/FieldEvaluationConditionImpl.java | 163 + .../model/semantic/impl/FinalStateImpl.java | 167 + .../impl/MappedTreeStructuredElementImpl.java | 184 + .../model/semantic/impl/NamedElementImpl.java | 174 + .../model/semantic/impl/NotedElementImpl.java | 139 + .../model/semantic/impl/OrExpressionImpl.java | 56 + .../ParameterEvaluationConditionImpl.java | 220 + .../ReturnedValueEvaluationConditionImpl.java | 43 + .../impl/ScopeEvaluationConditionImpl.java | 71 + .../semantic/impl/SemanticFactoryImpl.java | 526 + .../semantic/impl/SemanticPackageImpl.java | 1451 + ...leExecutionConditionConfigurationImpl.java | 544 + ...impleExpressionExecutionConditionImpl.java | 246 + .../semantic/impl/SingleExpressionImpl.java | 181 + .../semantic/impl/StateContainerImpl.java | 488 + .../model/semantic/impl/StateImpl.java | 367 + .../impl/TransitionConditionImpl.java | 359 + .../impl/TreeStructuredElementImpl.java | 443 + .../semantic/util/SemanticAdapterFactory.java | 617 + .../model/semantic/util/SemanticSwitch.java | 731 + ...tionConditionGeneralLogFilterStrategy.java | 55 + ...cutionConditionTraceInferenceStrategy.java | 57 + .../StateDiagramTraceInferenceStrategy.java | 58 + .../strategymodel/StrategymodelFactory.java | 64 + .../strategymodel/StrategymodelPackage.java | 308 + ...ConditionGeneralLogFilterStrategyImpl.java | 233 + ...onConditionTraceInferenceStrategyImpl.java | 286 + ...tateDiagramTraceInferenceStrategyImpl.java | 267 + .../impl/StrategymodelFactoryImpl.java | 122 + .../impl/StrategymodelPackageImpl.java | 291 + .../strategymodel/util/MappingChecker.java | 87 + .../util/StrategymodelAdapterFactory.java | 217 + .../util/StrategymodelSwitch.java | 227 + .../model/util/ModelAdapterFactory.java | 122 + .../model/util/ModelSwitch.java | 130 + .../model/visual/StateDiagram.java | 56 + .../model/visual/VisualFactory.java | 46 + .../model/visual/VisualPackage.java | 216 + .../model/visual/impl/StateDiagramImpl.java | 201 + .../model/visual/impl/VisualFactoryImpl.java | 98 + .../model/visual/impl/VisualPackageImpl.java | 211 + .../visual/util/VisualAdapterFactory.java | 160 + .../model/visual/util/VisualSwitch.java | 164 + .../executionstatemapping/strategymodel.ecore | 22 + .../strategymodel.genmodel | 247 + .../utils/CommandUtils.java | 69 + .../utils/ExecutionConditionUtils.java | 205 + .../utils/jdt/BinaryClassSearchRequestor.java | 82 + .../jdt/InternalMethodCallsSearcher.java | 74 + .../view/ExecutionConditionView.java | 97 + .../view/ExecutionConditionViewPage.java | 944 + .../view/dnd/TreeStructuredElementDrag.java | 91 + .../view/dnd/TreeStructuredElementDrop.java | 88 + .../.classpath | 7 + .../.project | 28 + .../META-INF/MANIFEST.MF | 16 + .../InstrumentationEvent.class | Bin 0 -> 1829 bytes .../InstrumentationGauge.class | Bin 0 -> 7123 bytes .../InstrumentationGaugeManager.class | Bin 0 -> 12539 bytes .../instrumentation/JavaModelCreator.class | Bin 0 -> 4107 bytes .../StrategyInstrumentor$GaugeAllocator.class | Bin 0 -> 21121 bytes ...strumentor$GaugeConsumerFilterResult.class | Bin 0 -> 1864 bytes .../StrategyInstrumentor.class | Bin 0 -> 11049 bytes .../runtime/ExecutionStack.class | Bin 0 -> 980 bytes .../runtime/ExecutionStackPool.class | Bin 0 -> 1269 bytes .../runtime/GaugeManagerPool.class | Bin 0 -> 1497 bytes .../NotifyingState$ObjectBoolean.class | Bin 0 -> 652 bytes .../runtime/NotifyingState.class | Bin 0 -> 1370 bytes .../build.properties | 5 + .../instrumentation/InstrumentationEvent.java | 39 + .../instrumentation/InstrumentationGauge.java | 156 + .../InstrumentationGaugeManager.java | 442 + .../instrumentation/JavaModelCreator.java | 132 + .../instrumentation/StrategyInstrumentor.java | 132 + .../runtime/ExecutionStack.java | 17 + .../runtime/ExecutionStackPool.java | 14 + .../runtime/GaugeManagerPool.java | 24 + .../runtime/NotifyingState.java | 36 + org.isistan.flabot.gauge/.classpath | 7 + org.isistan.flabot.gauge/.project | 28 + org.isistan.flabot.gauge/META-INF/MANIFEST.MF | 15 + .../flabot/gauge/Event$AttributeName.class | Bin 0 -> 850 bytes .../bin/org/isistan/flabot/gauge/Event.class | Bin 0 -> 1202 bytes .../isistan/flabot/gauge/EventFilter.class | Bin 0 -> 183 bytes .../flabot/gauge/Gauge$AttributeName.class | Bin 0 -> 820 bytes .../org/isistan/flabot/gauge/Gauge$Type.class | Bin 0 -> 1710 bytes .../bin/org/isistan/flabot/gauge/Gauge.class | Bin 0 -> 1225 bytes .../isistan/flabot/gauge/GaugeConsumer.class | Bin 0 -> 432 bytes .../isistan/flabot/gauge/GaugeFilter.class | Bin 0 -> 407 bytes .../isistan/flabot/gauge/GaugeManager.class | Bin 0 -> 10554 bytes .../isistan/flabot/gauge/GaugePlugin.class | Bin 0 -> 1147 bytes .../org/isistan/flabot/gauge/Strategy.class | Bin 0 -> 575 bytes org.isistan.flabot.gauge/build.properties | 5 + .../src/org/isistan/flabot/gauge/Event.java | 50 + .../org/isistan/flabot/gauge/EventFilter.java | 9 + .../src/org/isistan/flabot/gauge/Gauge.java | 111 + .../isistan/flabot/gauge/GaugeConsumer.java | 23 + .../org/isistan/flabot/gauge/GaugeFilter.java | 18 + .../isistan/flabot/gauge/GaugeManager.java | 327 + .../org/isistan/flabot/gauge/GaugePlugin.java | 56 + .../org/isistan/flabot/gauge/Strategy.java | 32 + org.isistan.flabot.instrumentation/.classpath | 8 + org.isistan.flabot.instrumentation/.project | 28 + .../META-INF/MANIFEST.MF | 12 + ...aderGenerator$ClassLoaderClassEditor.class | Bin 0 -> 2579 bytes .../ClassLoaderGenerator.class | Bin 0 -> 3240 bytes .../InstrumentationUtils.class | Bin 0 -> 2637 bytes .../JavassistUtils$ClassLoaderClassPath.class | Bin 0 -> 693 bytes .../instrumentation/JavassistUtils.class | Bin 0 -> 1818 bytes .../launcher/DefaultInitializer.class | Bin 0 -> 1041 bytes .../launcher/Initializer.class | Bin 0 -> 386 bytes .../instrumentation/launcher/Launcher.class | Bin 0 -> 4021 bytes .../InstrumentationException.class | Bin 0 -> 1121 bytes .../classloader/Instrumentor.class | Bin 0 -> 526 bytes .../Interceptor$InstrumentorsList.class | Bin 0 -> 2179 bytes .../classloader/Interceptor.class | Bin 0 -> 3734 bytes .../classloader/InstrumentationException.java | 13 + .../classloader/Instrumentor.java | 22 + .../classloader/Interceptor.java | 120 + .../build.properties | 14 + .../instrumentation/ClassLoaderGenerator.java | 113 + .../instrumentation/InstrumentationUtils.java | 73 + .../instrumentation/JavassistUtils.java | 39 + .../launcher/DefaultInitializer.java | 28 + .../instrumentation/launcher/Initializer.java | 34 + .../instrumentation/launcher/Launcher.java | 8 + org.isistan.flabot.javamodel.java/.classpath | 7 + org.isistan.flabot.javamodel.java/.project | 28 + .../META-INF/MANIFEST.MF | 10 + .../java/AccessibleObjectBuilder.class | Bin 0 -> 1126 bytes .../javamodel/java/AccessibleObjectImpl.class | Bin 0 -> 2948 bytes .../java/AnnotatedElementBuilder.class | Bin 0 -> 1126 bytes .../javamodel/java/AnnotatedElementImpl.class | Bin 0 -> 2682 bytes .../javamodel/java/AnnotationBuilder.class | Bin 0 -> 1084 bytes .../javamodel/java/AnnotationImpl.class | Bin 0 -> 1472 bytes .../flabot/javamodel/java/ArrayBuilder.class | Bin 0 -> 1241 bytes .../java/ArrayImpl$ArrayIterator.class | Bin 0 -> 1535 bytes .../flabot/javamodel/java/ArrayImpl.class | Bin 0 -> 3732 bytes .../javamodel/java/BehaviorBuilder.class | Bin 0 -> 1035 bytes .../flabot/javamodel/java/BehaviorImpl.class | Bin 0 -> 1657 bytes .../java/BooleanPrimitiveBuilder.class | Bin 0 -> 1092 bytes .../javamodel/java/BooleanPrimitiveImpl.class | Bin 0 -> 1680 bytes .../javamodel/java/BytePrimitiveBuilder.class | Bin 0 -> 1068 bytes .../javamodel/java/BytePrimitiveImpl.class | Bin 0 -> 1635 bytes .../javamodel/java/CharPrimitiveBuilder.class | Bin 0 -> 1078 bytes .../javamodel/java/CharPrimitiveImpl.class | Bin 0 -> 1660 bytes .../flabot/javamodel/java/ClassBuilder.class | Bin 0 -> 1022 bytes .../flabot/javamodel/java/ClassImpl.class | Bin 0 -> 15964 bytes .../javamodel/java/ClassLoaderBuilder.class | Bin 0 -> 1070 bytes .../javamodel/java/ClassLoaderImpl.class | Bin 0 -> 4044 bytes .../javamodel/java/ConstructorBuilder.class | Bin 0 -> 1086 bytes .../javamodel/java/ConstructorImpl.class | Bin 0 -> 6179 bytes .../java/DoublePrimitiveBuilder.class | Bin 0 -> 1084 bytes .../javamodel/java/DoublePrimitiveImpl.class | Bin 0 -> 1665 bytes .../flabot/javamodel/java/EnumBuilder.class | Bin 0 -> 1014 bytes .../flabot/javamodel/java/EnumImpl.class | Bin 0 -> 1795 bytes .../flabot/javamodel/java/FieldBuilder.class | Bin 0 -> 1038 bytes .../flabot/javamodel/java/FieldImpl.class | Bin 0 -> 5197 bytes .../java/FloatPrimitiveBuilder.class | Bin 0 -> 1076 bytes .../javamodel/java/FloatPrimitiveImpl.class | Bin 0 -> 1650 bytes .../java/GenericDeclarationBuilder.class | Bin 0 -> 1142 bytes .../java/GenericDeclarationImpl.class | Bin 0 -> 1855 bytes .../javamodel/java/IntPrimitiveBuilder.class | Bin 0 -> 1068 bytes .../javamodel/java/IntPrimitiveImpl.class | Bin 0 -> 1640 bytes .../flabot/javamodel/java/JavaFactory.class | Bin 0 -> 11757 bytes .../javamodel/java/LongPrimitiveBuilder.class | Bin 0 -> 1068 bytes .../javamodel/java/LongPrimitiveImpl.class | Bin 0 -> 1635 bytes .../flabot/javamodel/java/MemberBuilder.class | Bin 0 -> 944 bytes .../flabot/javamodel/java/MemberImpl.class | Bin 0 -> 1920 bytes .../flabot/javamodel/java/MethodBuilder.class | Bin 0 -> 1046 bytes .../flabot/javamodel/java/MethodImpl.class | Bin 0 -> 6769 bytes .../flabot/javamodel/java/ObjectBuilder.class | Bin 0 -> 879 bytes .../flabot/javamodel/java/ObjectImpl.class | Bin 0 -> 3236 bytes .../javamodel/java/PackageBuilder.class | Bin 0 -> 1038 bytes .../flabot/javamodel/java/PackageImpl.class | Bin 0 -> 4128 bytes .../flabot/javamodel/java/PrimitiveImpl.class | Bin 0 -> 1355 bytes .../java/ShortPrimitiveBuilder.class | Bin 0 -> 1076 bytes .../javamodel/java/ShortPrimitiveImpl.class | Bin 0 -> 1650 bytes .../javamodel/java/ThrowableBuilder.class | Bin 0 -> 1054 bytes .../flabot/javamodel/java/ThrowableImpl.class | Bin 0 -> 1495 bytes .../flabot/javamodel/java/TypeBuilder.class | Bin 0 -> 1030 bytes .../flabot/javamodel/java/TypeImpl.class | Bin 0 -> 972 bytes .../javamodel/java/TypeVariableBuilder.class | Bin 0 -> 1094 bytes .../javamodel/java/TypeVariableImpl.class | Bin 0 -> 2173 bytes .../javamodel/java/VoidPrimitiveBuilder.class | Bin 0 -> 1084 bytes .../javamodel/java/VoidPrimitiveImpl.class | Bin 0 -> 1122 bytes .../build.properties | 5 + .../java/AccessibleObjectBuilder.java | 12 + .../javamodel/java/AccessibleObjectImpl.java | 59 + .../java/AnnotatedElementBuilder.java | 13 + .../javamodel/java/AnnotatedElementImpl.java | 51 + .../javamodel/java/AnnotationBuilder.java | 14 + .../flabot/javamodel/java/AnnotationImpl.java | 26 + .../flabot/javamodel/java/ArrayBuilder.java | 12 + .../flabot/javamodel/java/ArrayImpl.java | 77 + .../javamodel/java/BehaviorBuilder.java | 14 + .../flabot/javamodel/java/BehaviorImpl.java | 24 + .../java/BooleanPrimitiveBuilder.java | 19 + .../javamodel/java/BooleanPrimitiveImpl.java | 42 + .../javamodel/java/BytePrimitiveBuilder.java | 19 + .../javamodel/java/BytePrimitiveImpl.java | 42 + .../javamodel/java/CharPrimitiveBuilder.java | 19 + .../javamodel/java/CharPrimitiveImpl.java | 43 + .../flabot/javamodel/java/ClassBuilder.java | 15 + .../flabot/javamodel/java/ClassImpl.java | 381 + .../javamodel/java/ClassLoaderBuilder.java | 14 + .../javamodel/java/ClassLoaderImpl.java | 60 + .../javamodel/java/ConstructorBuilder.java | 14 + .../javamodel/java/ConstructorImpl.java | 116 + .../java/DoublePrimitiveBuilder.java | 19 + .../javamodel/java/DoublePrimitiveImpl.java | 42 + .../flabot/javamodel/java/EnumBuilder.java | 14 + .../flabot/javamodel/java/EnumImpl.java | 40 + .../flabot/javamodel/java/FieldBuilder.java | 12 + .../flabot/javamodel/java/FieldImpl.java | 78 + .../javamodel/java/FloatPrimitiveBuilder.java | 19 + .../javamodel/java/FloatPrimitiveImpl.java | 42 + .../java/GenericDeclarationBuilder.java | 13 + .../java/GenericDeclarationImpl.java | 33 + .../javamodel/java/IntPrimitiveBuilder.java | 19 + .../javamodel/java/IntPrimitiveImpl.java | 42 + .../flabot/javamodel/java/JavaFactory.java | 44 + .../javamodel/java/LongPrimitiveBuilder.java | 19 + .../javamodel/java/LongPrimitiveImpl.java | 42 + .../flabot/javamodel/java/MemberBuilder.java | 13 + .../flabot/javamodel/java/MemberImpl.java | 40 + .../flabot/javamodel/java/MethodBuilder.java | 14 + .../flabot/javamodel/java/MethodImpl.java | 131 + .../flabot/javamodel/java/ObjectBuilder.java | 14 + .../flabot/javamodel/java/ObjectImpl.java | 83 + .../flabot/javamodel/java/PackageBuilder.java | 14 + .../flabot/javamodel/java/PackageImpl.java | 65 + .../flabot/javamodel/java/PrimitiveImpl.java | 44 + .../javamodel/java/ShortPrimitiveBuilder.java | 19 + .../javamodel/java/ShortPrimitiveImpl.java | 42 + .../javamodel/java/ThrowableBuilder.java | 15 + .../flabot/javamodel/java/ThrowableImpl.java | 35 + .../flabot/javamodel/java/TypeBuilder.java | 13 + .../flabot/javamodel/java/TypeImpl.java | 24 + .../javamodel/java/TypeVariableBuilder.java | 15 + .../javamodel/java/TypeVariableImpl.java | 42 + .../javamodel/java/VoidPrimitiveBuilder.java | 17 + .../javamodel/java/VoidPrimitiveImpl.java | 24 + .../.classpath | 7 + .../.project | 29 + .../META-INF/MANIFEST.MF | 11 + .../javamodel/javassist/ArrayBuilder.class | Bin 0 -> 1256 bytes .../javassist/ArrayImpl$ArrayIterator.class | Bin 0 -> 1575 bytes .../javamodel/javassist/ArrayImpl.class | Bin 0 -> 3807 bytes .../javamodel/javassist/BehaviorBuilder.class | Bin 0 -> 960 bytes .../javamodel/javassist/BehaviorImpl.class | Bin 0 -> 4445 bytes .../javamodel/javassist/ClassBuilder.class | Bin 0 -> 1041 bytes .../javamodel/javassist/ClassImpl.class | Bin 0 -> 13660 bytes .../javassist/ConstructorBuilder.class | Bin 0 -> 1089 bytes .../javamodel/javassist/ConstructorImpl.class | Bin 0 -> 1872 bytes .../javamodel/javassist/FieldBuilder.class | Bin 0 -> 1041 bytes .../javamodel/javassist/FieldImpl.class | Bin 0 -> 3536 bytes .../javassist/JavassistFactory.class | Bin 0 -> 2057 bytes .../javamodel/javassist/MemberBuilder.class | Bin 0 -> 948 bytes .../javamodel/javassist/MemberImpl.class | Bin 0 -> 1919 bytes .../javamodel/javassist/MethodBuilder.class | Bin 0 -> 1049 bytes .../javamodel/javassist/MethodImpl.class | Bin 0 -> 2671 bytes .../javamodel/javassist/ObjectBuilder.class | Bin 0 -> 894 bytes .../javamodel/javassist/ObjectImpl.class | Bin 0 -> 3226 bytes .../javamodel/javassist/PackageBuilder.class | Bin 0 -> 1051 bytes .../javamodel/javassist/PackageImpl.class | Bin 0 -> 4265 bytes .../build.properties | 5 + .../javamodel/javassist/ArrayBuilder.java | 12 + .../flabot/javamodel/javassist/ArrayImpl.java | 78 + .../javamodel/javassist/BehaviorBuilder.java | 13 + .../javamodel/javassist/BehaviorImpl.java | 95 + .../javamodel/javassist/ClassBuilder.java | 13 + .../flabot/javamodel/javassist/ClassImpl.java | 381 + .../javassist/ConstructorBuilder.java | 14 + .../javamodel/javassist/ConstructorImpl.java | 31 + .../javamodel/javassist/FieldBuilder.java | 12 + .../flabot/javamodel/javassist/FieldImpl.java | 77 + .../javamodel/javassist/JavassistFactory.java | 30 + .../javamodel/javassist/MemberBuilder.java | 13 + .../javamodel/javassist/MemberImpl.java | 39 + .../javamodel/javassist/MethodBuilder.java | 14 + .../javamodel/javassist/MethodImpl.java | 48 + .../javamodel/javassist/ObjectBuilder.java | 14 + .../javamodel/javassist/ObjectImpl.java | 83 + .../javamodel/javassist/PackageBuilder.java | 14 + .../javamodel/javassist/PackageImpl.java | 81 + org.isistan.flabot.javamodel.jdt/.classpath | 7 + org.isistan.flabot.javamodel.jdt/.project | 29 + .../META-INF/MANIFEST.MF | 18 + .../flabot/javamodel/jdt/ArrayBuilder.class | Bin 0 -> 1238 bytes .../jdt/ArrayImpl$ArrayIterator.class | Bin 0 -> 1527 bytes .../flabot/javamodel/jdt/ArrayImpl.class | Bin 0 -> 3717 bytes .../javamodel/jdt/BehaviorBuilder.class | Bin 0 -> 1197 bytes .../flabot/javamodel/jdt/BehaviorImpl.class | Bin 0 -> 8514 bytes .../javamodel/jdt/ConstructorBuilder.class | Bin 0 -> 1735 bytes .../javamodel/jdt/ConstructorImpl.class | Bin 0 -> 1960 bytes .../flabot/javamodel/jdt/FieldBuilder.class | Bin 0 -> 1043 bytes .../flabot/javamodel/jdt/FieldImpl.class | Bin 0 -> 3757 bytes ...nstructorImpl$JDTImplicitConstructor.class | Bin 0 -> 919 bytes .../jdt/ImplicitConstructorImpl.class | Bin 0 -> 5785 bytes .../flabot/javamodel/jdt/JDTFactory.class | Bin 0 -> 5988 bytes .../javamodel/jdt/JNotificableElement.class | Bin 0 -> 255 bytes .../javamodel/jdt/JavaBinaryFileImpl.class | Bin 0 -> 3235 bytes .../javamodel/jdt/JavaFileBuilder.class | Bin 0 -> 1332 bytes .../flabot/javamodel/jdt/JavaFileImpl.class | Bin 0 -> 2223 bytes .../javamodel/jdt/JavaModelJDTUtil.class | Bin 0 -> 11637 bytes ...ModelListener$ElementChangedListener.class | Bin 0 -> 3542 bytes .../JavaModelListener$InterestedInfo.class | Bin 0 -> 1321 bytes .../javamodel/jdt/JavaModelListener.class | Bin 0 -> 2907 bytes .../javamodel/jdt/JavaSourceFileImpl.class | Bin 0 -> 3142 bytes .../flabot/javamodel/jdt/MemberImpl.class | Bin 0 -> 3541 bytes .../flabot/javamodel/jdt/MethodBuilder.class | Bin 0 -> 1353 bytes .../flabot/javamodel/jdt/MethodImpl.class | Bin 0 -> 3003 bytes .../flabot/javamodel/jdt/ObjectBuilder.class | Bin 0 -> 876 bytes .../flabot/javamodel/jdt/ObjectImpl.class | Bin 0 -> 3064 bytes .../javamodel/jdt/PackageRootBuilder.class | Bin 0 -> 1135 bytes .../javamodel/jdt/PackageRootImpl.class | Bin 0 -> 5541 bytes .../flabot/javamodel/jdt/ProjectBuilder.class | Bin 0 -> 1095 bytes .../flabot/javamodel/jdt/ProjectImpl.class | Bin 0 -> 3903 bytes .../jdt/UnresolvedTypeException.class | Bin 0 -> 937 bytes .../javamodel/jdt/WorkspaceBuilder.class | Bin 0 -> 1103 bytes .../javamodel/jdt/WorkspaceClassBuilder.class | Bin 0 -> 2621 bytes .../WorkspaceClassImpl$BindingFinder.class | Bin 0 -> 1998 bytes .../javamodel/jdt/WorkspaceClassImpl.class | Bin 0 -> 23591 bytes .../flabot/javamodel/jdt/WorkspaceImpl.class | Bin 0 -> 3878 bytes .../jdt/WorkspacePackageBuilder.class | Bin 0 -> 1342 bytes .../javamodel/jdt/WorkspacePackageImpl.class | Bin 0 -> 9270 bytes ...acePrimitiveClassImpl$PrimitiveClass.class | Bin 0 -> 2144 bytes ...pacePrimitiveClassImpl$PrimitiveType.class | Bin 0 -> 1449 bytes .../jdt/WorkspacePrimitiveClassImpl.class | Bin 0 -> 13282 bytes .../jdt/ast/ASTUtil$ASTNodeFilter.class | Bin 0 -> 315 bytes .../ast/ASTUtil$DescendantsASTVisitor.class | Bin 0 -> 1887 bytes .../flabot/javamodel/jdt/ast/ASTUtil.class | Bin 0 -> 2726 bytes .../jdt/ast/DelegatingASTVisitor.class | Bin 0 -> 14270 bytes .../jdt/ast/NoChildrenASTVisitor.class | Bin 0 -> 13868 bytes .../jdt/ast/StoppableASTVisitor.class | Bin 0 -> 14332 bytes .../jdt/ast/TopLevelClassesGetter.class | Bin 0 -> 2622 bytes .../javamodel/jdt/workspace/JJavaFile.class | Bin 0 -> 737 bytes .../jdt/workspace/JPackageRoot.class | Bin 0 -> 649 bytes .../javamodel/jdt/workspace/JProject.class | Bin 0 -> 603 bytes .../javamodel/jdt/workspace/JWorkspace.class | Bin 0 -> 479 bytes .../jdt/workspace/JWorkspaceClass.class | Bin 0 -> 346 bytes .../jdt/workspace/JWorkspaceElement.class | Bin 0 -> 158 bytes .../jdt/workspace/JWorkspacePackage.class | Bin 0 -> 686 bytes .../build.properties | 5 + .../flabot/javamodel/jdt/ArrayBuilder.java | 13 + .../flabot/javamodel/jdt/ArrayImpl.java | 78 + .../flabot/javamodel/jdt/BehaviorBuilder.java | 14 + .../flabot/javamodel/jdt/BehaviorImpl.java | 79 + .../javamodel/jdt/ConstructorBuilder.java | 10 + .../flabot/javamodel/jdt/ConstructorImpl.java | 32 + .../flabot/javamodel/jdt/FieldBuilder.java | 10 + .../flabot/javamodel/jdt/FieldImpl.java | 77 + .../jdt/ImplicitConstructorImpl.java | 30 + .../flabot/javamodel/jdt/JDTFactory.java | 23 + .../javamodel/jdt/JNotificableElement.java | 9 + .../javamodel/jdt/JavaBinaryFileImpl.java | 65 + .../flabot/javamodel/jdt/JavaFileBuilder.java | 12 + .../flabot/javamodel/jdt/JavaFileImpl.java | 52 + .../javamodel/jdt/JavaModelJDTUtil.java | 323 + .../javamodel/jdt/JavaModelListener.java | 93 + .../javamodel/jdt/JavaSourceFileImpl.java | 59 + .../flabot/javamodel/jdt/MemberImpl.java | 73 + .../flabot/javamodel/jdt/MethodBuilder.java | 3 + .../flabot/javamodel/jdt/MethodImpl.java | 38 + .../flabot/javamodel/jdt/ObjectBuilder.java | 14 + .../flabot/javamodel/jdt/ObjectImpl.java | 73 + .../javamodel/jdt/PackageRootBuilder.java | 13 + .../flabot/javamodel/jdt/PackageRootImpl.java | 120 + .../flabot/javamodel/jdt/ProjectBuilder.java | 13 + .../flabot/javamodel/jdt/ProjectImpl.java | 88 + .../jdt/UnresolvedTypeException.java | 19 + .../javamodel/jdt/WorkspaceBuilder.java | 13 + .../javamodel/jdt/WorkspaceClassBuilder.java | 14 + .../javamodel/jdt/WorkspaceClassImpl.java | 289 + .../flabot/javamodel/jdt/WorkspaceImpl.java | 73 + .../jdt/WorkspacePackageBuilder.java | 13 + .../javamodel/jdt/WorkspacePackageImpl.java | 231 + .../jdt/WorkspacePrimitiveClassImpl.java | 235 + .../flabot/javamodel/jdt/ast/ASTUtil.java | 121 + .../jdt/ast/DelegatingASTVisitor.java | 513 + .../jdt/ast/NoChildrenASTVisitor.java | 510 + .../jdt/ast/StoppableASTVisitor.java | 514 + .../jdt/ast/TopLevelClassesGetter.java | 67 + .../javamodel/jdt/workspace/JJavaFile.java | 49 + .../javamodel/jdt/workspace/JPackageRoot.java | 47 + .../javamodel/jdt/workspace/JProject.java | 40 + .../javamodel/jdt/workspace/JWorkspace.java | 27 + .../jdt/workspace/JWorkspaceClass.java | 19 + .../jdt/workspace/JWorkspaceElement.java | 12 + .../jdt/workspace/JWorkspacePackage.java | 34 + org.isistan.flabot.javamodel/.classpath | 7 + org.isistan.flabot.javamodel/.project | 28 + .../META-INF/MANIFEST.MF | 10 + .../flabot/javamodel/ArrayMirrorBuilder.class | Bin 0 -> 657 bytes .../CannotAccessItemsInAMatrixException.class | Bin 0 -> 1090 bytes ...AccessSubarraysInANonMatrixException.class | Bin 0 -> 1119 bytes .../javamodel/CompositeMirrorBuilder.class | Bin 0 -> 1776 bytes .../isistan/flabot/javamodel/Factory.class | Bin 0 -> 23739 bytes .../javamodel/InternalModelException.class | Bin 0 -> 1034 bytes .../flabot/javamodel/JAccessibleObject.class | Bin 0 -> 302 bytes .../flabot/javamodel/JAnnotatedElement.class | Bin 0 -> 584 bytes .../flabot/javamodel/JAnnotation.class | Bin 0 -> 243 bytes .../org/isistan/flabot/javamodel/JArray.class | Bin 0 -> 582 bytes .../isistan/flabot/javamodel/JBehavior.class | Bin 0 -> 973 bytes .../flabot/javamodel/JBooleanPrimitive.class | Bin 0 -> 216 bytes .../flabot/javamodel/JBytePrimitive.class | Bin 0 -> 210 bytes .../flabot/javamodel/JCharPrimitive.class | Bin 0 -> 210 bytes .../org/isistan/flabot/javamodel/JClass.class | Bin 0 -> 4231 bytes .../flabot/javamodel/JClassLoader.class | Bin 0 -> 818 bytes .../flabot/javamodel/JConstructor.class | Bin 0 -> 548 bytes .../flabot/javamodel/JDescriptedElement.class | Bin 0 -> 237 bytes .../flabot/javamodel/JDoublePrimitive.class | Bin 0 -> 214 bytes .../org/isistan/flabot/javamodel/JEnum.class | Bin 0 -> 544 bytes .../org/isistan/flabot/javamodel/JField.class | Bin 0 -> 661 bytes .../flabot/javamodel/JFloatPrimitive.class | Bin 0 -> 212 bytes .../javamodel/JGenericDeclaration.class | Bin 0 -> 371 bytes .../flabot/javamodel/JIntPrimitive.class | Bin 0 -> 208 bytes .../flabot/javamodel/JLongPrimitive.class | Bin 0 -> 210 bytes .../isistan/flabot/javamodel/JMember.class | Bin 0 -> 460 bytes .../isistan/flabot/javamodel/JMethod.class | Bin 0 -> 694 bytes .../isistan/flabot/javamodel/JObject.class | Bin 0 -> 603 bytes .../isistan/flabot/javamodel/JPackage.class | Bin 0 -> 1055 bytes .../isistan/flabot/javamodel/JPrimitive.class | Bin 0 -> 242 bytes .../flabot/javamodel/JShortPrimitive.class | Bin 0 -> 212 bytes .../flabot/javamodel/JSourceElement.class | Bin 0 -> 261 bytes .../flabot/javamodel/JSourceLocation.class | Bin 0 -> 1254 bytes .../isistan/flabot/javamodel/JThrowable.class | Bin 0 -> 283 bytes .../org/isistan/flabot/javamodel/JType.class | Bin 0 -> 164 bytes .../flabot/javamodel/JTypeVariable.class | Bin 0 -> 513 bytes .../flabot/javamodel/JVoidPrimitive.class | Bin 0 -> 257 bytes .../javamodel/JavaMetaModelException.class | Bin 0 -> 1547 bytes .../JavaModelObjectHashProvider.class | Bin 0 -> 1152 bytes .../flabot/javamodel/MirrorBuilder.class | Bin 0 -> 262 bytes .../MixedImplementationsException.class | Bin 0 -> 1067 bytes .../ModelArrayImpl$ArrayIterator.class | Bin 0 -> 1540 bytes .../flabot/javamodel/ModelArrayImpl.class | Bin 0 -> 3941 bytes .../NotSupportedFeatureException.class | Bin 0 -> 620 bytes .../ObjectClassOutOfBoundsException.class | Bin 0 -> 1042 bytes .../javamodel/ObjectMirrorBuilder.class | Bin 0 -> 442 bytes .../org/isistan/flabot/javamodel/Util.class | Bin 0 -> 8304 bytes org.isistan.flabot.javamodel/build.properties | 5 + .../flabot/javamodel/ArrayMirrorBuilder.java | 11 + .../CannotAccessItemsInAMatrixException.java | 22 + ...tAccessSubarraysInANonMatrixException.java | 19 + .../javamodel/CompositeMirrorBuilder.java | 29 + .../org/isistan/flabot/javamodel/Factory.java | 208 + .../javamodel/InternalModelException.java | 14 + .../flabot/javamodel/JAccessibleObject.java | 62 + .../flabot/javamodel/JAnnotatedElement.java | 81 + .../isistan/flabot/javamodel/JAnnotation.java | 19 + .../org/isistan/flabot/javamodel/JArray.java | 10 + .../isistan/flabot/javamodel/JBehavior.java | 190 + .../flabot/javamodel/JBooleanPrimitive.java | 6 + .../flabot/javamodel/JBytePrimitive.java | 6 + .../flabot/javamodel/JCharPrimitive.java | 6 + .../org/isistan/flabot/javamodel/JClass.java | 1202 + .../flabot/javamodel/JClassLoader.java | 309 + .../flabot/javamodel/JConstructor.java | 52 + .../flabot/javamodel/JDescriptedElement.java | 58 + .../flabot/javamodel/JDoublePrimitive.java | 6 + .../org/isistan/flabot/javamodel/JEnum.java | 75 + .../org/isistan/flabot/javamodel/JField.java | 127 + .../flabot/javamodel/JFloatPrimitive.java | 6 + .../flabot/javamodel/JGenericDeclaration.java | 21 + .../flabot/javamodel/JIntPrimitive.java | 6 + .../flabot/javamodel/JLongPrimitive.java | 6 + .../org/isistan/flabot/javamodel/JMember.java | 55 + .../org/isistan/flabot/javamodel/JMethod.java | 108 + .../org/isistan/flabot/javamodel/JObject.java | 389 + .../isistan/flabot/javamodel/JPackage.java | 163 + .../isistan/flabot/javamodel/JPrimitive.java | 18 + .../flabot/javamodel/JShortPrimitive.java | 6 + .../flabot/javamodel/JSourceElement.java | 18 + .../flabot/javamodel/JSourceLocation.java | 101 + .../isistan/flabot/javamodel/JThrowable.java | 13 + .../org/isistan/flabot/javamodel/JType.java | 13 + .../flabot/javamodel/JTypeVariable.java | 67 + .../flabot/javamodel/JVoidPrimitive.java | 5 + .../javamodel/JavaMetaModelException.java | 12 + .../JavaModelObjectHashProvider.java | 11 + .../flabot/javamodel/MirrorBuilder.java | 12 + .../MixedImplementationsException.java | 19 + .../flabot/javamodel/ModelArrayImpl.java | 117 + .../NotSupportedFeatureException.java | 11 + .../ObjectClassOutOfBoundsException.java | 19 + .../flabot/javamodel/ObjectMirrorBuilder.java | 17 + .../org/isistan/flabot/javamodel/Util.java | 175 + org.isistan.flabot.javassist/.classpath | 7 + org.isistan.flabot.javassist/.project | 28 + org.isistan.flabot.javassist/build.properties | 3 + .../lib/javassist.jar | Bin 0 -> 425319 bytes org.isistan.flabot.javassist/plugin.xml | 14 + .../.classpath | 8 + .../.project | 28 + ...EclipseWorkbenchConfigurationDelegate.java | 51 + .../META-INF/MANIFEST.MF | 28 + .../instrumentation/FlabotInitializer.class | Bin 0 -> 3230 bytes .../LauncherInstrumentationPlugin.class | Bin 0 -> 937 bytes .../LauncherInstrumentationUtils.class | Bin 0 -> 5776 bytes .../EclipseWorkbenchCollectionLauncher.class | Bin 0 -> 1643 bytes ...clipseWorkbenchConfigurationDelegate.class | Bin 0 -> 5587 bytes .../eclipse/LaunchConfigurationHelper.class | Bin 0 -> 15220 bytes ...calJavaApplicationCollectionLauncher.class | Bin 0 -> 1671 bytes ...JavaApplicationConfigurationDelegate.class | Bin 0 -> 4952 bytes .../build.properties | 8 + .../plugin.xml | 19 + .../instrumentation/FlabotInitializer.java | 36 + .../LauncherInstrumentationPlugin.java | 45 + .../LauncherInstrumentationUtils.java | 1 + .../EclipseWorkbenchCollectionLauncher.java | 28 + ...EclipseWorkbenchConfigurationDelegate.java | 51 + .../eclipse/LaunchConfigurationHelper.java | 454 + ...ocalJavaApplicationCollectionLauncher.java | 28 + ...lJavaApplicationConfigurationDelegate.java | 1 + org.isistan.flabot.launcher/.classpath | 7 + org.isistan.flabot.launcher/.project | 28 + .../META-INF/MANIFEST.MF | 38 + .../launcher/ExtensionPointConstants.class | Bin 0 -> 1061 bytes .../LaunchConfigurationConstants.class | Bin 0 -> 708 bytes .../flabot/launcher/LauncherPlugin.class | Bin 0 -> 1918 bytes .../collection/CollectionLauncher.class | Bin 0 -> 555 bytes .../CollectionLauncherException.class | Bin 0 -> 1364 bytes .../collection/CollectionLauncherLoader.class | Bin 0 -> 5638 bytes ...onfigurationSavingCollectionLauncher.class | Bin 0 -> 3872 bytes .../launcher/context/ContextProvider.class | Bin 0 -> 396 bytes .../context/ContextProviderException.class | Bin 0 -> 674 bytes .../context/ContextProviderLoader.class | Bin 0 -> 5563 bytes .../FlabotLauncherConfigurationDelegate.class | Bin 0 -> 8852 bytes .../filter/LogFilterEditionItem$1.class | Bin 0 -> 1751 bytes .../filter/LogFilterEditionItem.class | Bin 0 -> 6188 bytes .../launcher/filter/LogFilterManager.class | Bin 0 -> 1564 bytes .../filtermodel/FiltermodelFactory.class | Bin 0 -> 718 bytes .../filtermodel/FiltermodelPackage.class | Bin 0 -> 1205 bytes .../filter/filtermodel/LogFilter.class | Bin 0 -> 491 bytes .../impl/FiltermodelFactoryImpl.class | Bin 0 -> 2341 bytes .../impl/FiltermodelPackageImpl.class | Bin 0 -> 4542 bytes .../filtermodel/impl/LogFilterImpl.class | Bin 0 -> 3708 bytes .../util/FiltermodelAdapterFactory$1.class | Bin 0 -> 1335 bytes .../util/FiltermodelAdapterFactory.class | Bin 0 -> 2058 bytes .../filtermodel/util/FiltermodelSwitch.class | Bin 0 -> 2273 bytes .../isistan/flabot/launcher/filtermodel.ecore | 9 + .../flabot/launcher/launchermodel.genmodel | 14 + .../flabot/launcher/messages/Messages.class | Bin 0 -> 1376 bytes .../launcher/messages/messages.properties | 23 + .../tabs/AbstractConfigurationTab.class | Bin 0 -> 3328 bytes .../tabs/DelegatingConfigurationTab.class | Bin 0 -> 4934 bytes .../tabs/FlabotLauncherTabGroup.class | Bin 0 -> 1641 bytes .../tabs/MainConfigurationTab$1.class | Bin 0 -> 1309 bytes .../tabs/MainConfigurationTab$2.class | Bin 0 -> 1321 bytes .../tabs/MainConfigurationTab$3.class | Bin 0 -> 1340 bytes .../tabs/MainConfigurationTab$4.class | Bin 0 -> 1352 bytes .../tabs/MainConfigurationTab$5.class | Bin 0 -> 1337 bytes .../tabs/MainConfigurationTab$6.class | Bin 0 -> 1349 bytes .../tabs/MainConfigurationTab$7.class | Bin 0 -> 1314 bytes .../tabs/MainConfigurationTab$8.class | Bin 0 -> 1047 bytes .../tabs/MainConfigurationTab$9.class | Bin 0 -> 1172 bytes .../launcher/tabs/MainConfigurationTab.class | Bin 0 -> 18613 bytes .../basic/MessageLaunchConfigurationTab.class | Bin 0 -> 2315 bytes .../launcher/trace/ControlPanelListener.class | Bin 0 -> 224 bytes .../launcher/trace/LogContextGenerator.class | Bin 0 -> 2022 bytes .../launcher/trace/MetadataHandler.class | Bin 0 -> 10435 bytes .../flabot/launcher/trace/TagUtil.class | Bin 0 -> 3086 bytes .../launcher/trace/TraceGenerator.class | Bin 0 -> 11065 bytes .../launcher/trace/TraceLogHandler$1.class | Bin 0 -> 1458 bytes .../launcher/trace/TraceLogHandler$2.class | Bin 0 -> 1458 bytes .../launcher/trace/TraceLogHandler$3.class | Bin 0 -> 1055 bytes .../launcher/trace/TraceLogHandler$4.class | Bin 0 -> 1056 bytes .../launcher/trace/TraceLogHandler$5.class | Bin 0 -> 2703 bytes .../launcher/trace/TraceLogHandler$6.class | Bin 0 -> 1029 bytes .../launcher/trace/TraceLogHandler.class | Bin 0 -> 12389 bytes .../BasicObjectSnapshotTagCreator.class | Bin 0 -> 3480 bytes .../objecttag/BasicObjectTagCreator.class | Bin 0 -> 5630 bytes .../objecttag/ObjectSnapshotTagCreator.class | Bin 0 -> 318 bytes .../trace/objecttag/ObjectTagCreator.class | Bin 0 -> 302 bytes org.isistan.flabot.launcher/build.properties | 8 + org.isistan.flabot.launcher/plugin.properties | 20 + org.isistan.flabot.launcher/plugin.xml | 61 + .../icon/flabotCollectingSessionIcon.gif | Bin 0 -> 1034 bytes .../schema/collectionLauncher.exsd | 134 + .../schema/contextProvider.exsd | 132 + .../launcher/ExtensionPointConstants.java | 41 + .../LaunchConfigurationConstants.java | 42 + .../flabot/launcher/LauncherPlugin.java | 93 + .../collection/CollectionLauncher.java | 37 + .../CollectionLauncherException.java | 46 + .../collection/CollectionLauncherLoader.java | 97 + ...ConfigurationSavingCollectionLauncher.java | 73 + .../launcher/context/ContextProvider.java | 33 + .../context/ContextProviderException.java | 32 + .../context/ContextProviderLoader.java | 97 + .../FlabotLauncherConfigurationDelegate.java | 5 + .../launcher/filter/LogFilterEditionItem.java | 116 + .../launcher/filter/LogFilterManager.java | 42 + .../filtermodel/FiltermodelFactory.java | 46 + .../filtermodel/FiltermodelPackage.java | 120 + .../filter/filtermodel/LogFilter.java | 42 + .../impl/FiltermodelFactoryImpl.java | 80 + .../impl/FiltermodelPackageImpl.java | 210 + .../filtermodel/impl/LogFilterImpl.java | 187 + .../util/FiltermodelAdapterFactory.java | 120 + .../filtermodel/util/FiltermodelSwitch.java | 130 + .../isistan/flabot/launcher/filtermodel.ecore | 9 + .../flabot/launcher/launchermodel.genmodel | 14 + .../flabot/launcher/messages/Messages.java | 33 + .../launcher/messages/messages.properties | 23 + .../tabs/AbstractConfigurationTab.java | 106 + .../tabs/DelegatingConfigurationTab.java | 220 + .../launcher/tabs/FlabotLauncherTabGroup.java | 2 + .../launcher/tabs/MainConfigurationTab.java | 840 + .../basic/MessageLaunchConfigurationTab.java | 73 + .../launcher/trace/ControlPanelListener.java | 33 + .../launcher/trace/LogContextGenerator.java | 33 + .../launcher/trace/MetadataHandler.java | 193 + .../flabot/launcher/trace/TagUtil.java | 121 + .../flabot/launcher/trace/TraceGenerator.java | 194 + .../launcher/trace/TraceLogHandler.java | 41 + .../BasicObjectSnapshotTagCreator.java | 9 + .../objecttag/BasicObjectTagCreator.java | 9 + .../objecttag/ObjectSnapshotTagCreator.java | 5 + .../trace/objecttag/ObjectTagCreator.java | 5 + org.isistan.flabot.mapping/.classpath | 7 + org.isistan.flabot.mapping/.project | 28 + .../META-INF/MANIFEST.MF | 31 + .../flabot/mapping/MappingManager.class | Bin 0 -> 1534 bytes .../flabot/mapping/MappingPlugin.class | Bin 0 -> 1877 bytes .../isistan/flabot/mapping/MappingType.class | Bin 0 -> 1235 bytes .../mapping/builder/MappingBuilder.class | Bin 0 -> 260 bytes .../builder/PatternMappingBuilder.class | Bin 0 -> 4764 bytes .../editor/ClientViewerContentProvider.class | Bin 0 -> 4135 bytes .../editor/ClientViewerLabelProvider.class | Bin 0 -> 1024 bytes .../editor/ComponentScopeEditionItem.class | Bin 0 -> 4623 bytes .../flabot/mapping/editor/Container.class | Bin 0 -> 531 bytes .../editor/HierarchyContentFilter.class | Bin 0 -> 3266 bytes .../mapping/editor/MappingEditionItem$1.class | Bin 0 -> 1077 bytes .../mapping/editor/MappingEditionItem$2.class | Bin 0 -> 961 bytes .../mapping/editor/MappingEditionItem$3.class | Bin 0 -> 961 bytes .../mapping/editor/MappingEditionItem$4.class | Bin 0 -> 760 bytes .../mapping/editor/MappingEditionItem$5.class | Bin 0 -> 931 bytes .../mapping/editor/MappingEditionItem$6.class | Bin 0 -> 1435 bytes .../mapping/editor/MappingEditionItem$7.class | Bin 0 -> 1893 bytes .../mapping/editor/MappingEditionItem$8.class | Bin 0 -> 1766 bytes .../mapping/editor/MappingEditionItem.class | Bin 0 -> 15346 bytes .../ResponsibilityMappingEditionItem.class | Bin 0 -> 3543 bytes ...yMaterializationMappingEditionItem$1.class | Bin 0 -> 2915 bytes ...ityMaterializationMappingEditionItem.class | Bin 0 -> 4934 bytes .../mapping/editor/WorkspaceViewer$1.class | Bin 0 -> 1351 bytes .../WorkspaceViewer$SelectionFilter.class | Bin 0 -> 360 bytes .../mapping/editor/WorkspaceViewer.class | Bin 0 -> 4394 bytes ...eViewerContentProvider$ContentFilter.class | Bin 0 -> 445 bytes ...ViewerContentProvider$InvalidElement.class | Bin 0 -> 980 bytes .../WorkspaceViewerContentProvider.class | Bin 0 -> 11747 bytes .../editor/WorkspaceViewerLabelProvider.class | Bin 0 -> 3696 bytes .../mapper/AbstractWorkspaceMapper.class | Bin 0 -> 20592 bytes .../mapper/DefaultWorkspaceMapper.class | Bin 0 -> 3102 bytes .../mapper/PatternWorkspaceMapper.class | Bin 0 -> 3493 bytes .../mapping/mapper/WorkspaceMapper.class | Bin 0 -> 1035 bytes .../mapper/WorkspaceMapperResult.class | Bin 0 -> 1194 bytes .../isistan/flabot/mapping/mapping.genmodel | 18 + .../isistan/flabot/mapping/mappingmodel.ecore | 13 + .../mappingmodel/FilteredMappingCreator.class | Bin 0 -> 4721 bytes .../flabot/mapping/mappingmodel/Mapping.class | Bin 0 -> 567 bytes .../mappingmodel/MappingmodelFactory.class | Bin 0 -> 699 bytes .../mappingmodel/MappingmodelPackage.class | Bin 0 -> 1582 bytes .../mapping/mappingmodel/PatternMapping.class | Bin 0 -> 656 bytes .../RedefinitionAwareMappingCreator.class | Bin 0 -> 5483 bytes .../ScopeAwareMappingCreator.class | Bin 0 -> 7066 bytes .../impl/MappingmodelFactoryImpl.class | Bin 0 -> 1962 bytes .../impl/MappingmodelPackageImpl.class | Bin 0 -> 5141 bytes .../impl/PatternMappingImpl.class | Bin 0 -> 8685 bytes .../util/MappingmodelAdapterFactory$1.class | Bin 0 -> 1551 bytes .../util/MappingmodelAdapterFactory.class | Bin 0 -> 2097 bytes .../util/MappingmodelSwitch.class | Bin 0 -> 2629 bytes .../flabot/mapping/messages/Messages.class | Bin 0 -> 1373 bytes .../mapping/messages/messages.properties | 31 + org.isistan.flabot.mapping/build.properties | 7 + org.isistan.flabot.mapping/plugin.properties | 20 + org.isistan.flabot.mapping/plugin.xml | 45 + .../flabot/mapping/MappingManager.java | 44 + .../isistan/flabot/mapping/MappingPlugin.java | 88 + .../isistan/flabot/mapping/MappingType.java | 40 + .../mapping/builder/MappingBuilder.java | 9 + .../builder/PatternMappingBuilder.java | 125 + .../editor/ClientViewerContentProvider.java | 134 + .../editor/ClientViewerLabelProvider.java | 37 + .../editor/ComponentScopeEditionItem.java | 66 + .../flabot/mapping/editor/Container.java | 13 + .../editor/HierarchyContentFilter.java | 59 + .../mapping/editor/MappingEditionItem.java | 431 + .../ResponsibilityMappingEditionItem.java | 44 + ...lityMaterializationMappingEditionItem.java | 85 + .../mapping/editor/WorkspaceViewer.java | 88 + .../WorkspaceViewerContentProvider.java | 311 + .../editor/WorkspaceViewerLabelProvider.java | 112 + .../mapper/AbstractWorkspaceMapper.java | 409 + .../mapper/DefaultWorkspaceMapper.java | 84 + .../mapper/PatternWorkspaceMapper.java | 87 + .../mapping/mapper/WorkspaceMapper.java | 67 + .../mapping/mapper/WorkspaceMapperResult.java | 29 + .../isistan/flabot/mapping/mapping.genmodel | 18 + .../isistan/flabot/mapping/mappingmodel.ecore | 13 + .../mappingmodel/FilteredMappingCreator.java | 98 + .../flabot/mapping/mappingmodel/Mapping.java | 8 + .../mappingmodel/MappingmodelFactory.java | 46 + .../mappingmodel/MappingmodelPackage.java | 209 + .../mapping/mappingmodel/PatternMapping.java | 56 + .../RedefinitionAwareMappingCreator.java | 93 + .../ScopeAwareMappingCreator.java | 138 + .../impl/MappingmodelFactoryImpl.java | 76 + .../impl/MappingmodelPackageImpl.java | 251 + .../mappingmodel/impl/PatternMappingImpl.java | 459 + .../util/MappingmodelAdapterFactory.java | 137 + .../mappingmodel/util/MappingmodelSwitch.java | 152 + .../flabot/mapping/messages/Messages.java | 33 + .../mapping/messages/messages.properties | 31 + org.isistan.flabot.report/.classpath | 9 + org.isistan.flabot.report/.project | 28 + .../META-INF/MANIFEST.MF | 26 + .../flabot/report/FlabotReportGenerator.class | Bin 0 -> 351 bytes .../FlabotReportGeneratorException.class | Bin 0 -> 866 bytes .../isistan/flabot/report/ReportPlugin.class | Bin 0 -> 1203 bytes .../actions/GenerateReportAction$1.class | Bin 0 -> 3489 bytes .../report/actions/GenerateReportAction.class | Bin 0 -> 5230 bytes ...ocityReportGenerator$ArrayLengthUtil.class | Bin 0 -> 845 bytes .../VelocityReportGenerator$MappingUtil.class | Bin 0 -> 2853 bytes .../velocity/VelocityReportGenerator.class | Bin 0 -> 3524 bytes org.isistan.flabot.report/build.properties | 8 + .../icons/reportgenerator.gif | Bin 0 -> 1000 bytes .../lib/velocity-1.4.jar | Bin 0 -> 361173 bytes .../lib/velocity-dep-1.4.jar | Bin 0 -> 517761 bytes org.isistan.flabot.report/plugin.xml | 20 + .../resource/templates/defaultReport.html.vm | 107 + .../templates/defaultReport.html.vm.ori | 254 + .../flabot/report/FlabotReportGenerator.java | 31 + .../FlabotReportGeneratorException.java | 35 + .../isistan/flabot/report/ReportPlugin.java | 59 + .../report/actions/GenerateReportAction.java | 170 + .../velocity/VelocityReportGenerator.java | 144 + org.isistan.flabot.trace/.classpath | 7 + org.isistan.flabot.trace/.project | 28 + org.isistan.flabot.trace/META-INF/MANIFEST.MF | 25 + .../trace/TagTreeModel$1CloseListener.class | Bin 0 -> 969 bytes .../TagTreeModel$NumberKeyComparator.class | Bin 0 -> 1008 bytes .../trace/TagTreeModel$PropertyWrapper.class | Bin 0 -> 1153 bytes .../trace/TagTreeModel$TagWrapper.class | Bin 0 -> 2792 bytes .../flabot/trace/TagTreeModel$Wrapper.class | Bin 0 -> 222 bytes .../isistan/flabot/trace/TagTreeModel.class | Bin 0 -> 3652 bytes .../bin/org/isistan/flabot/trace/config.ecore | 29 + .../flabot/trace/config/ConfigFactory.class | Bin 0 -> 701 bytes .../flabot/trace/config/ConfigPackage.class | Bin 0 -> 1961 bytes .../isistan/flabot/trace/config/Context.class | Bin 0 -> 766 bytes .../isistan/flabot/trace/config/Filter.class | Bin 0 -> 341 bytes .../trace/config/TraceConfiguration.class | Bin 0 -> 458 bytes .../trace/config/impl/ConfigFactoryImpl.class | Bin 0 -> 2150 bytes .../trace/config/impl/ConfigPackageImpl.class | Bin 0 -> 6308 bytes .../trace/config/impl/ContextImpl.class | Bin 0 -> 8348 bytes .../config/impl/TraceConfigurationImpl.class | Bin 0 -> 5981 bytes .../config/util/ConfigAdapterFactory$1.class | Bin 0 -> 1895 bytes .../config/util/ConfigAdapterFactory.class | Bin 0 -> 2145 bytes .../trace/config/util/ConfigSwitch.class | Bin 0 -> 3063 bytes .../bin/org/isistan/flabot/trace/log.ecore | 33 + .../isistan/flabot/trace/log/LogContext.class | Bin 0 -> 431 bytes .../isistan/flabot/trace/log/LogFactory.class | Bin 0 -> 710 bytes .../isistan/flabot/trace/log/LogPackage.class | Bin 0 -> 2031 bytes .../org/isistan/flabot/trace/log/Tag.class | Bin 0 -> 767 bytes .../isistan/flabot/trace/log/TraceLog.class | Bin 0 -> 243 bytes .../log/impl/EStringToTagMapEntryImpl.class | Bin 0 -> 5292 bytes .../trace/log/impl/LogContextImpl.class | Bin 0 -> 6181 bytes .../trace/log/impl/LogFactoryImpl.class | Bin 0 -> 2749 bytes .../trace/log/impl/LogPackageImpl.class | Bin 0 -> 6513 bytes .../flabot/trace/log/impl/TagImpl.class | Bin 0 -> 7612 bytes .../flabot/trace/log/impl/TraceLogImpl.class | Bin 0 -> 4213 bytes .../log/tagquery/DefaultTagQueryUtil.class | Bin 0 -> 8330 bytes .../TagQueryUtil$MetadataConstants.class | Bin 0 -> 1174 bytes .../TagQueryUtil$ObjectConstants.class | Bin 0 -> 548 bytes .../TagQueryUtil$SnapshotConstants.class | Bin 0 -> 436 bytes ...TagQueryUtil$TraceGeneratorConstants.class | Bin 0 -> 1109 bytes .../trace/log/tagquery/TagQueryUtil.class | Bin 0 -> 2089 bytes .../trace/log/util/LogAdapterFactory$1.class | Bin 0 -> 1848 bytes .../trace/log/util/LogAdapterFactory.class | Bin 0 -> 2096 bytes .../flabot/trace/log/util/LogSwitch.class | Bin 0 -> 3105 bytes .../org/isistan/flabot/trace/trace.genmodel | 47 + org.isistan.flabot.trace/build.properties | 8 + org.isistan.flabot.trace/plugin.properties | 20 + org.isistan.flabot.trace/plugin.xml | 28 + .../isistan/flabot/trace/TagTreeModel.java | 132 + .../src/org/isistan/flabot/trace/config.ecore | 29 + .../flabot/trace/config/ConfigFactory.java | 55 + .../flabot/trace/config/ConfigPackage.java | 349 + .../isistan/flabot/trace/config/Context.java | 92 + .../isistan/flabot/trace/config/Filter.java | 27 + .../trace/config/TraceConfiguration.java | 55 + .../trace/config/impl/ConfigFactoryImpl.java | 91 + .../trace/config/impl/ConfigPackageImpl.java | 332 + .../flabot/trace/config/impl/ContextImpl.java | 399 + .../config/impl/TraceConfigurationImpl.java | 302 + .../config/util/ConfigAdapterFactory.java | 177 + .../trace/config/util/ConfigSwitch.java | 194 + .../src/org/isistan/flabot/trace/log.ecore | 33 + .../isistan/flabot/trace/log/LogContext.java | 57 + .../isistan/flabot/trace/log/LogFactory.java | 64 + .../isistan/flabot/trace/log/LogPackage.java | 411 + .../src/org/isistan/flabot/trace/log/Tag.java | 91 + .../isistan/flabot/trace/log/TraceLog.java | 30 + .../log/impl/EStringToTagMapEntryImpl.java | 306 + .../flabot/trace/log/impl/LogContextImpl.java | 308 + .../flabot/trace/log/impl/LogFactoryImpl.java | 116 + .../flabot/trace/log/impl/LogPackageImpl.java | 364 + .../flabot/trace/log/impl/TagImpl.java | 351 + .../flabot/trace/log/impl/TraceLogImpl.java | 213 + .../log/tagquery/DefaultTagQueryUtil.java | 263 + .../trace/log/tagquery/TagQueryUtil.java | 273 + .../trace/log/util/LogAdapterFactory.java | 177 + .../flabot/trace/log/util/LogSwitch.java | 198 + .../org/isistan/flabot/trace/trace.genmodel | 47 + org.isistan.flabot.util/.classpath | 8 + org.isistan.flabot.util/.project | 28 + org.isistan.flabot.util/META-INF/MANIFEST.MF | 38 + .../isistan/flabot/util/ObjectBoolean.class | Bin 0 -> 455 bytes ...SelectionDialog$ArrayContentProvider.class | Bin 0 -> 1280 bytes .../isistan/flabot/util/SelectionDialog.class | Bin 0 -> 7500 bytes .../org/isistan/flabot/util/TriState.class | Bin 0 -> 1317 bytes .../org/isistan/flabot/util/UtilPlugin.class | Bin 0 -> 1541 bytes .../custommap/AbstractCustomMap$1$1.class | Bin 0 -> 1539 bytes .../util/custommap/AbstractCustomMap$1.class | Bin 0 -> 1405 bytes .../custommap/AbstractCustomMap$2$1.class | Bin 0 -> 1541 bytes .../util/custommap/AbstractCustomMap$2.class | Bin 0 -> 1428 bytes .../AbstractCustomMap$SimpleEntry.class | Bin 0 -> 2613 bytes .../util/custommap/AbstractCustomMap.class | Bin 0 -> 7179 bytes .../util/custommap/CustomMap$Entry.class | Bin 0 -> 3108 bytes .../custommap/CustomMap$EntryIterator.class | Bin 0 -> 1341 bytes .../util/custommap/CustomMap$EntrySet.class | Bin 0 -> 1923 bytes .../custommap/CustomMap$HashIterator.class | Bin 0 -> 2482 bytes .../custommap/CustomMap$KeyIterator.class | Bin 0 -> 1164 bytes .../util/custommap/CustomMap$KeySet.class | Bin 0 -> 1566 bytes .../custommap/CustomMap$ValueIterator.class | Bin 0 -> 1192 bytes .../util/custommap/CustomMap$Values.class | Bin 0 -> 1294 bytes .../flabot/util/custommap/CustomMap.class | Bin 0 -> 14892 bytes .../util/custommap/DefaultHashProvider.class | Bin 0 -> 1027 bytes .../util/custommap/ExactHashProvider.class | Bin 0 -> 1028 bytes .../flabot/util/custommap/HashProvider.class | Bin 0 -> 310 bytes .../util/custommap/WeakCustomMap$Entry.class | Bin 0 -> 3697 bytes .../WeakCustomMap$EntryIterator.class | Bin 0 -> 1389 bytes .../custommap/WeakCustomMap$EntrySet.class | Bin 0 -> 3318 bytes .../WeakCustomMap$HashIterator.class | Bin 0 -> 2919 bytes .../custommap/WeakCustomMap$KeyIterator.class | Bin 0 -> 1212 bytes .../util/custommap/WeakCustomMap$KeySet.class | Bin 0 -> 2561 bytes .../WeakCustomMap$ValueIterator.class | Bin 0 -> 1300 bytes .../util/custommap/WeakCustomMap$Values.class | Bin 0 -> 2412 bytes .../flabot/util/custommap/WeakCustomMap.class | Bin 0 -> 12825 bytes .../util/emf/WorkaroundURIConverter.class | Bin 0 -> 1032 bytes .../org/isistan/flabot/util/enums/Enum.class | Bin 0 -> 4429 bytes .../isistan/flabot/util/enums/EnumInfo.class | Bin 0 -> 2418 bytes .../util/extension/ClassExtensionLoader.class | Bin 0 -> 2247 bytes .../util/extension/ClassInstantiator.class | Bin 0 -> 2392 bytes ...ConfigurationElementContainerHandler.class | Bin 0 -> 425 bytes .../ConfigurationElementHandler.class | Bin 0 -> 4061 bytes .../ConfigurationElementHandlerUtil.class | Bin 0 -> 4543 bytes .../util/extension/ExtensionElement.class | Bin 0 -> 193 bytes .../util/extension/ExtensionHandler.class | Bin 0 -> 1742 bytes .../extension/ExtensionPointHandler.class | Bin 0 -> 3005 bytes .../NoMatchingConstructorFoundException.class | Bin 0 -> 1017 bytes .../util/extension/PropertiesReader.class | Bin 0 -> 2875 bytes ...lectionDialog$ExtensionLabelProvider.class | Bin 0 -> 2450 bytes .../dialog/ExtensionSelectionDialog.class | Bin 0 -> 1214 bytes .../ConfigurationElementHandlerProvider.class | Bin 0 -> 421 bytes ...ultConfigurationElementLabelProvider.class | Bin 0 -> 2176 bytes .../util/javalog/DefaultJavalogUtil.class | Bin 0 -> 4492 bytes .../flabot/util/javalog/JavalogUtil.class | Bin 0 -> 829 bytes .../util/log/DefaultLogStatusCodes.class | Bin 0 -> 1081 bytes .../util/log/EclipsePlatformLogger.class | Bin 0 -> 7932 bytes .../flabot/util/log/LogStatusCodes.class | Bin 0 -> 236 bytes .../ArgumentsReplacer$Transition.class | Bin 0 -> 902 bytes .../util/messages/ArgumentsReplacer.class | Bin 0 -> 3943 bytes .../flabot/util/messages/MessagesUtil.class | Bin 0 -> 1849 bytes .../messages/SpecialCharacterConversion.class | Bin 0 -> 669 bytes ...pecialCharactersConverter$Transition.class | Bin 0 -> 956 bytes .../messages/SpecialCharactersConverter.class | Bin 0 -> 3734 bytes .../flabot/util/plugin/PluginUtils.class | Bin 0 -> 1780 bytes .../flabot/util/problems/DefaultMessage.class | Bin 0 -> 2578 bytes .../flabot/util/problems/Message.class | Bin 0 -> 397 bytes .../util/problems/MessageAccumulator.class | Bin 0 -> 3033 bytes .../util/problems/MessageSeverity.class | Bin 0 -> 627 bytes .../log/LoggerMessageAccumulator.class | Bin 0 -> 2889 bytes .../flabot/util/resource/PathUtil.class | Bin 0 -> 1853 bytes .../resource/ResourceSelectionDialog.class | Bin 0 -> 2803 bytes .../resource/filter/FilePatternFilter$1.class | Bin 0 -> 1388 bytes .../resource/filter/FilePatternFilter.class | Bin 0 -> 3589 bytes .../validator/CompositeValidator.class | Bin 0 -> 1383 bytes .../resource/validator/FileValidator.class | Bin 0 -> 1031 bytes .../util/resource/validator/OkValidator.class | Bin 0 -> 801 bytes .../validator/SelectionSizeValidator.class | Bin 0 -> 2019 bytes .../isistan/flabot/util/swt/SWTUtils.class | Bin 0 -> 916 bytes org.isistan.flabot.util/build.properties | 7 + org.isistan.flabot.util/lib/slf4j.jar | Bin 0 -> 3814 bytes .../isistan/flabot/util/ObjectBoolean.java | 20 + .../isistan/flabot/util/SelectionDialog.java | 279 + .../src/org/isistan/flabot/util/TriState.java | 76 + .../org/isistan/flabot/util/UtilPlugin.java | 81 + .../util/custommap/AbstractCustomMap.java | 727 + .../flabot/util/custommap/CustomMap.java | 1 + .../util/custommap/DefaultHashProvider.java | 11 + .../util/custommap/ExactHashProvider.java | 11 + .../flabot/util/custommap/HashProvider.java | 19 + .../flabot/util/custommap/WeakCustomMap.java | 992 + .../util/emf/WorkaroundURIConverter.java | 29 + .../org/isistan/flabot/util/enums/Enum.java | 107 + .../isistan/flabot/util/enums/EnumInfo.java | 25 + .../util/extension/ClassExtensionLoader.java | 53 + .../util/extension/ClassInstantiator.java | 46 + .../ConfigurationElementContainerHandler.java | 24 + .../ConfigurationElementHandler.java | 129 + .../ConfigurationElementHandlerUtil.java | 129 + .../util/extension/ExtensionElement.java | 9 + .../util/extension/ExtensionHandler.java | 46 + .../util/extension/ExtensionPointHandler.java | 99 + .../NoMatchingConstructorFoundException.java | 18 + .../util/extension/PropertiesReader.java | 96 + .../dialog/ExtensionSelectionDialog.java | 81 + .../ConfigurationElementHandlerProvider.java | 12 + ...aultConfigurationElementLabelProvider.java | 54 + .../util/javalog/DefaultJavalogUtil.java | 148 + .../flabot/util/javalog/JavalogUtil.java | 65 + .../util/log/DefaultLogStatusCodes.java | 43 + .../util/log/EclipsePlatformLogger.java | 448 + .../flabot/util/log/LogStatusCodes.java | 17 + .../util/messages/ArgumentsReplacer.java | 131 + .../flabot/util/messages/MessagesUtil.java | 36 + .../messages/SpecialCharacterConversion.java | 19 + .../messages/SpecialCharactersConverter.java | 109 + .../flabot/util/plugin/PluginUtils.java | 50 + .../flabot/util/problems/DefaultMessage.java | 59 + .../isistan/flabot/util/problems/Message.java | 10 + .../util/problems/MessageAccumulator.java | 49 + .../flabot/util/problems/MessageSeverity.java | 10 + .../log/LoggerMessageAccumulator.java | 48 + .../flabot/util/resource/PathUtil.java | 70 + .../resource/ResourceSelectionDialog.java | 65 + .../resource/filter/FilePatternFilter.java | 109 + .../validator/CompositeValidator.java | 31 + .../resource/validator/FileValidator.java | 29 + .../util/resource/validator/OkValidator.java | 22 + .../validator/SelectionSizeValidator.java | 53 + .../org/isistan/flabot/util/swt/SWTUtils.java | 35 + org.isistan.flabot/.classpath | 9 + org.isistan.flabot/.project | 30 + org.isistan.flabot/.settings/CVS/Entries | 3 + org.isistan.flabot/.settings/CVS/Repository | 1 + org.isistan.flabot/.settings/CVS/Root | 1 + .../org.eclipse.core.resources.prefs | 3 + .../.settings/org.eclipse.jdt.core.prefs | 57 + .../.settings/org.eclipse.jdt.ui.prefs | 5 + org.isistan.flabot/DescriptionFlabot.flabot | 5721 ++ org.isistan.flabot/G2Server.flabot | 9006 +++ org.isistan.flabot/META-INF/MANIFEST.MF | 102 + org.isistan.flabot/about.html | 30 + .../flabot/ExtensionPointConstants.class | Bin 0 -> 3684 bytes .../bin/org/isistan/flabot/FlabotPlugin.class | Bin 0 -> 1759 bytes .../org/isistan/flabot/componentmodel.ecore | 9 + .../bin/org/isistan/flabot/coremodel.ecore | 301 + .../coremodel/BehavioralFeatureModel.class | Bin 0 -> 203 bytes .../flabot/coremodel/ComponentModel.class | Bin 0 -> 1195 bytes .../flabot/coremodel/ComponentRole.class | Bin 0 -> 1142 bytes .../isistan/flabot/coremodel/Condition.class | Bin 0 -> 1279 bytes .../flabot/coremodel/ConditionEvent.class | Bin 0 -> 473 bytes .../flabot/coremodel/ConditionedStub.class | Bin 0 -> 492 bytes .../isistan/flabot/coremodel/CoreModel.class | Bin 0 -> 756 bytes .../flabot/coremodel/CoremodelFactory.class | Bin 0 -> 4852 bytes .../coremodel/CoremodelPackage$Literals.class | Bin 0 -> 15408 bytes .../flabot/coremodel/CoremodelPackage.class | Bin 0 -> 19528 bytes .../flabot/coremodel/DirectionArrowNode.class | Bin 0 -> 251 bytes .../flabot/coremodel/DynamicStub.class | Bin 0 -> 256 bytes .../flabot/coremodel/DynamicStubNode.class | Bin 0 -> 261 bytes .../flabot/coremodel/ExtensibleElement.class | Bin 0 -> 611 bytes .../coremodel/ExtensibleElementUtil.class | Bin 0 -> 2182 bytes .../org/isistan/flabot/coremodel/Family.class | Bin 0 -> 415 bytes .../flabot/coremodel/FamilyElement.class | Bin 0 -> 568 bytes .../flabot/coremodel/FeatureModel.class | Bin 0 -> 306 bytes .../flabot/coremodel/ForkCondition.class | Bin 0 -> 283 bytes .../isistan/flabot/coremodel/ForkNode.class | Bin 0 -> 914 bytes .../flabot/coremodel/InterfaceLink.class | Bin 0 -> 424 bytes .../flabot/coremodel/InterfaceModel.class | Bin 0 -> 661 bytes .../coremodel/InterfacePrologCode.class | Bin 0 -> 250 bytes .../isistan/flabot/coremodel/JoinNode.class | Bin 0 -> 846 bytes .../flabot/coremodel/NamedElementModel.class | Bin 0 -> 280 bytes .../org/isistan/flabot/coremodel/Note.class | Bin 0 -> 299 bytes .../flabot/coremodel/NoteElementModel.class | Bin 0 -> 238 bytes .../org/isistan/flabot/coremodel/Path.class | Bin 0 -> 609 bytes .../isistan/flabot/coremodel/PathNode.class | Bin 0 -> 724 bytes .../isistan/flabot/coremodel/PortModel.class | Bin 0 -> 809 bytes .../isistan/flabot/coremodel/Property.class | Bin 0 -> 284 bytes .../coremodel/PropertyElementModel.class | Bin 0 -> 251 bytes .../flabot/coremodel/Registrable.class | Bin 0 -> 406 bytes .../flabot/coremodel/Relationship$s.class | Bin 0 -> 218 bytes .../flabot/coremodel/Relationship.class | Bin 0 -> 784 bytes .../coremodel/RelationshipDirection.class | Bin 0 -> 2070 bytes .../flabot/coremodel/Responsibility.class | Bin 0 -> 526 bytes .../flabot/coremodel/ResponsibilityNode.class | Bin 0 -> 649 bytes .../coremodel/ResponsibilityRegistry.class | Bin 0 -> 825 bytes .../flabot/coremodel/SimplePathNode.class | Bin 0 -> 364 bytes .../isistan/flabot/coremodel/Stereotype.class | Bin 0 -> 184 bytes .../coremodel/StereotypedElementModel.class | Bin 0 -> 334 bytes .../isistan/flabot/coremodel/StubNode.class | Bin 0 -> 732 bytes .../isistan/flabot/coremodel/TimerNode.class | Bin 0 -> 659 bytes .../isistan/flabot/coremodel/UseCaseMap.class | Bin 0 -> 694 bytes .../ComponentUniqueNameConstraint.class | Bin 0 -> 2880 bytes .../ConditionEventGeneralConstraint.class | Bin 0 -> 2470 bytes ...ionMappingHasCorrectFamilyConstraint.class | Bin 0 -> 4109 bytes .../FamilyHasAllComponentConstraint.class | Bin 0 -> 5777 bytes ...ppedToPathGeneralConstraint$ListNode.class | Bin 0 -> 1033 bytes ...aceLinkMappedToPathGeneralConstraint.class | Bin 0 -> 7856 bytes ...InterfacesMustHaveSameNameConstraint.class | Bin 0 -> 2077 bytes .../ResponsibilityGeneralConstraint.class | Bin 0 -> 2720 bytes .../ResponsibilityNodeGeneralConstraint.class | Bin 0 -> 5871 bytes .../StubMustHaveFamilyConstraint.class | Bin 0 -> 2002 bytes .../UseCaseMapGeneralConstraint.class | Bin 0 -> 3070 bytes .../impl/BehavioralFeatureModelImpl.class | Bin 0 -> 801 bytes .../coremodel/impl/ComponentModelImpl.class | Bin 0 -> 12945 bytes .../coremodel/impl/ComponentRoleImpl.class | Bin 0 -> 10064 bytes .../impl/ComponentToMapMapEntryImpl.class | Bin 0 -> 5347 bytes .../coremodel/impl/ConditionEventImpl.class | Bin 0 -> 6539 bytes ...ionEventToConditionEventMapEntryImpl.class | Bin 0 -> 4528 bytes .../flabot/coremodel/impl/ConditionImpl.class | Bin 0 -> 7982 bytes .../coremodel/impl/ConditionedStubImpl.class | Bin 0 -> 4523 bytes .../flabot/coremodel/impl/CoreModelImpl.class | Bin 0 -> 10528 bytes .../coremodel/impl/CoremodelFactoryImpl.class | Bin 0 -> 24393 bytes .../impl/CoremodelPackageImpl$1.class | Bin 0 -> 905 bytes .../coremodel/impl/CoremodelPackageImpl.class | Bin 0 -> 37897 bytes .../impl/DirectionArrowNodeImpl.class | Bin 0 -> 783 bytes .../coremodel/impl/DynamicStubImpl.class | Bin 0 -> 2052 bytes .../coremodel/impl/DynamicStubNodeImpl.class | Bin 0 -> 2065 bytes .../impl/EStringToEObjectMapEntryImpl.class | Bin 0 -> 5600 bytes .../impl/ExtensibleElementImpl.class | Bin 0 -> 3668 bytes .../coremodel/impl/FamilyElementImpl.class | Bin 0 -> 4113 bytes .../flabot/coremodel/impl/FamilyImpl.class | Bin 0 -> 4511 bytes .../coremodel/impl/FeatureModelImpl.class | Bin 0 -> 5081 bytes .../coremodel/impl/ForkConditionImpl.class | Bin 0 -> 2617 bytes .../flabot/coremodel/impl/ForkNodeImpl.class | Bin 0 -> 7121 bytes .../coremodel/impl/InterfaceLinkImpl.class | Bin 0 -> 4278 bytes .../coremodel/impl/InterfaceModelImpl.class | Bin 0 -> 2575 bytes .../flabot/coremodel/impl/JoinNodeImpl.class | Bin 0 -> 6018 bytes .../impl/NamedElementModelImpl.class | Bin 0 -> 2787 bytes .../coremodel/impl/NoteElementModelImpl.class | Bin 0 -> 2022 bytes .../flabot/coremodel/impl/NoteImpl.class | Bin 0 -> 3173 bytes .../flabot/coremodel/impl/PathImpl.class | Bin 0 -> 3419 bytes .../flabot/coremodel/impl/PathNodeImpl.class | Bin 0 -> 8054 bytes .../flabot/coremodel/impl/PortModelImpl.class | Bin 0 -> 6292 bytes .../impl/PropertyElementModelImpl.class | Bin 0 -> 2668 bytes .../flabot/coremodel/impl/PropertyImpl.class | Bin 0 -> 2989 bytes .../coremodel/impl/RelationshipImpl.class | Bin 0 -> 7498 bytes .../coremodel/impl/ResponsibilityImpl.class | Bin 0 -> 6436 bytes .../impl/ResponsibilityNodeImpl.class | Bin 0 -> 8802 bytes .../impl/ResponsibilityRegistryImpl.class | Bin 0 -> 6855 bytes ...ponsibilityToRegistrableMapEntryImpl.class | Bin 0 -> 5683 bytes .../impl/RoleToMapMapEntryImpl.class | Bin 0 -> 5297 bytes .../coremodel/impl/SimplePathNodeImpl.class | Bin 0 -> 5442 bytes .../coremodel/impl/StereotypeImpl.class | Bin 0 -> 744 bytes .../impl/StereotypedElementModelImpl.class | Bin 0 -> 2644 bytes .../flabot/coremodel/impl/StubNodeImpl.class | Bin 0 -> 7260 bytes .../flabot/coremodel/impl/TimerNodeImpl.class | Bin 0 -> 4830 bytes .../coremodel/impl/UseCaseMapImpl.class | Bin 0 -> 7128 bytes .../util/CoremodelAdapterFactory$1.class | Bin 0 -> 11472 bytes .../util/CoremodelAdapterFactory.class | Bin 0 -> 5656 bytes .../coremodel/util/CoremodelSwitch.class | Bin 0 -> 17544 bytes .../coremodel/util/CoremodelValidator.class | Bin 0 -> 20640 bytes .../componenteditor/ComponentEditor$1.class | Bin 0 -> 1436 bytes .../componenteditor/ComponentEditor$2.class | Bin 0 -> 1338 bytes .../componenteditor/ComponentEditor$3.class | Bin 0 -> 1177 bytes .../componenteditor/ComponentEditor.class | Bin 0 -> 11248 bytes .../ComponentEditorContextMenuProvider.class | Bin 0 -> 3899 bytes .../ComponentEditorPaletteFactory$1.class | Bin 0 -> 1534 bytes .../ComponentEditorPaletteFactory$2.class | Bin 0 -> 1508 bytes .../ComponentEditorPaletteFactory$3.class | Bin 0 -> 1505 bytes .../ComponentEditorPaletteFactory$4.class | Bin 0 -> 1505 bytes .../ComponentEditorPaletteFactory$5.class | Bin 0 -> 1555 bytes .../ComponentEditorPaletteFactory$6.class | Bin 0 -> 1625 bytes .../ComponentEditorPaletteFactory$7.class | Bin 0 -> 1565 bytes .../ComponentEditorPaletteFactory$8.class | Bin 0 -> 1101 bytes .../ComponentEditorPaletteFactory$9.class | Bin 0 -> 1917 bytes .../ComponentEditorPaletteFactory.class | Bin 0 -> 6544 bytes .../AssignResponsibilitiesAction.class | Bin 0 -> 5371 bytes .../componenteditor/actions/CopyAction.class | Bin 0 -> 1953 bytes .../componenteditor/actions/CutAction.class | Bin 0 -> 3236 bytes .../actions/EditComponentAction$1.class | Bin 0 -> 1555 bytes .../actions/EditComponentAction.class | Bin 0 -> 5483 bytes .../actions/EditPropertiesAction.class | Bin 0 -> 4100 bytes .../actions/EditResponsibilitiesAction.class | Bin 0 -> 2901 bytes .../actions/EditStereotypesAction.class | Bin 0 -> 5280 bytes .../DeleteComponentDiagramCommand.class | Bin 0 -> 1969 bytes .../commands/model/AddPropertyCommand.class | Bin 0 -> 1531 bytes .../AddResponsibilityToComponentCommand.class | Bin 0 -> 1479 bytes .../AddResponsibilityToCoreCommand.class | Bin 0 -> 1560 bytes .../commands/model/AddStereotypeCommand.class | Bin 0 -> 1509 bytes .../model/DeleteComponentCommand.class | Bin 0 -> 3749 bytes .../model/DeleteInterfaceCommand.class | Bin 0 -> 1667 bytes .../commands/model/DeletePortCommand.class | Bin 0 -> 2671 bytes .../model/DeletePropertyCommand.class | Bin 0 -> 1545 bytes ...teResponsibilityFromComponentCommand.class | Bin 0 -> 1617 bytes .../model/DeleteStereotypeCommand.class | Bin 0 -> 2388 bytes .../model/ModifyNamedElementCommand.class | Bin 0 -> 1482 bytes .../model/ModifyPropertyCommand.class | Bin 0 -> 1517 bytes .../model/ModifyResponsibilityCommand.class | Bin 0 -> 2183 bytes .../model/ModifyStereotypeCommand.class | Bin 0 -> 1449 bytes .../ModifyStereotypeInElementCommand.class | Bin 0 -> 1356 bytes .../commands/visual/AddComponentCommand.class | Bin 0 -> 5085 bytes .../commands/visual/AddInterfaceCommand.class | Bin 0 -> 4568 bytes .../AddInterfaceConnectionCommand.class | Bin 0 -> 3545 bytes .../commands/visual/AddPortCommand.class | Bin 0 -> 5255 bytes .../AddRelationshipConnectionCommand.class | Bin 0 -> 3213 bytes .../ComponentSetConstraintCommand.class | Bin 0 -> 3066 bytes .../DeleteInterfaceConnectionCommand.class | Bin 0 -> 2515 bytes .../DeleteRelationshipConnectionCommand.class | Bin 0 -> 2135 bytes .../visual/DeleteVisualComponentCommand.class | Bin 0 -> 2573 bytes .../visual/DeleteVisualInterfaceCommand.class | Bin 0 -> 3127 bytes .../visual/DeleteVisualPortCommand.class | Bin 0 -> 2358 bytes .../visual/PortSetConstraintCommand.class | Bin 0 -> 4042 bytes .../dialogs/EditPropertyDialog$1.class | Bin 0 -> 957 bytes .../dialogs/EditPropertyDialog$2.class | Bin 0 -> 1179 bytes .../dialogs/EditPropertyDialog$3.class | Bin 0 -> 1180 bytes .../dialogs/EditPropertyDialog$4.class | Bin 0 -> 1049 bytes .../dialogs/EditPropertyDialog$5.class | Bin 0 -> 972 bytes .../dialogs/EditPropertyDialog.class | Bin 0 -> 6195 bytes .../dialogs/PropertyEditionItem$1.class | Bin 0 -> 1582 bytes .../dialogs/PropertyEditionItem$2.class | Bin 0 -> 1455 bytes .../dialogs/PropertyEditionItem$3.class | Bin 0 -> 1455 bytes .../dialogs/PropertyEditionItem$4.class | Bin 0 -> 1184 bytes .../dialogs/PropertyEditionItem$5.class | Bin 0 -> 2950 bytes .../dialogs/PropertyEditionItem$6.class | Bin 0 -> 1182 bytes .../dialogs/PropertyEditionItem$7.class | Bin 0 -> 2662 bytes .../dialogs/PropertyEditionItem.class | Bin 0 -> 11007 bytes .../dialogs/RenameDialog$1.class | Bin 0 -> 959 bytes .../dialogs/RenameDialog$2.class | Bin 0 -> 1237 bytes .../dialogs/RenameDialog$3.class | Bin 0 -> 1743 bytes .../dialogs/RenameDialog$4.class | Bin 0 -> 974 bytes .../dialogs/RenameDialog.class | Bin 0 -> 4449 bytes .../dialogs/ResponsibilitiesDialog$1.class | Bin 0 -> 966 bytes .../dialogs/ResponsibilitiesDialog$2.class | Bin 0 -> 1497 bytes .../dialogs/ResponsibilitiesDialog$3.class | Bin 0 -> 1373 bytes .../dialogs/ResponsibilitiesDialog$4.class | Bin 0 -> 1373 bytes .../dialogs/ResponsibilitiesDialog$5.class | Bin 0 -> 1783 bytes .../dialogs/ResponsibilitiesDialog$6.class | Bin 0 -> 1023 bytes .../dialogs/ResponsibilitiesDialog$7.class | Bin 0 -> 1020 bytes .../dialogs/ResponsibilitiesDialog$8.class | Bin 0 -> 1021 bytes .../dialogs/ResponsibilitiesDialog$9.class | Bin 0 -> 1023 bytes .../ResponsibilitiesDialog$Validator.class | Bin 0 -> 2648 bytes .../dialogs/ResponsibilitiesDialog.class | Bin 0 -> 12662 bytes .../dialogs/StereotypeDialog$1.class | Bin 0 -> 1462 bytes .../dialogs/StereotypeDialog$2.class | Bin 0 -> 1335 bytes .../dialogs/StereotypeDialog$3.class | Bin 0 -> 1067 bytes .../dialogs/StereotypeDialog$4.class | Bin 0 -> 2875 bytes .../dialogs/StereotypeDialog$5.class | Bin 0 -> 1065 bytes .../dialogs/StereotypeDialog$6.class | Bin 0 -> 2356 bytes .../dialogs/StereotypeDialog$7.class | Bin 0 -> 1149 bytes .../dialogs/StereotypeDialog$8.class | Bin 0 -> 1150 bytes .../dialogs/StereotypeDialog.class | Bin 0 -> 9851 bytes .../component/ComponentEditionItem.class | Bin 0 -> 1139 bytes .../ComponentVisualEditionItem.class | Bin 0 -> 1153 bytes .../MainComponentEditionItem$1.class | Bin 0 -> 1206 bytes .../MainComponentEditionItem.class | Bin 0 -> 6955 bytes .../PortAndInterfacesEditionItem$1.class | Bin 0 -> 1557 bytes .../PortAndInterfacesEditionItem$2.class | Bin 0 -> 1801 bytes .../PortAndInterfacesEditionItem$3.class | Bin 0 -> 3030 bytes .../PortAndInterfacesEditionItem$4.class | Bin 0 -> 1546 bytes .../PortAndInterfacesEditionItem$5.class | Bin 0 -> 1546 bytes .../PortAndInterfacesEditionItem$6.class | Bin 0 -> 3096 bytes .../PortAndInterfacesEditionItem.class | Bin 0 -> 10790 bytes .../VisualizationComponentEditionItem.class | Bin 0 -> 851 bytes .../ResponsibilityEditionItem.class | Bin 0 -> 1169 bytes .../MainResponsibilityEditionItem$1.class | Bin 0 -> 1720 bytes .../MainResponsibilityEditionItem$2.class | Bin 0 -> 1727 bytes .../MainResponsibilityEditionItem$3.class | Bin 0 -> 1762 bytes .../MainResponsibilityEditionItem.class | Bin 0 -> 7432 bytes .../ResponsibilityMaterialization.class | Bin 0 -> 368 bytes ...onsibilityMaterializationEditionItem.class | Bin 0 -> 1323 bytes .../ResponsibilityMaterializationImpl.class | Bin 0 -> 1151 bytes .../ComponentDiagramEditPart$1.class | Bin 0 -> 3727 bytes .../editparts/ComponentDiagramEditPart.class | Bin 0 -> 8336 bytes .../editparts/ComponentEditManager$1.class | Bin 0 -> 1123 bytes .../editparts/ComponentEditManager.class | Bin 0 -> 1360 bytes .../editparts/ComponentEditPart$1.class | Bin 0 -> 2831 bytes .../editparts/ComponentEditPart$2.class | Bin 0 -> 2611 bytes .../editparts/ComponentEditPart$3.class | Bin 0 -> 4247 bytes .../editparts/ComponentEditPart$4.class | Bin 0 -> 3269 bytes .../editparts/ComponentEditPart$5.class | Bin 0 -> 2385 bytes ...itPart$ComponentDragEditPartsTracker.class | Bin 0 -> 1709 bytes .../editparts/ComponentEditPart.class | Bin 0 -> 15780 bytes .../editparts/ComponentEditPartFactory.class | Bin 0 -> 3368 bytes .../ConnectionToConnectionEditPart$1.class | Bin 0 -> 2210 bytes .../ConnectionToConnectionEditPart.class | Bin 0 -> 4373 bytes .../InterfaceConnectionEditPart$1.class | Bin 0 -> 1826 bytes .../InterfaceConnectionEditPart$2.class | Bin 0 -> 2400 bytes .../InterfaceConnectionEditPart.class | Bin 0 -> 4172 bytes .../editparts/InterfaceEditPart$1.class | Bin 0 -> 2503 bytes .../editparts/InterfaceEditPart$2.class | Bin 0 -> 1114 bytes .../editparts/InterfaceEditPart.class | Bin 0 -> 4611 bytes .../editparts/PortEditPart$1.class | Bin 0 -> 2548 bytes .../editparts/PortEditPart$2.class | Bin 0 -> 2566 bytes .../editparts/PortEditPart$3.class | Bin 0 -> 2724 bytes ...itPart$ComponentDragEditPartsTracker.class | Bin 0 -> 1667 bytes .../editparts/PortEditPart.class | Bin 0 -> 7952 bytes .../ProvidedInterfaceEditPart$1.class | Bin 0 -> 2586 bytes .../editparts/ProvidedInterfaceEditPart.class | Bin 0 -> 2231 bytes .../RelationshipConnectionEditPart$1.class | Bin 0 -> 1850 bytes .../RelationshipConnectionEditPart$2.class | Bin 0 -> 2398 bytes .../RelationshipConnectionEditPart.class | Bin 0 -> 6581 bytes .../RequiredInterfaceEditPart$1.class | Bin 0 -> 2182 bytes .../editparts/RequiredInterfaceEditPart.class | Bin 0 -> 2480 bytes .../figures/ComponentBoxAnchor.class | Bin 0 -> 774 bytes .../figures/ComponentCellEditorLocator.class | Bin 0 -> 1951 bytes .../figures/ComponentFigure$1.class | Bin 0 -> 1371 bytes .../figures/ComponentFigure$2.class | Bin 0 -> 1362 bytes .../figures/ComponentFigure.class | Bin 0 -> 7329 bytes .../ConnectionToConnectionAnchor.class | Bin 0 -> 1747 bytes .../figures/InterfaceFigure.class | Bin 0 -> 1760 bytes .../figures/PortFigure$1.class | Bin 0 -> 1264 bytes .../componenteditor/figures/PortFigure.class | Bin 0 -> 3233 bytes .../figures/ProvidedInterfaceFigure.class | Bin 0 -> 2187 bytes .../figures/RequiredInterfaceFigure.class | Bin 0 -> 2205 bytes .../properties/ComponentDiagramProperty.class | Bin 0 -> 2724 bytes .../properties/ComponentPropertySource.class | Bin 0 -> 3800 bytes .../properties/DirectionProperty.class | Bin 0 -> 3501 bytes .../RelationshipConnectionProperty.class | Bin 0 -> 2914 bytes .../ResponsibilityPropertySource.class | Bin 0 -> 2990 bytes .../StereotypedPropertySource.class | Bin 0 -> 3325 bytes .../componentmodel/ComponentDiagram.class | Bin 0 -> 203 bytes .../ComponentmodelFactory.class | Bin 0 -> 710 bytes .../ComponentmodelPackage.class | Bin 0 -> 1531 bytes .../impl/ComponentDiagramImpl.class | Bin 0 -> 5560 bytes .../impl/ComponentmodelFactoryImpl.class | Bin 0 -> 1888 bytes .../impl/ComponentmodelPackageImpl.class | Bin 0 -> 4385 bytes .../util/ComponentmodelAdapterFactory$1.class | Bin 0 -> 2045 bytes .../util/ComponentmodelAdapterFactory.class | Bin 0 -> 2236 bytes .../util/ComponentmodelSwitch.class | Bin 0 -> 2843 bytes .../flabot/edit/editor/ActionLoader.class | Bin 0 -> 6303 bytes .../flabot/edit/editor/CommandExecutor.class | Bin 0 -> 208 bytes .../edit/editor/FlabotCommandStack$1.class | Bin 0 -> 947 bytes .../edit/editor/FlabotCommandStack$2.class | Bin 0 -> 739 bytes .../edit/editor/FlabotCommandStack$3.class | Bin 0 -> 739 bytes .../edit/editor/FlabotCommandStack.class | Bin 0 -> 4774 bytes .../edit/editor/FlabotGraphicalEditor.class | Bin 0 -> 6239 bytes .../edit/editor/TabItemComparator.class | Bin 0 -> 1604 bytes .../editor/actions/AddNewFolderAction.class | Bin 0 -> 4158 bytes .../edit/editor/actions/ArrangeAction.class | Bin 0 -> 3780 bytes .../editor/actions/CloseDiagramAction.class | Bin 0 -> 2079 bytes .../edit/editor/actions/CopyAction.class | Bin 0 -> 5519 bytes .../CreateComponentDiagramAction.class | Bin 0 -> 3854 bytes .../actions/CreateUCMDiagramAction.class | Bin 0 -> 4138 bytes .../editor/actions/DeleteOutlineAction.class | Bin 0 -> 3914 bytes .../actions/EditVisualizationAction.class | Bin 0 -> 3498 bytes .../actions/EditorSnapGeometryAction.class | Bin 0 -> 1445 bytes .../actions/EditorToggleGridAction.class | Bin 0 -> 1773 bytes .../editor/actions/ExportDiagramAction.class | Bin 0 -> 1855 bytes .../edit/editor/actions/PasteAction.class | Bin 0 -> 4189 bytes .../editor/actions/PrintDiagramAction.class | Bin 0 -> 3159 bytes .../actions/RunConsistencyCheckAction.class | Bin 0 -> 5563 bytes .../actions/RunEventManagerAction.class | Bin 0 -> 3046 bytes .../actions/RunFamilyManagerAction.class | Bin 0 -> 3177 bytes .../edit/editor/actions/SelectAllAction.class | Bin 0 -> 2293 bytes .../editor/commands/AddDiagramFolder.class | Bin 0 -> 1910 bytes .../commands/AddDiagramToFolderCommand.class | Bin 0 -> 1514 bytes .../edit/editor/commands/AddNoteCommand.class | Bin 0 -> 2656 bytes .../commands/AddNoteConnectionCommand.class | Bin 0 -> 2639 bytes .../edit/editor/commands/ArrangeCommand.class | Bin 0 -> 3108 bytes .../CreateComponentEditorCommand.class | Bin 0 -> 2004 bytes .../commands/CreateUCMEditorCommand.class | Bin 0 -> 2259 bytes .../commands/DeleteDiagramCommand.class | Bin 0 -> 1800 bytes .../editor/commands/DeleteFolderCommand.class | Bin 0 -> 2751 bytes .../editor/commands/DeleteNoteCommand.class | Bin 0 -> 1827 bytes .../DeleteNoteConnectionCommand.class | Bin 0 -> 2000 bytes .../editor/commands/EditNoteCommand.class | Bin 0 -> 1359 bytes .../commands/EditVisualizationCommand.class | Bin 0 -> 3855 bytes .../EditorActivatorCommandWrapper.class | Bin 0 -> 2887 bytes .../commands/NoteSetConstraintCommand.class | Bin 0 -> 2859 bytes .../commands/NotifierCommandWrapper.class | Bin 0 -> 5613 bytes .../commands/SetDetailLevelCommand.class | Bin 0 -> 1352 bytes .../bendpoints/BendpointCommand.class | Bin 0 -> 1933 bytes .../bendpoints/CreateBendpointCommand.class | Bin 0 -> 1864 bytes .../bendpoints/DeleteBendpointCommand.class | Bin 0 -> 1225 bytes .../bendpoints/MoveBendpointCommand.class | Bin 0 -> 2550 bytes .../paste/AddComponentPasteCommand.class | Bin 0 -> 6384 bytes .../AddInterfaceConnectionPasteCommand.class | Bin 0 -> 4486 bytes .../paste/AddInterfacePasteCommand.class | Bin 0 -> 5115 bytes .../paste/AddNoteConnectionPasteCommand.class | Bin 0 -> 3942 bytes .../commands/paste/AddNotePasteCommand.class | Bin 0 -> 5535 bytes .../commands/paste/AddPortPasteCommand.class | Bin 0 -> 5429 bytes ...ddRelationshipConnectionPasteCommand.class | Bin 0 -> 4666 bytes .../paste/AddRoleComponentPasteCommand.class | Bin 0 -> 5990 bytes .../RetargetConnectionPasteCommand.class | Bin 0 -> 401 bytes .../paste/RetargetParentPasteCommand.class | Bin 0 -> 614 bytes ...ionDialog$ComponentRoleLabelProvider.class | Bin 0 -> 2068 bytes .../ComponentRoleSelectionDialog.class | Bin 0 -> 7602 bytes ...ExtendedElementListSelectionDialog$1.class | Bin 0 -> 1165 bytes .../ExtendedElementListSelectionDialog.class | Bin 0 -> 2065 bytes ...onDialog$ResponsibilityLabelProvider.class | Bin 0 -> 2413 bytes .../ResponsibilitySelectionDialog.class | Bin 0 -> 7717 bytes .../dialogs/StandardEditionDialog$1.class | Bin 0 -> 898 bytes .../dialogs/StandardEditionDialog$2.class | Bin 0 -> 920 bytes .../dialogs/StandardEditionDialog$3.class | Bin 0 -> 920 bytes .../dialogs/StandardEditionDialog$4.class | Bin 0 -> 930 bytes .../dialogs/StandardEditionDialog$5.class | Bin 0 -> 1476 bytes .../dialogs/StandardEditionDialog.class | Bin 0 -> 11244 bytes .../ConsistencyCheckVisualizer$1.class | Bin 0 -> 1203 bytes .../ConsistencyCheckVisualizer$10.class | Bin 0 -> 1924 bytes .../ConsistencyCheckVisualizer$11.class | Bin 0 -> 1795 bytes .../ConsistencyCheckVisualizer$12.class | Bin 0 -> 1453 bytes .../ConsistencyCheckVisualizer$13.class | Bin 0 -> 1451 bytes .../ConsistencyCheckVisualizer$2.class | Bin 0 -> 1079 bytes .../ConsistencyCheckVisualizer$3.class | Bin 0 -> 2041 bytes .../ConsistencyCheckVisualizer$4.class | Bin 0 -> 3043 bytes .../ConsistencyCheckVisualizer$5.class | Bin 0 -> 2656 bytes .../ConsistencyCheckVisualizer$6.class | Bin 0 -> 2658 bytes .../ConsistencyCheckVisualizer$7.class | Bin 0 -> 2785 bytes .../ConsistencyCheckVisualizer$8.class | Bin 0 -> 1451 bytes .../ConsistencyCheckVisualizer$9.class | Bin 0 -> 1441 bytes .../ConsistencyCheckVisualizer.class | Bin 0 -> 12111 bytes .../ConsistencyContentProvider.class | Bin 0 -> 1828 bytes .../ConsistencyDetailsDialog.class | Bin 0 -> 1073 bytes .../ConsistencyLabelProvider.class | Bin 0 -> 551 bytes .../EditVisualizationTabItem$1.class | Bin 0 -> 2421 bytes .../EditVisualizationTabItem$10.class | Bin 0 -> 1519 bytes .../EditVisualizationTabItem$2.class | Bin 0 -> 2382 bytes .../EditVisualizationTabItem$3.class | Bin 0 -> 1218 bytes .../EditVisualizationTabItem$4.class | Bin 0 -> 1218 bytes .../EditVisualizationTabItem$5.class | Bin 0 -> 1218 bytes .../EditVisualizationTabItem$6.class | Bin 0 -> 1218 bytes .../EditVisualizationTabItem$7.class | Bin 0 -> 1218 bytes .../EditVisualizationTabItem$8.class | Bin 0 -> 1606 bytes .../EditVisualizationTabItem$9.class | Bin 0 -> 1517 bytes .../EditVisualizationTabItem.class | Bin 0 -> 13649 bytes .../editor/editparts/ConnectedEditPart.class | Bin 0 -> 2422 bytes ...ConnectionEditPart$ConnectionAdapter.class | Bin 0 -> 1627 bytes .../editor/editparts/ConnectionEditPart.class | Bin 0 -> 6159 bytes .../editor/editparts/ContainerEditPart.class | Bin 0 -> 6513 bytes .../editparts/NoteCellEditorLocator.class | Bin 0 -> 1977 bytes .../editparts/NoteConnectionEditPart$1.class | Bin 0 -> 1741 bytes .../editparts/NoteConnectionEditPart$2.class | Bin 0 -> 1310 bytes .../editparts/NoteConnectionEditPart.class | Bin 0 -> 1388 bytes .../editor/editparts/NoteEditManager.class | Bin 0 -> 5280 bytes .../editor/editparts/NoteEditPart$1.class | Bin 0 -> 2155 bytes .../editor/editparts/NoteEditPart$2.class | Bin 0 -> 2097 bytes .../editor/editparts/NoteEditPart$3.class | Bin 0 -> 2148 bytes .../editor/editparts/NoteEditPart$4.class | Bin 0 -> 2286 bytes .../edit/editor/editparts/NoteEditPart.class | Bin 0 -> 5680 bytes .../ConnectionBendpointEditPolicy.class | Bin 0 -> 10039 bytes .../editor/figures/BendpointLocator.class | Bin 0 -> 1344 bytes .../editor/figures/BentCornerFigure.class | Bin 0 -> 2151 bytes .../edit/editor/figures/CloneableShape.class | Bin 0 -> 200 bytes .../edit/editor/figures/ComponentFigure.class | Bin 0 -> 5460 bytes .../editor/figures/DirectEditableFigure.class | Bin 0 -> 277 bytes .../figures/FixedConnectionAnchor.class | Bin 0 -> 2015 bytes .../edit/editor/figures/LineConnection.class | Bin 0 -> 1012 bytes .../edit/editor/figures/NoteFigure.class | Bin 0 -> 2391 bytes .../properties/AbstractPropertySource.class | Bin 0 -> 1573 bytes .../properties/DimensionPropertySource.class | Bin 0 -> 3774 bytes .../properties/LocationPropertySource.class | Bin 0 -> 3266 bytes .../NamedElementPropertySource.class | Bin 0 -> 2089 bytes .../properties/VisualPropertySource.class | Bin 0 -> 2426 bytes .../flabot/edit/editormodel/Color.class | Bin 0 -> 349 bytes .../editormodel/ConnectionBendpoint.class | Bin 0 -> 574 bytes .../editormodel/ConnectionVisualModel.class | Bin 0 -> 638 bytes .../flabot/edit/editormodel/Diagram.class | Bin 0 -> 711 bytes .../flabot/edit/editormodel/Dimension.class | Bin 0 -> 331 bytes .../edit/editormodel/EditormodelFactory.class | Bin 0 -> 1929 bytes .../edit/editormodel/EditormodelPackage.class | Bin 0 -> 8988 bytes .../edit/editormodel/FlabotFileModel.class | Bin 0 -> 844 bytes .../flabot/edit/editormodel/Folder.class | Bin 0 -> 634 bytes .../edit/editormodel/NodeVisualModel.class | Bin 0 -> 473 bytes .../flabot/edit/editormodel/Point.class | Bin 0 -> 301 bytes .../flabot/edit/editormodel/Util.class | Bin 0 -> 4237 bytes .../edit/editormodel/VisualDiagramJump.class | Bin 0 -> 677 bytes .../flabot/edit/editormodel/VisualModel.class | Bin 0 -> 1478 bytes .../edit/editormodel/impl/ColorImpl.class | Bin 0 -> 4247 bytes .../impl/ConnectionBendpointImpl.class | Bin 0 -> 6668 bytes .../impl/ConnectionVisualModelImpl.class | Bin 0 -> 12707 bytes .../edit/editormodel/impl/DiagramImpl.class | Bin 0 -> 8832 bytes .../edit/editormodel/impl/DimensionImpl.class | Bin 0 -> 3850 bytes .../impl/EStringToEObjectMapEntryImpl.class | Bin 0 -> 6132 bytes .../impl/EditormodelFactoryImpl.class | Bin 0 -> 8431 bytes .../impl/EditormodelPackageImpl$1.class | Bin 0 -> 961 bytes .../impl/EditormodelPackageImpl.class | Bin 0 -> 19041 bytes .../impl/FlabotFileModelImpl.class | Bin 0 -> 10941 bytes .../edit/editormodel/impl/FolderImpl.class | Bin 0 -> 7714 bytes .../impl/NodeVisualModelImpl.class | Bin 0 -> 9892 bytes .../edit/editormodel/impl/PointImpl.class | Bin 0 -> 3751 bytes .../impl/VisualDiagramJumpImpl.class | Bin 0 -> 11473 bytes .../editormodel/impl/VisualModelImpl.class | Bin 0 -> 14484 bytes .../util/EditormodelAdapterFactory$1.class | Bin 0 -> 4855 bytes .../util/EditormodelAdapterFactory.class | Bin 0 -> 3147 bytes .../editormodel/util/EditormodelSwitch.class | Bin 0 -> 6895 bytes .../util/EditormodelValidator.class | Bin 0 -> 7450 bytes .../DependenciesPropertiesPage$1$1.class | Bin 0 -> 1460 bytes .../DependenciesPropertiesPage$1.class | Bin 0 -> 5515 bytes .../DependenciesPropertiesPage$2.class | Bin 0 -> 2083 bytes .../DependenciesPropertiesPage$3.class | Bin 0 -> 1856 bytes ...iesPage$ImportedFilesContentProvider.class | Bin 0 -> 1577 bytes ...rtiesPage$ImportedFilesLabelProvider.class | Bin 0 -> 1187 bytes .../DependenciesPropertiesPage.class | Bin 0 -> 8364 bytes .../multipage/EditorPerspectiveFactory.class | Bin 0 -> 1744 bytes ...ionsPropertiesPage$ExtensionsBlock$1.class | Bin 0 -> 1697 bytes ...ionsPropertiesPage$ExtensionsBlock$2.class | Bin 0 -> 1525 bytes ...ionsPropertiesPage$ExtensionsBlock$3.class | Bin 0 -> 1525 bytes ...xtensionsBlock$MasterContentProvider.class | Bin 0 -> 1395 bytes ...$ExtensionsBlock$MasterLabelProvider.class | Bin 0 -> 1324 bytes ...nsionsPropertiesPage$ExtensionsBlock.class | Bin 0 -> 7028 bytes .../multipage/ExtensionsPropertiesPage.class | Bin 0 -> 2235 bytes .../multipage/FlabotFileDetailsPage.class | Bin 0 -> 1578 bytes .../edit/multipage/FlabotFormPage.class | Bin 0 -> 989 bytes .../FlabotMultiPageContextMenuProvider.class | Bin 0 -> 1866 bytes ...botMultiPageEditor$FlabotOutlinePage.class | Bin 0 -> 6201 bytes ...botMultiPageEditor$ResourceTracker$1.class | Bin 0 -> 2654 bytes ...botMultiPageEditor$ResourceTracker$2.class | Bin 0 -> 1159 bytes ...botMultiPageEditor$ResourceTracker$3.class | Bin 0 -> 1398 bytes ...botMultiPageEditor$ResourceTracker$4.class | Bin 0 -> 1393 bytes ...labotMultiPageEditor$ResourceTracker.class | Bin 0 -> 4074 bytes .../multipage/FlabotMultiPageEditor.class | Bin 0 -> 19072 bytes .../FlabotMultiPageEditorContributor.class | Bin 0 -> 4450 bytes ...esEditor$FormEditorSelectionProvider.class | Bin 0 -> 2147 bytes .../FlabotMultipagePropertiesEditor.class | Bin 0 -> 4903 bytes .../multipage/OverviewPropertiesPage$1.class | Bin 0 -> 1139 bytes .../multipage/OverviewPropertiesPage$2.class | Bin 0 -> 1529 bytes .../multipage/OverviewPropertiesPage$3.class | Bin 0 -> 1526 bytes .../multipage/OverviewPropertiesPage$4.class | Bin 0 -> 1530 bytes .../multipage/OverviewPropertiesPage$5.class | Bin 0 -> 1139 bytes .../multipage/OverviewPropertiesPage$6.class | Bin 0 -> 949 bytes .../multipage/OverviewPropertiesPage.class | Bin 0 -> 17948 bytes .../UnsettableDirtyStateEditor.class | Bin 0 -> 194 bytes .../AbstractTransferDragSourceListener.class | Bin 0 -> 1529 bytes ...AbstractTransferDropTargetListener$1.class | Bin 0 -> 1251 bytes .../AbstractTransferDropTargetListener.class | Bin 0 -> 8933 bytes .../multipage/dnd/ComponentDragListener.class | Bin 0 -> 2156 bytes .../multipage/dnd/ComponentDropFactory.class | Bin 0 -> 5675 bytes .../multipage/dnd/ComponentDropListener.class | Bin 0 -> 2891 bytes .../multipage/dnd/DiagramDragListener.class | Bin 0 -> 2113 bytes .../multipage/dnd/DiagramDropListener.class | Bin 0 -> 2605 bytes .../edit/multipage/dnd/DiagramFactory.class | Bin 0 -> 744 bytes .../dnd/DropComponentRoleFactory.class | Bin 0 -> 1916 bytes .../multipage/dnd/InterfaceDragListener.class | Bin 0 -> 2579 bytes .../multipage/dnd/InterfaceDropFactory.class | Bin 0 -> 4746 bytes .../multipage/dnd/InterfaceDropListener.class | Bin 0 -> 3075 bytes .../multipage/dnd/NativeDropRequest.class | Bin 0 -> 723 bytes .../edit/multipage/dnd/PortDragListener.class | Bin 0 -> 2410 bytes .../edit/multipage/dnd/PortDropFactory.class | Bin 0 -> 5342 bytes .../edit/multipage/dnd/PortDropListener.class | Bin 0 -> 2900 bytes .../outline/ComponentRoleTreeEditPart$1.class | Bin 0 -> 1522 bytes .../outline/ComponentRoleTreeEditPart.class | Bin 0 -> 2328 bytes .../outline/ComponentTreeEditPart$1.class | Bin 0 -> 1364 bytes .../edit/outline/ComponentTreeEditPart.class | Bin 0 -> 4210 bytes .../edit/outline/CoreModelTreeEditPart.class | Bin 0 -> 2553 bytes .../outline/DiagramFolderTreeEditPart$1.class | Bin 0 -> 2340 bytes .../outline/DiagramFolderTreeEditPart.class | Bin 0 -> 6284 bytes .../edit/outline/DiagramTreeEditPart$1.class | Bin 0 -> 1476 bytes .../edit/outline/DiagramTreeEditPart.class | Bin 0 -> 4106 bytes .../edit/outline/FlabotFileTreeEditPart.class | Bin 0 -> 3252 bytes .../outline/FlabotModelTreeEditPart.class | Bin 0 -> 2365 bytes .../outline/FlabotTreeEditPartFactory.class | Bin 0 -> 3368 bytes .../outline/InterfaceLinkTreeEditPart.class | Bin 0 -> 2528 bytes .../outline/InterfaceTreeEditPart$1.class | Bin 0 -> 1362 bytes .../edit/outline/InterfaceTreeEditPart.class | Bin 0 -> 3566 bytes .../edit/outline/PortTreeEditPart$1.class | Bin 0 -> 1322 bytes .../edit/outline/PortTreeEditPart.class | Bin 0 -> 3479 bytes .../outline/RelationshipTreeEditPart.class | Bin 0 -> 2652 bytes .../ResponsibilityTreeEditPart$1.class | Bin 0 -> 1403 bytes .../outline/ResponsibilityTreeEditPart.class | Bin 0 -> 2988 bytes .../edit/outline/StartPointEditPart.class | Bin 0 -> 1829 bytes .../outline/StereotypeTreeEditPart$1.class | Bin 0 -> 1422 bytes .../edit/outline/StereotypeTreeEditPart.class | Bin 0 -> 2280 bytes .../outline/UseCaseMapTreeEditPart$1.class | Bin 0 -> 1350 bytes .../edit/outline/UseCaseMapTreeEditPart.class | Bin 0 -> 3975 bytes .../ucmeditor/ComponentCreationTool.class | Bin 0 -> 2829 bytes .../edit/ucmeditor/PathCreationTool.class | Bin 0 -> 1226 bytes .../flabot/edit/ucmeditor/UCMEditor$1.class | Bin 0 -> 1370 bytes .../flabot/edit/ucmeditor/UCMEditor$2.class | Bin 0 -> 1272 bytes .../flabot/edit/ucmeditor/UCMEditor$3.class | Bin 0 -> 1111 bytes .../flabot/edit/ucmeditor/UCMEditor.class | Bin 0 -> 13638 bytes .../UCMEditorContextMenuProvider.class | Bin 0 -> 6916 bytes .../ucmeditor/UCMEditorPaletteFactory$1.class | Bin 0 -> 1603 bytes .../ucmeditor/UCMEditorPaletteFactory$2.class | Bin 0 -> 1603 bytes .../ucmeditor/UCMEditorPaletteFactory$3.class | Bin 0 -> 1603 bytes .../ucmeditor/UCMEditorPaletteFactory$4.class | Bin 0 -> 1603 bytes .../ucmeditor/UCMEditorPaletteFactory$5.class | Bin 0 -> 1603 bytes .../ucmeditor/UCMEditorPaletteFactory$6.class | Bin 0 -> 1148 bytes .../ucmeditor/UCMEditorPaletteFactory$7.class | Bin 0 -> 1520 bytes .../ucmeditor/UCMEditorPaletteFactory$8.class | Bin 0 -> 1056 bytes .../ucmeditor/UCMEditorPaletteFactory$9.class | Bin 0 -> 1857 bytes .../ucmeditor/UCMEditorPaletteFactory.class | Bin 0 -> 6731 bytes .../edit/ucmeditor/actions/CopyAction.class | Bin 0 -> 1692 bytes .../edit/ucmeditor/actions/CutAction.class | Bin 0 -> 3288 bytes .../actions/EditComponentAction.class | Bin 0 -> 3944 bytes .../actions/EditDynamicStubAction.class | Bin 0 -> 3863 bytes .../actions/EditLineVisualizationAction.class | Bin 0 -> 4911 bytes .../ucmeditor/actions/EditOrForkAction.class | Bin 0 -> 5057 bytes .../EditResponsibilityNodeAction$1.class | Bin 0 -> 1554 bytes .../EditResponsibilityNodeAction.class | Bin 0 -> 5975 bytes .../ucmeditor/actions/EditStubAction.class | Bin 0 -> 4872 bytes .../ucmeditor/actions/EditTimerAction.class | Bin 0 -> 4328 bytes .../actions/InsertDirectionArrowAction.class | Bin 0 -> 4161 bytes .../actions/InsertDynamicStubAction.class | Bin 0 -> 6032 bytes .../ucmeditor/actions/InsertForkAction.class | Bin 0 -> 3778 bytes .../ucmeditor/actions/InsertJoinAction.class | Bin 0 -> 3767 bytes .../ucmeditor/actions/InsertNodeAction.class | Bin 0 -> 3862 bytes .../actions/InsertResponsibilityAction.class | Bin 0 -> 7046 bytes .../ucmeditor/actions/InsertStubAction.class | Bin 0 -> 5649 bytes .../ucmeditor/actions/InsertTimerAction.class | Bin 0 -> 6237 bytes .../ucmeditor/actions/JoinPathsAction.class | Bin 0 -> 5944 bytes .../ucmeditor/actions/MergePathsAction.class | Bin 0 -> 5057 bytes .../actions/RotateForkJoinAction.class | Bin 0 -> 3234 bytes .../actions/RotatePathNodeAction.class | Bin 0 -> 3349 bytes ...howHideAllConditionDependeciesAction.class | Bin 0 -> 3607 bytes .../commands/DeleteUCMDiagramCommand.class | Bin 0 -> 2669 bytes ...atedConditionToConditionEventCommand.class | Bin 0 -> 1600 bytes .../AddAssociatedNodeToFamilyCommand.class | Bin 0 -> 1526 bytes .../AddConditionEventToCoreModelCommand.class | Bin 0 -> 1686 bytes .../AddConditionToResponsibilityCommand.class | Bin 0 -> 2452 bytes ...dConditionedStubToDynamicStubCommand.class | Bin 0 -> 1934 bytes .../model/AddFamilyToCoreModelCommand.class | Bin 0 -> 1601 bytes ...edConditionFromConditionEventCommand.class | Bin 0 -> 1620 bytes ...eleteAssociatedNodeFromFamilyCommand.class | Bin 0 -> 1546 bytes .../model/DeleteComponentRoleCommand.class | Bin 0 -> 3092 bytes ...teConditionEventFromCoreModelCommand.class | Bin 0 -> 3642 bytes .../DeleteConditionFromFamilyCommand.class | Bin 0 -> 3172 bytes ...teConditionFromResponsibilityCommand.class | Bin 0 -> 2474 bytes ...onditionedStubFromDynamicStubCommand.class | Bin 0 -> 1956 bytes .../commands/model/DeleteFamilyCommand.class | Bin 0 -> 3369 bytes .../model/DeleteFamilyElementCommand.class | Bin 0 -> 1486 bytes .../commands/model/DeleteMapCommand.class | Bin 0 -> 5072 bytes .../commands/model/DeletePathCommand.class | Bin 0 -> 1435 bytes .../model/DeleteResponsibilityCommand.class | Bin 0 -> 2189 bytes ...esponsibilityNodeAssociationsCommand.class | Bin 0 -> 3392 bytes .../DeleteStubFromCoreModelCommand.class | Bin 0 -> 1694 bytes .../model/ModifyComponentCommand.class | Bin 0 -> 1992 bytes .../model/ModifyConditionCommand.class | Bin 0 -> 2466 bytes .../model/ModifyConditionEventCommand.class | Bin 0 -> 2098 bytes .../model/ModifyConditionedStub.class | Bin 0 -> 2280 bytes .../model/ModifyDynamicStubCommand.class | Bin 0 -> 1856 bytes .../commands/model/ModifyFamilyCommand.class | Bin 0 -> 2150 bytes .../model/ModifyForkConditionCommand.class | Bin 0 -> 1669 bytes ...odifyPrologCodeConditionEventCommand.class | Bin 0 -> 1493 bytes .../commands/model/ModifyStubCommand.class | Bin 0 -> 2226 bytes .../commands/model/ModifyTimerCommand.class | Bin 0 -> 2312 bytes .../ModifyUseCaseMapLevelInfoCommand.class | Bin 0 -> 2473 bytes .../commands/visual/AddComponentCommand.class | Bin 0 -> 3584 bytes .../ComponentSetConstraintCommand.class | Bin 0 -> 4129 bytes .../visual/DeleteDynamicStubCommand.class | Bin 0 -> 1824 bytes .../visual/DeleteEndPointCommand.class | Bin 0 -> 5134 bytes .../commands/visual/DeleteForkCommand.class | Bin 0 -> 7583 bytes .../commands/visual/DeleteJoinCommand.class | Bin 0 -> 7732 bytes .../commands/visual/DeletePathCommand.class | Bin 0 -> 7158 bytes .../visual/DeletePathNodeCommand.class | Bin 0 -> 3772 bytes .../commands/visual/DeleteStubCommand.class | Bin 0 -> 2003 bytes .../commands/visual/DeleteTimerCommand.class | Bin 0 -> 5868 bytes .../DeleteVisualComponentRoleCommand.class | Bin 0 -> 3566 bytes .../visual/DeleteWaitingPlaceCommand.class | Bin 0 -> 1804 bytes .../visual/EditVisualizationPathCommand.class | Bin 0 -> 4692 bytes .../visual/InsertComponentRoleCommand.class | Bin 0 -> 3978 bytes .../visual/InsertDirectionArrowCommand.class | Bin 0 -> 4126 bytes .../visual/InsertDynamicStubCommand.class | Bin 0 -> 4356 bytes .../commands/visual/InsertForkCommand.class | Bin 0 -> 7579 bytes .../commands/visual/InsertJoinCommand.class | Bin 0 -> 7700 bytes .../commands/visual/InsertNodeCommand.class | Bin 0 -> 8244 bytes .../visual/InsertPathNodeCommand.class | Bin 0 -> 5936 bytes .../visual/InsertResponsibilityCommand.class | Bin 0 -> 1261 bytes .../commands/visual/InsertStubCommand.class | Bin 0 -> 2566 bytes .../commands/visual/InsertTimerCommand.class | Bin 0 -> 6300 bytes .../visual/InsertWaitingPlaceCommand.class | Bin 0 -> 1976 bytes .../commands/visual/JoinPathsCommand.class | Bin 0 -> 6897 bytes .../commands/visual/MergePathsCommand.class | Bin 0 -> 7576 bytes .../MoveResponsibilityOutComponent.class | Bin 0 -> 4513 bytes .../visual/PathNodeCreateCommand.class | Bin 0 -> 7109 bytes .../visual/PathNodeReparentCommand.class | Bin 0 -> 3549 bytes .../visual/PathNodeSetConstraintCommand.class | Bin 0 -> 2636 bytes .../ResponsibilityNodeReparentCommand.class | Bin 0 -> 2312 bytes .../commands/visual/RotateFigureCommand.class | Bin 0 -> 1851 bytes .../visual/UpdateAllPathCommand.class | Bin 0 -> 3853 bytes .../HideAllConditionsCommand.class | Bin 0 -> 2989 bytes .../HideConditionCommand.class | Bin 0 -> 3090 bytes .../ShowAllConditionsCommand.class | Bin 0 -> 2995 bytes .../ShowConditionCommand.class | Bin 0 -> 7767 bytes .../ShowHideAllConditionsCommand.class | Bin 0 -> 2602 bytes .../ShowHideConditionsCommand.class | Bin 0 -> 3271 bytes ...nDialog$ConditionedStubLabelProvider.class | Bin 0 -> 2960 bytes .../ConditionedStubSelectionDialog.class | Bin 0 -> 2538 bytes .../dialogs/DynamicStubManagerDialog$1.class | Bin 0 -> 953 bytes .../dialogs/DynamicStubManagerDialog$10.class | Bin 0 -> 6171 bytes .../dialogs/DynamicStubManagerDialog$11.class | Bin 0 -> 1138 bytes .../dialogs/DynamicStubManagerDialog$12.class | Bin 0 -> 2415 bytes .../dialogs/DynamicStubManagerDialog$2.class | Bin 0 -> 953 bytes .../dialogs/DynamicStubManagerDialog$3.class | Bin 0 -> 1577 bytes .../dialogs/DynamicStubManagerDialog$4.class | Bin 0 -> 1423 bytes .../dialogs/DynamicStubManagerDialog$5.class | Bin 0 -> 1423 bytes .../dialogs/DynamicStubManagerDialog$6.class | Bin 0 -> 1423 bytes .../dialogs/DynamicStubManagerDialog$7.class | Bin 0 -> 1855 bytes .../dialogs/DynamicStubManagerDialog$8.class | Bin 0 -> 931 bytes .../dialogs/DynamicStubManagerDialog$9.class | Bin 0 -> 1138 bytes .../dialogs/DynamicStubManagerDialog.class | Bin 0 -> 15346 bytes .../dialogs/EditComponentDialog$1.class | Bin 0 -> 944 bytes .../dialogs/EditComponentDialog$2.class | Bin 0 -> 2342 bytes .../dialogs/EditComponentDialog$3.class | Bin 0 -> 959 bytes .../dialogs/EditComponentDialog.class | Bin 0 -> 5534 bytes .../dialogs/EditDependencyDialog$1.class | Bin 0 -> 1062 bytes .../dialogs/EditDependencyDialog$2.class | Bin 0 -> 2559 bytes .../dialogs/EditDependencyDialog$3.class | Bin 0 -> 1077 bytes .../dialogs/EditDependencyDialog$4.class | Bin 0 -> 1846 bytes .../dialogs/EditDependencyDialog$5.class | Bin 0 -> 971 bytes .../dialogs/EditDependencyDialog$6.class | Bin 0 -> 2080 bytes .../dialogs/EditDependencyDialog$7.class | Bin 0 -> 3188 bytes .../dialogs/EditDependencyDialog$8.class | Bin 0 -> 2914 bytes ...ndencyDialog$DependencyToNameFactory.class | Bin 0 -> 1691 bytes .../dialogs/EditDependencyDialog.class | Bin 0 -> 22672 bytes .../dialogs/EditDynamicStubDialog$1.class | Bin 0 -> 935 bytes .../dialogs/EditDynamicStubDialog$10.class | Bin 0 -> 6130 bytes .../dialogs/EditDynamicStubDialog$11.class | Bin 0 -> 1120 bytes .../dialogs/EditDynamicStubDialog$12.class | Bin 0 -> 1173 bytes .../dialogs/EditDynamicStubDialog$13.class | Bin 0 -> 2696 bytes .../dialogs/EditDynamicStubDialog$14.class | Bin 0 -> 1436 bytes .../dialogs/EditDynamicStubDialog$2.class | Bin 0 -> 935 bytes .../dialogs/EditDynamicStubDialog$3.class | Bin 0 -> 1566 bytes .../dialogs/EditDynamicStubDialog$4.class | Bin 0 -> 1405 bytes .../dialogs/EditDynamicStubDialog$5.class | Bin 0 -> 1405 bytes .../dialogs/EditDynamicStubDialog$6.class | Bin 0 -> 1405 bytes .../dialogs/EditDynamicStubDialog$7.class | Bin 0 -> 1837 bytes .../dialogs/EditDynamicStubDialog$8.class | Bin 0 -> 913 bytes .../dialogs/EditDynamicStubDialog$9.class | Bin 0 -> 1120 bytes .../dialogs/EditDynamicStubDialog.class | Bin 0 -> 21291 bytes .../dialogs/EditEventConditionDialog$1.class | Bin 0 -> 931 bytes .../dialogs/EditEventConditionDialog$2.class | Bin 0 -> 1373 bytes .../dialogs/EditEventConditionDialog$3.class | Bin 0 -> 1373 bytes .../dialogs/EditEventConditionDialog$4.class | Bin 0 -> 1373 bytes .../dialogs/EditEventConditionDialog$5.class | Bin 0 -> 1226 bytes .../dialogs/EditEventConditionDialog$6.class | Bin 0 -> 988 bytes .../EditEventConditionDialog$Validator.class | Bin 0 -> 3827 bytes ...tEventConditionDialog$multiHashtable.class | Bin 0 -> 1887 bytes .../dialogs/EditEventConditionDialog.class | Bin 0 -> 15749 bytes .../EditOrForkConditionsDialog$1.class | Bin 0 -> 976 bytes .../EditOrForkConditionsDialog$2.class | Bin 0 -> 1832 bytes .../EditOrForkConditionsDialog$3.class | Bin 0 -> 991 bytes .../EditOrForkConditionsDialog$4.class | Bin 0 -> 1410 bytes .../EditOrForkConditionsDialog$5.class | Bin 0 -> 1023 bytes .../EditOrForkConditionsDialog$6.class | Bin 0 -> 1623 bytes .../dialogs/EditOrForkConditionsDialog.class | Bin 0 -> 11513 bytes .../ucmeditor/dialogs/EditStubDialog$1.class | Bin 0 -> 981 bytes .../ucmeditor/dialogs/EditStubDialog$2.class | Bin 0 -> 2359 bytes .../ucmeditor/dialogs/EditStubDialog$3.class | Bin 0 -> 996 bytes .../ucmeditor/dialogs/EditStubDialog$4.class | Bin 0 -> 1820 bytes .../ucmeditor/dialogs/EditStubDialog$5.class | Bin 0 -> 1253 bytes .../ucmeditor/dialogs/EditStubDialog.class | Bin 0 -> 14125 bytes .../ucmeditor/dialogs/EditTimerDialog$1.class | Bin 0 -> 956 bytes .../ucmeditor/dialogs/EditTimerDialog$2.class | Bin 0 -> 2466 bytes .../ucmeditor/dialogs/EditTimerDialog$3.class | Bin 0 -> 971 bytes .../ucmeditor/dialogs/EditTimerDialog.class | Bin 0 -> 8579 bytes .../ucmeditor/dialogs/EventDialog$1.class | Bin 0 -> 853 bytes .../ucmeditor/dialogs/EventDialog$10.class | Bin 0 -> 876 bytes .../ucmeditor/dialogs/EventDialog$11.class | Bin 0 -> 876 bytes .../ucmeditor/dialogs/EventDialog$2.class | Bin 0 -> 1450 bytes .../ucmeditor/dialogs/EventDialog$3.class | Bin 0 -> 1345 bytes .../ucmeditor/dialogs/EventDialog$4.class | Bin 0 -> 1345 bytes .../ucmeditor/dialogs/EventDialog$5.class | Bin 0 -> 1777 bytes .../ucmeditor/dialogs/EventDialog$6.class | Bin 0 -> 1060 bytes .../ucmeditor/dialogs/EventDialog$7.class | Bin 0 -> 2598 bytes .../ucmeditor/dialogs/EventDialog$8.class | Bin 0 -> 1058 bytes .../ucmeditor/dialogs/EventDialog$9.class | Bin 0 -> 2286 bytes .../edit/ucmeditor/dialogs/EventDialog.class | Bin 0 -> 13389 bytes .../ucmeditor/dialogs/FamilyDialog$1.class | Bin 0 -> 881 bytes .../ucmeditor/dialogs/FamilyDialog$10.class | Bin 0 -> 1263 bytes .../ucmeditor/dialogs/FamilyDialog$11.class | Bin 0 -> 2314 bytes .../ucmeditor/dialogs/FamilyDialog$2.class | Bin 0 -> 881 bytes .../ucmeditor/dialogs/FamilyDialog$3.class | Bin 0 -> 1489 bytes .../ucmeditor/dialogs/FamilyDialog$4.class | Bin 0 -> 1383 bytes .../ucmeditor/dialogs/FamilyDialog$5.class | Bin 0 -> 1383 bytes .../ucmeditor/dialogs/FamilyDialog$6.class | Bin 0 -> 1815 bytes .../ucmeditor/dialogs/FamilyDialog$7.class | Bin 0 -> 859 bytes .../ucmeditor/dialogs/FamilyDialog$8.class | Bin 0 -> 1263 bytes .../ucmeditor/dialogs/FamilyDialog$9.class | Bin 0 -> 2671 bytes .../edit/ucmeditor/dialogs/FamilyDialog.class | Bin 0 -> 12706 bytes .../dialogs/FamilyManagerDialog$1.class | Bin 0 -> 901 bytes .../dialogs/FamilyManagerDialog$10.class | Bin 0 -> 1420 bytes .../dialogs/FamilyManagerDialog$11.class | Bin 0 -> 1345 bytes .../dialogs/FamilyManagerDialog$12.class | Bin 0 -> 1345 bytes .../dialogs/FamilyManagerDialog$13.class | Bin 0 -> 1345 bytes .../dialogs/FamilyManagerDialog$14.class | Bin 0 -> 5630 bytes .../dialogs/FamilyManagerDialog$15.class | Bin 0 -> 960 bytes .../dialogs/FamilyManagerDialog$2.class | Bin 0 -> 1353 bytes .../dialogs/FamilyManagerDialog$3.class | Bin 0 -> 1353 bytes .../dialogs/FamilyManagerDialog$4.class | Bin 0 -> 1353 bytes .../dialogs/FamilyManagerDialog$5.class | Bin 0 -> 2580 bytes .../dialogs/FamilyManagerDialog$6.class | Bin 0 -> 1725 bytes .../dialogs/FamilyManagerDialog$7.class | Bin 0 -> 2480 bytes .../dialogs/FamilyManagerDialog$8.class | Bin 0 -> 1671 bytes .../dialogs/FamilyManagerDialog$9.class | Bin 0 -> 1418 bytes .../FamilyManagerDialog$Validator.class | Bin 0 -> 3797 bytes .../FamilyManagerDialog$multiHashtable.class | Bin 0 -> 1857 bytes .../dialogs/FamilyManagerDialog.class | Bin 0 -> 25478 bytes .../dialogs/UseCaseMapDialog$1.class | Bin 0 -> 919 bytes .../dialogs/UseCaseMapDialog$2.class | Bin 0 -> 900 bytes .../dialogs/UseCaseMapDialog$3.class | Bin 0 -> 904 bytes .../dialogs/UseCaseMapDialog$4.class | Bin 0 -> 1320 bytes .../dialogs/UseCaseMapDialog$5.class | Bin 0 -> 1320 bytes .../dialogs/UseCaseMapDialog$6.class | Bin 0 -> 1717 bytes .../dialogs/UseCaseMapDialog$Validator.class | Bin 0 -> 2749 bytes .../ucmeditor/dialogs/UseCaseMapDialog.class | Bin 0 -> 7978 bytes .../event/ConditionEventEditionItem.class | Bin 0 -> 1139 bytes .../MainConditionEventEditionItem$1.class | Bin 0 -> 1615 bytes .../MainConditionEventEditionItem$2.class | Bin 0 -> 1622 bytes .../MainConditionEventEditionItem$3.class | Bin 0 -> 1657 bytes .../MainConditionEventEditionItem.class | Bin 0 -> 7580 bytes ...nedStubResponsibilityNodeEditionItem.class | Bin 0 -> 1245 bytes .../ResponsibilityEditionItem.class | Bin 0 -> 1165 bytes .../ResponsibilityNodeEditionItem.class | Bin 0 -> 1185 bytes .../ResponsibilityNodeVisualEditionItem.class | Bin 0 -> 1213 bytes .../editionitem/ConditionEditionItem$1.class | Bin 0 -> 1654 bytes .../editionitem/ConditionEditionItem$10.class | Bin 0 -> 2262 bytes .../editionitem/ConditionEditionItem$11.class | Bin 0 -> 1786 bytes .../editionitem/ConditionEditionItem$12.class | Bin 0 -> 1497 bytes .../editionitem/ConditionEditionItem$2.class | Bin 0 -> 1654 bytes .../editionitem/ConditionEditionItem$3.class | Bin 0 -> 3580 bytes .../editionitem/ConditionEditionItem$4.class | Bin 0 -> 1576 bytes .../editionitem/ConditionEditionItem$5.class | Bin 0 -> 1578 bytes .../editionitem/ConditionEditionItem$6.class | Bin 0 -> 2764 bytes .../editionitem/ConditionEditionItem$7.class | Bin 0 -> 1627 bytes .../editionitem/ConditionEditionItem$8.class | Bin 0 -> 1627 bytes .../editionitem/ConditionEditionItem$9.class | Bin 0 -> 4816 bytes .../editionitem/ConditionEditionItem.class | Bin 0 -> 21102 bytes ...onditionedStubConditionEditionItem$1.class | Bin 0 -> 1744 bytes ...onditionedStubConditionEditionItem$2.class | Bin 0 -> 1744 bytes ...onditionedStubConditionEditionItem$3.class | Bin 0 -> 3715 bytes ...onditionedStubConditionEditionItem$4.class | Bin 0 -> 1666 bytes ...onditionedStubConditionEditionItem$5.class | Bin 0 -> 1668 bytes ...onditionedStubConditionEditionItem$6.class | Bin 0 -> 2884 bytes ...onditionedStubConditionEditionItem$7.class | Bin 0 -> 1903 bytes .../ConditionedStubConditionEditionItem.class | Bin 0 -> 18985 bytes ...ResponsibilityEditionItemContainer$1.class | Bin 0 -> 1424 bytes ...ubResponsibilityEditionItemContainer.class | Bin 0 -> 2695 bytes ...esponsibilityNodeVisualEditionItem$1.class | Bin 0 -> 1746 bytes ...nResponsibilityNodeVisualEditionItem.class | Bin 0 -> 4829 bytes .../ResponsibilityConditionItem.class | Bin 0 -> 2705 bytes ...ResponsibilityEditionItemContainer$1.class | Bin 0 -> 1364 bytes .../ResponsibilityEditionItemContainer.class | Bin 0 -> 2605 bytes ...aterializationEditionItemContainer$1.class | Bin 0 -> 1985 bytes ...yMaterializationEditionItemContainer.class | Bin 0 -> 2930 bytes .../editparts/ComponentEditPart$1.class | Bin 0 -> 2218 bytes .../editparts/ComponentEditPart$2.class | Bin 0 -> 2102 bytes .../editparts/ComponentEditPart$3.class | Bin 0 -> 1934 bytes ...EditPart$ComponentXYLayoutEditPolicy.class | Bin 0 -> 5179 bytes .../editparts/ComponentEditPart.class | Bin 0 -> 10439 bytes .../ConditionConnectionEditPart.class | Bin 0 -> 4027 bytes .../editparts/DependencyToColorFactory.class | Bin 0 -> 1312 bytes .../DependencyToLineStyleFactory.class | Bin 0 -> 1198 bytes .../DirectionArrowNodeEditPart.class | Bin 0 -> 3152 bytes .../editparts/DynamicStubNodeEditPart.class | Bin 0 -> 9494 bytes .../editparts/ForkNodeEditPart$1.class | Bin 0 -> 1025 bytes .../editparts/ForkNodeEditPart.class | Bin 0 -> 8797 bytes .../editparts/JoinNodeEditPart$1.class | Bin 0 -> 1025 bytes .../editparts/JoinNodeEditPart.class | Bin 0 -> 6841 bytes .../editparts/PathNodeEditPart$1.class | Bin 0 -> 1025 bytes .../editparts/PathNodeEditPart$2.class | Bin 0 -> 2096 bytes .../editparts/PathNodeEditPart.class | Bin 0 -> 8718 bytes .../editparts/PathSegmentEditPart$1.class | Bin 0 -> 1829 bytes .../editparts/PathSegmentEditPart.class | Bin 0 -> 2086 bytes .../ResponsibilityNodeEditPart.class | Bin 0 -> 11338 bytes .../editparts/StubNodeEditPart.class | Bin 0 -> 9819 bytes .../editparts/TimerNodeEditPart.class | Bin 0 -> 7658 bytes ...iagramEditPart$UCMXYLayoutEditPolicy.class | Bin 0 -> 7457 bytes .../editparts/UCMDiagramEditPart.class | Bin 0 -> 10213 bytes .../editparts/UCMEditPartFactory.class | Bin 0 -> 3773 bytes .../editparts/VisualDiagramJumpEditPart.class | Bin 0 -> 3947 bytes .../edit/ucmeditor/figures/ActorFigure.class | Bin 0 -> 2311 bytes .../edit/ucmeditor/figures/AgentFigure.class | Bin 0 -> 2198 bytes .../ucmeditor/figures/AndForkFigure.class | Bin 0 -> 6437 bytes .../ucmeditor/figures/AndJoinFigure.class | Bin 0 -> 6420 bytes .../ucmeditor/figures/CurveDiagramLayer.class | Bin 0 -> 12447 bytes .../figures/CurvePolylineConnection.class | Bin 0 -> 556 bytes .../figures/DirectionArrowFigure.class | Bin 0 -> 4024 bytes .../ucmeditor/figures/DynamicStubFigure.class | Bin 0 -> 2963 bytes .../edit/ucmeditor/figures/ObjectFigure.class | Bin 0 -> 2194 bytes .../edit/ucmeditor/figures/OrForkFigure.class | Bin 0 -> 9510 bytes .../edit/ucmeditor/figures/OrJoinFigure.class | Bin 0 -> 7123 bytes .../ucmeditor/figures/PathPointFigure.class | Bin 0 -> 4993 bytes .../ucmeditor/figures/PointFactory$1.class | Bin 0 -> 805 bytes .../edit/ucmeditor/figures/PointFactory.class | Bin 0 -> 633 bytes .../ucmeditor/figures/ProcessFigure.class | Bin 0 -> 2224 bytes .../figures/ResponsibilityNodeFigure.class | Bin 0 -> 2510 bytes .../edit/ucmeditor/figures/StubFigure.class | Bin 0 -> 4306 bytes .../figures/ThreeConnectionFigure.class | Bin 0 -> 10260 bytes .../edit/ucmeditor/figures/TimerFigure.class | Bin 0 -> 5203 bytes .../figures/VisualDiagramJumpFigure.class | Bin 0 -> 1982 bytes .../figures/WaitingPlaceFigure.class | Bin 0 -> 2368 bytes .../properties/MapPropertySource.class | Bin 0 -> 4196 bytes .../ResponsibilitiesPropertySource.class | Bin 0 -> 4319 bytes .../properties/RolePropertySource.class | Bin 0 -> 3962 bytes .../flabot/edit/ucmmodel/UCMDiagram.class | Bin 0 -> 357 bytes .../edit/ucmmodel/UcmmodelFactory.class | Bin 0 -> 632 bytes .../edit/ucmmodel/UcmmodelPackage.class | Bin 0 -> 1575 bytes .../edit/ucmmodel/impl/UCMDiagramImpl.class | Bin 0 -> 7724 bytes .../ucmmodel/impl/UcmmodelFactoryImpl.class | Bin 0 -> 2829 bytes .../ucmmodel/impl/UcmmodelPackageImpl.class | Bin 0 -> 5482 bytes .../util/UcmmodelAdapterFactory$1.class | Bin 0 -> 1931 bytes .../util/UcmmodelAdapterFactory.class | Bin 0 -> 2128 bytes .../edit/ucmmodel/util/UcmmodelSwitch.class | Bin 0 -> 2767 bytes .../edit/wizards/FlabotNewWizard$1.class | Bin 0 -> 1510 bytes .../edit/wizards/FlabotNewWizard$2.class | Bin 0 -> 1472 bytes .../flabot/edit/wizards/FlabotNewWizard.class | Bin 0 -> 9449 bytes .../edit/wizards/FlabotNewWizardPage$1.class | Bin 0 -> 921 bytes .../edit/wizards/FlabotNewWizardPage$2.class | Bin 0 -> 909 bytes .../edit/wizards/FlabotNewWizardPage$3.class | Bin 0 -> 921 bytes .../edit/wizards/FlabotNewWizardPage.class | Bin 0 -> 7060 bytes .../edit/wizards/FlabotTemplateWizard$1.class | Bin 0 -> 1643 bytes .../edit/wizards/FlabotTemplateWizard$2.class | Bin 0 -> 1516 bytes ...tTemplateWizard$FlabotFilenameFilter.class | Bin 0 -> 1378 bytes .../edit/wizards/FlabotTemplateWizard.class | Bin 0 -> 7701 bytes .../wizards/FlabotTemplateWizardPage$1.class | Bin 0 -> 951 bytes .../wizards/FlabotTemplateWizardPage$2.class | Bin 0 -> 939 bytes .../wizards/FlabotTemplateWizardPage$3.class | Bin 0 -> 951 bytes .../wizards/FlabotTemplateWizardPage.class | Bin 0 -> 8214 bytes .../bin/org/isistan/flabot/editormodel.ecore | 133 + .../bin/org/isistan/flabot/flabot.genmodel | 281 + .../bin/org/isistan/flabot/icons/Actor16.gif | Bin 0 -> 211 bytes .../bin/org/isistan/flabot/icons/Actor24.gif | Bin 0 -> 263 bytes .../bin/org/isistan/flabot/icons/Agent16.gif | Bin 0 -> 329 bytes .../bin/org/isistan/flabot/icons/Agent24.gif | Bin 0 -> 695 bytes .../org/isistan/flabot/icons/DynStub16.gif | Bin 0 -> 105 bytes .../org/isistan/flabot/icons/DynStub24.gif | Bin 0 -> 141 bytes .../bin/org/isistan/flabot/icons/Object16.gif | Bin 0 -> 363 bytes .../bin/org/isistan/flabot/icons/Object24.gif | Bin 0 -> 723 bytes .../org/isistan/flabot/icons/Process16.gif | Bin 0 -> 351 bytes .../org/isistan/flabot/icons/Process24.gif | Bin 0 -> 690 bytes .../isistan/flabot/icons/ascendingOrder.gif | Bin 0 -> 915 bytes .../isistan/flabot/icons/bring_forward.gif | Bin 0 -> 938 bytes .../isistan/flabot/icons/bring_to_front.gif | Bin 0 -> 998 bytes .../bin/org/isistan/flabot/icons/cd.gif | Bin 0 -> 76 bytes .../bin/org/isistan/flabot/icons/close.gif | Bin 0 -> 314 bytes .../org/isistan/flabot/icons/component.gif | Bin 0 -> 92 bytes .../bin/org/isistan/flabot/icons/core.gif | Bin 0 -> 1024 bytes .../isistan/flabot/icons/descendingOrder.gif | Bin 0 -> 916 bytes .../bin/org/isistan/flabot/icons/export.gif | Bin 0 -> 222 bytes .../bin/org/isistan/flabot/icons/grid.gif | Bin 0 -> 936 bytes .../org/isistan/flabot/icons/interface.gif | Bin 0 -> 77 bytes .../isistan/flabot/icons/interface_link.gif | Bin 0 -> 301 bytes .../bin/org/isistan/flabot/icons/map.gif | Bin 0 -> 81 bytes .../bin/org/isistan/flabot/icons/note.gif | Bin 0 -> 543 bytes .../org/isistan/flabot/icons/note_link.gif | Bin 0 -> 568 bytes .../org/isistan/flabot/icons/path16x16.gif | Bin 0 -> 323 bytes .../org/isistan/flabot/icons/path24x24.gif | Bin 0 -> 319 bytes .../bin/org/isistan/flabot/icons/port.gif | Bin 0 -> 76 bytes .../bin/org/isistan/flabot/icons/provided.gif | Bin 0 -> 73 bytes .../org/isistan/flabot/icons/relationship.gif | Bin 0 -> 327 bytes .../bin/org/isistan/flabot/icons/required.gif | Bin 0 -> 78 bytes .../isistan/flabot/icons/responsibility.gif | Bin 0 -> 859 bytes .../bin/org/isistan/flabot/icons/role.gif | Bin 0 -> 92 bytes .../isistan/flabot/icons/send_backward.gif | Bin 0 -> 933 bytes .../org/isistan/flabot/icons/send_to_back.gif | Bin 0 -> 955 bytes .../org/isistan/flabot/icons/stereotype.gif | Bin 0 -> 173 bytes .../bin/org/isistan/flabot/icons/timer.png | Bin 0 -> 2311 bytes .../bin/org/isistan/flabot/icons/timer_2.png | Bin 0 -> 10735 bytes .../bin/org/isistan/flabot/icons/ucm.gif | Bin 0 -> 860 bytes .../isistan/flabot/messages/Messages.class | Bin 0 -> 1349 bytes .../flabot/messages/messages.properties | 807 + .../util/ArgumentsReplacer$Transition.class | Bin 0 -> 902 bytes .../messages/util/ArgumentsReplacer.class | Bin 0 -> 3832 bytes .../flabot/messages/util/MessagesUtil.class | Bin 0 -> 1821 bytes .../util/SpecialCharacterConversion.class | Bin 0 -> 669 bytes ...pecialCharactersConverter$Transition.class | Bin 0 -> 956 bytes .../util/SpecialCharactersConverter.class | Bin 0 -> 3615 bytes .../bin/org/isistan/flabot/ucmmodel.ecore | 12 + .../flabot/util/DefualtValidatorSorter.class | Bin 0 -> 2352 bytes .../flabot/util/EObjectIdGenerator.class | Bin 0 -> 1920 bytes .../isistan/flabot/util/ImageSaveUtil.class | Bin 0 -> 8160 bytes .../isistan/flabot/util/SorterToTable.class | Bin 0 -> 4993 bytes .../flabot/util/ValidatorSorterTable.class | Bin 0 -> 772 bytes .../util/consistency/ConsistencyManager.class | Bin 0 -> 641 bytes .../flabot/util/consistency/Constraint.class | Bin 0 -> 258 bytes .../GroupBasedConsistencyManagerImpl.class | Bin 0 -> 4393 bytes .../consistency/GroupBasedDiagnostician.class | Bin 0 -> 2102 bytes .../AbstractCompositeEditionItem$1.class | Bin 0 -> 1288 bytes .../AbstractCompositeEditionItem.class | Bin 0 -> 6145 bytes .../util/edition/AbstractEditionItem.class | Bin 0 -> 2515 bytes .../util/edition/CompositeEditionItem.class | Bin 0 -> 561 bytes .../edition/CompositeEditionItemStatus.class | Bin 0 -> 1283 bytes .../flabot/util/edition/DataAdapter.class | Bin 0 -> 294 bytes .../flabot/util/edition/EditionItem.class | Bin 0 -> 965 bytes .../edition/EditionItemChangeListener.class | Bin 0 -> 454 bytes .../util/edition/EditionItemStatus$1.class | Bin 0 -> 1050 bytes .../util/edition/EditionItemStatus$Type.class | Bin 0 -> 826 bytes .../util/edition/EditionItemStatus.class | Bin 0 -> 1854 bytes .../util/edition/IdentityDataAdapter.class | Bin 0 -> 815 bytes .../edition/SingleEditionItemStatus.class | Bin 0 -> 1519 bytes ...siteEditionTabItem$ChildrenActivator.class | Bin 0 -> 1989 bytes .../edition/tab/CompositeEditionTabItem.class | Bin 0 -> 2777 bytes .../util/edition/tab/EditionTabItem.class | Bin 0 -> 566 bytes .../tab/EditionTabItemContainer$1.class | Bin 0 -> 1561 bytes .../edition/tab/EditionTabItemContainer.class | Bin 0 -> 4843 bytes .../tab/EditionTabItemContainerImpl.class | Bin 0 -> 1500 bytes .../util/edition/tab/EditionTabItemImpl.class | Bin 0 -> 2095 bytes .../edition/tab/EditionTabItemLoader.class | Bin 0 -> 6126 bytes .../util/locator/ComponentLocator.class | Bin 0 -> 286 bytes .../locator/ComponentLocatorException.class | Bin 0 -> 782 bytes .../locator/ComponentLocatorManager.class | Bin 0 -> 567 bytes .../ExtensionLoaderComponentLocator.class | Bin 0 -> 2253 bytes .../impl/ComponentLocatorManagerImpl.class | Bin 0 -> 1970 bytes org.isistan.flabot/build.properties | 21 + org.isistan.flabot/codetemplates.xml | 29 + org.isistan.flabot/flabotExtensions.flabot | 649 + org.isistan.flabot/icons/flabot.gif | Bin 0 -> 1034 bytes org.isistan.flabot/lib/graphbuilder.jar | Bin 0 -> 73599 bytes org.isistan.flabot/lib/slf4j.jar | Bin 0 -> 3814 bytes org.isistan.flabot/mylog.tracelog | 55822 ++++++++++++++++ org.isistan.flabot/org.eclipse.jdt.core.prefs | 57 + org.isistan.flabot/org.eclipse.jdt.ui.prefs | 4 + org.isistan.flabot/plugin.properties | 20 + org.isistan.flabot/plugin.xml | 122 + ...mponentDiagramEditorContextMenuAction.exsd | 82 + .../schema/componentEditionTabItem.exsd | 134 + .../schema/componentVisualEditionTabItem.exsd | 134 + .../schema/conditionEventEditionTabItem.exsd | 134 + ...dStubResponsibilityNodeEditionTabItem.exsd | 131 + .../schema/responsibilityEditionTabItem.exsd | 134 + ...sibilityMaterializationEditionTabItem.exsd | 134 + .../responsibilityNodeEditionTabItem.exsd | 134 + ...esponsibilityNodeVisualEditionTabItem.exsd | 134 + .../schema/ucmEditorContextMenuAction.exsd | 82 + .../flabot/ExtensionPointConstants.java | 126 + .../src/org/isistan/flabot/FlabotPlugin.java | 92 + .../org/isistan/flabot/componentmodel.ecore | 9 + .../src/org/isistan/flabot/coremodel.ecore | 301 + .../coremodel/BehavioralFeatureModel.java | 9 + .../flabot/coremodel/ComponentModel.java | 29 + .../flabot/coremodel/ComponentRole.java | 106 + .../isistan/flabot/coremodel/Condition.java | 134 + .../flabot/coremodel/ConditionEvent.java | 55 + .../flabot/coremodel/ConditionedStub.java | 80 + .../isistan/flabot/coremodel/CoreModel.java | 54 + .../flabot/coremodel/CoremodelFactory.java | 496 + .../flabot/coremodel/CoremodelPackage.java | 5801 ++ .../flabot/coremodel/DirectionArrowNode.java | 22 + .../isistan/flabot/coremodel/DynamicStub.java | 44 + .../flabot/coremodel/DynamicStubNode.java | 44 + .../flabot/coremodel/ExtensibleElement.java | 57 + .../coremodel/ExtensibleElementUtil.java | 59 + .../org/isistan/flabot/coremodel/Family.java | 22 + .../flabot/coremodel/FamilyElement.java | 40 + .../flabot/coremodel/FeatureModel.java | 6 + .../flabot/coremodel/ForkCondition.java | 28 + .../isistan/flabot/coremodel/ForkNode.java | 46 + .../flabot/coremodel/InterfaceLink.java | 29 + .../flabot/coremodel/InterfaceModel.java | 19 + .../flabot/coremodel/InterfacePrologCode.java | 8 + .../isistan/flabot/coremodel/JoinNode.java | 42 + .../flabot/coremodel/NamedElementModel.java | 21 + .../org/isistan/flabot/coremodel/Note.java | 21 + .../flabot/coremodel/NoteElementModel.java | 12 + .../org/isistan/flabot/coremodel/Path.java | 29 + .../isistan/flabot/coremodel/PathNode.java | 93 + .../isistan/flabot/coremodel/PortModel.java | 31 + .../isistan/flabot/coremodel/Property.java | 30 + .../coremodel/PropertyElementModel.java | 12 + .../isistan/flabot/coremodel/Registrable.java | 33 + .../flabot/coremodel/Relationship.java | 36 + .../coremodel/RelationshipDirection.java | 57 + .../flabot/coremodel/Responsibility.java | 33 + .../flabot/coremodel/ResponsibilityNode.java | 103 + .../coremodel/ResponsibilityRegistry.java | 72 + .../flabot/coremodel/SimplePathNode.java | 32 + .../isistan/flabot/coremodel/Stereotype.java | 12 + .../coremodel/StereotypedElementModel.java | 15 + .../isistan/flabot/coremodel/StubNode.java | 74 + .../isistan/flabot/coremodel/TimerNode.java | 149 + .../isistan/flabot/coremodel/UseCaseMap.java | 53 + .../ComponentUniqueNameConstraint.java | 65 + .../ConditionEventGeneralConstraint.java | 57 + ...tionMappingHasCorrectFamilyConstraint.java | 98 + .../FamilyHasAllComponentConstraint.java | 16 + ...faceLinkMappedToPathGeneralConstraint.java | 191 + .../InterfacesMustHaveSameNameConstraint.java | 50 + .../ResponsibilityGeneralConstraint.java | 70 + .../ResponsibilityNodeGeneralConstraint.java | 140 + .../StubMustHaveFamilyConstraint.java | 46 + .../UseCaseMapGeneralConstraint.java | 85 + .../impl/BehavioralFeatureModelImpl.java | 47 + .../coremodel/impl/ComponentModelImpl.java | 651 + .../coremodel/impl/ComponentRoleImpl.java | 596 + .../impl/ComponentToMapMapEntryImpl.java | 286 + .../coremodel/impl/ConditionEventImpl.java | 349 + ...tionEventToConditionEventMapEntryImpl.java | 293 + .../flabot/coremodel/impl/ConditionImpl.java | 556 + .../coremodel/impl/ConditionedStubImpl.java | 238 + .../flabot/coremodel/impl/CoreModelImpl.java | 729 + .../coremodel/impl/CoremodelFactoryImpl.java | 892 + .../coremodel/impl/CoremodelPackageImpl.java | 2404 + .../impl/DirectionArrowNodeImpl.java | 42 + .../coremodel/impl/DynamicStubImpl.java | 130 + .../coremodel/impl/DynamicStubNodeImpl.java | 134 + .../impl/EStringToEObjectMapEntryImpl.java | 317 + .../coremodel/impl/ExtensibleElementImpl.java | 153 + .../coremodel/impl/FamilyElementImpl.java | 274 + .../flabot/coremodel/impl/FamilyImpl.java | 287 + .../coremodel/impl/FeatureModelImpl.java | 236 + .../coremodel/impl/ForkConditionImpl.java | 158 + .../flabot/coremodel/impl/ForkNodeImpl.java | 320 + .../coremodel/impl/InterfaceLinkImpl.java | 283 + .../coremodel/impl/InterfaceModelImpl.java | 153 + .../flabot/coremodel/impl/JoinNodeImpl.java | 266 + .../coremodel/impl/NamedElementModelImpl.java | 164 + .../coremodel/impl/NoteElementModelImpl.java | 129 + .../flabot/coremodel/impl/NoteImpl.java | 198 + .../flabot/coremodel/impl/PathImpl.java | 226 + .../flabot/coremodel/impl/PathNodeImpl.java | 443 + .../flabot/coremodel/impl/PortModelImpl.java | 334 + .../impl/PropertyElementModelImpl.java | 145 + .../flabot/coremodel/impl/PropertyImpl.java | 213 + .../coremodel/impl/RelationshipImpl.java | 489 + .../coremodel/impl/ResponsibilityImpl.java | 333 + .../impl/ResponsibilityNodeImpl.java | 454 + .../impl/ResponsibilityRegistryImpl.java | 335 + ...sponsibilityToRegistrableMapEntryImpl.java | 312 + .../coremodel/impl/RoleToMapMapEntryImpl.java | 286 + .../coremodel/impl/SimplePathNodeImpl.java | 313 + .../flabot/coremodel/impl/StereotypeImpl.java | 42 + .../impl/StereotypedElementModelImpl.java | 154 + .../flabot/coremodel/impl/StubNodeImpl.java | 406 + .../flabot/coremodel/impl/TimerNodeImpl.java | 381 + .../flabot/coremodel/impl/UseCaseMapImpl.java | 391 + .../util/CoremodelAdapterFactory.java | 882 + .../coremodel/util/CoremodelSwitch.java | 1152 + .../coremodel/util/CoremodelValidator.java | 783 + .../edit/componenteditor/ComponentEditor.java | 270 + .../ComponentEditorContextMenuProvider.java | 99 + .../ComponentEditorPaletteFactory.java | 213 + .../actions/AssignResponsibilitiesAction.java | 35 + .../componenteditor/actions/CopyAction.java | 81 + .../componenteditor/actions/CutAction.java | 53 + .../actions/EditComponentAction.java | 1 + .../actions/EditPropertiesAction.java | 81 + .../actions/EditResponsibilitiesAction.java | 36 + .../actions/EditStereotypesAction.java | 71 + .../DeleteComponentDiagramCommand.java | 58 + .../commands/model/AddPropertyCommand.java | 68 + .../AddResponsibilityToComponentCommand.java | 59 + .../model/AddResponsibilityToCoreCommand.java | 67 + .../commands/model/AddStereotypeCommand.java | 68 + .../model/DeleteComponentCommand.java | 109 + .../model/DeleteInterfaceCommand.java | 50 + .../commands/model/DeletePortCommand.java | 72 + .../commands/model/DeletePropertyCommand.java | 67 + ...eteResponsibilityFromComponentCommand.java | 65 + .../model/DeleteStereotypeCommand.java | 53 + .../model/ModifyNamedElementCommand.java | 68 + .../commands/model/ModifyPropertyCommand.java | 62 + .../model/ModifyResponsibilityCommand.java | 77 + .../model/ModifyStereotypeCommand.java | 60 + .../ModifyStereotypeInElementCommand.java | 42 + .../commands/visual/AddComponentCommand.java | 142 + .../commands/visual/AddInterfaceCommand.java | 145 + .../visual/AddInterfaceConnectionCommand.java | 133 + .../commands/visual/AddPortCommand.java | 160 + .../AddRelationshipConnectionCommand.java | 123 + .../visual/ComponentSetConstraintCommand.java | 93 + .../DeleteInterfaceConnectionCommand.java | 93 + .../DeleteRelationshipConnectionCommand.java | 78 + .../visual/DeleteVisualComponentCommand.java | 99 + .../visual/DeleteVisualInterfaceCommand.java | 107 + .../visual/DeleteVisualPortCommand.java | 94 + .../visual/PortSetConstraintCommand.java | 139 + .../dialogs/EditPropertyDialog.java | 174 + .../dialogs/PropertyEditionItem.java | 283 + .../componenteditor/dialogs/RenameDialog.java | 129 + .../dialogs/ResponsibilitiesDialog.java | 397 + .../dialogs/StereotypeDialog.java | 302 + .../component/ComponentEditionItem.java | 22 + .../component/ComponentVisualEditionItem.java | 22 + .../editionitem/MainComponentEditionItem.java | 152 + .../PortAndInterfacesEditionItem.java | 254 + .../VisualizationComponentEditionItem.java | 23 + .../ResponsibilityEditionItem.java | 22 + .../MainResponsibilityEditionItem.java | 157 + .../ResponsibilityMaterialization.java | 12 + ...ponsibilityMaterializationEditionItem.java | 21 + .../ResponsibilityMaterializationImpl.java | 26 + .../editparts/ComponentDiagramEditPart.java | 273 + .../editparts/ComponentEditManager.java | 39 + .../editparts/ComponentEditPart.java | 600 + .../editparts/ComponentEditPartFactory.java | 75 + .../ConnectionToConnectionEditPart.java | 144 + .../InterfaceConnectionEditPart.java | 92 + .../editparts/InterfaceEditPart.java | 105 + .../editparts/PortEditPart.java | 221 + .../editparts/ProvidedInterfaceEditPart.java | 73 + .../RelationshipConnectionEditPart.java | 137 + .../editparts/RequiredInterfaceEditPart.java | 71 + .../figures/ComponentBoxAnchor.java | 35 + .../figures/ComponentCellEditorLocator.java | 60 + .../figures/ComponentFigure.java | 218 + .../figures/ConnectionToConnectionAnchor.java | 66 + .../figures/InterfaceFigure.java | 67 + .../componenteditor/figures/PortFigure.java | 117 + .../figures/ProvidedInterfaceFigure.java | 64 + .../figures/RequiredInterfaceFigure.java | 56 + .../properties/ComponentDiagramProperty.java | 91 + .../properties/ComponentPropertySource.java | 97 + .../properties/DirectionProperty.java | 96 + .../RelationshipConnectionProperty.java | 83 + .../ResponsibilityPropertySource.java | 86 + .../properties/StereotypedPropertySource.java | 106 + .../edit/componentmodel/ComponentDiagram.java | 11 + .../componentmodel/ComponentmodelFactory.java | 46 + .../componentmodel/ComponentmodelPackage.java | 193 + .../impl/ComponentDiagramImpl.java | 213 + .../impl/ComponentmodelFactoryImpl.java | 74 + .../impl/ComponentmodelPackageImpl.java | 212 + .../util/ComponentmodelAdapterFactory.java | 170 + .../util/ComponentmodelSwitch.java | 180 + .../flabot/edit/editor/ActionLoader.java | 113 + .../flabot/edit/editor/CommandExecutor.java | 24 + .../edit/editor/FlabotCommandStack.java | 155 + .../edit/editor/FlabotGraphicalEditor.java | 181 + .../flabot/edit/editor/TabItemComparator.java | 60 + .../editor/actions/AddNewFolderAction.java | 156 + .../edit/editor/actions/ArrangeAction.java | 72 + .../editor/actions/CloseDiagramAction.java | 66 + .../edit/editor/actions/CopyAction.java | 154 + .../actions/CreateComponentDiagramAction.java | 95 + .../actions/CreateUCMDiagramAction.java | 103 + .../editor/actions/DeleteOutlineAction.java | 135 + .../actions/EditVisualizationAction.java | 119 + .../actions/EditorSnapGeometryAction.java | 35 + .../actions/EditorToggleGridAction.java | 38 + .../editor/actions/ExportDiagramAction.java | 78 + .../edit/editor/actions/PasteAction.java | 110 + .../editor/actions/PrintDiagramAction.java | 88 + .../actions/RunConsistencyCheckAction.java | 168 + .../editor/actions/RunEventManagerAction.java | 92 + .../actions/RunFamilyManagerAction.java | 95 + .../edit/editor/actions/SelectAllAction.java | 58 + .../editor/commands/AddDiagramFolder.java | 78 + .../commands/AddDiagramToFolderCommand.java | 68 + .../edit/editor/commands/AddNoteCommand.java | 89 + .../commands/AddNoteConnectionCommand.java | 112 + .../edit/editor/commands/ArrangeCommand.java | 85 + .../CreateComponentEditorCommand.java | 72 + .../commands/CreateUCMEditorCommand.java | 76 + .../editor/commands/DeleteDiagramCommand.java | 73 + .../editor/commands/DeleteFolderCommand.java | 115 + .../editor/commands/DeleteNoteCommand.java | 80 + .../commands/DeleteNoteConnectionCommand.java | 76 + .../edit/editor/commands/EditNoteCommand.java | 69 + .../commands/EditVisualizationCommand.java | 96 + .../EditorActivatorCommandWrapper.java | 106 + .../commands/NoteSetConstraintCommand.java | 81 + .../commands/NotifierCommandWrapper.java | 302 + .../commands/SetDetailLevelCommand.java | 67 + .../commands/bendpoints/BendpointCommand.java | 51 + .../bendpoints/CreateBendpointCommand.java | 18 + .../bendpoints/DeleteBendpointCommand.java | 18 + .../bendpoints/MoveBendpointCommand.java | 33 + .../paste/AddComponentPasteCommand.java | 133 + .../AddInterfaceConnectionPasteCommand.java | 91 + .../paste/AddInterfacePasteCommand.java | 102 + .../paste/AddNoteConnectionPasteCommand.java | 92 + .../commands/paste/AddNotePasteCommand.java | 100 + .../commands/paste/AddPortPasteCommand.java | 118 + ...AddRelationshipConnectionPasteCommand.java | 92 + .../paste/AddRoleComponentPasteCommand.java | 121 + .../paste/RetargetConnectionPasteCommand.java | 16 + .../paste/RetargetParentPasteCommand.java | 32 + .../dialogs/ComponentRoleSelectionDialog.java | 217 + .../ExtendedElementListSelectionDialog.java | 71 + .../ResponsibilitySelectionDialog.java | 224 + .../editor/dialogs/StandardEditionDialog.java | 254 + .../ConsistencyCheckVisualizer.java | 371 + .../ConsistencyContentProvider.java | 45 + .../consistency/ConsistencyDetailsDialog.java | 18 + .../consistency/ConsistencyLabelProvider.java | 21 + .../editionitem/EditVisualizationTabItem.java | 358 + .../editor/editparts/ConnectedEditPart.java | 124 + .../editor/editparts/ConnectionEditPart.java | 190 + .../editor/editparts/ContainerEditPart.java | 105 + .../editparts/NoteCellEditorLocator.java | 51 + .../editparts/NoteConnectionEditPart.java | 66 + .../editor/editparts/NoteEditManager.java | 113 + .../edit/editor/editparts/NoteEditPart.java | 231 + .../ConnectionBendpointEditPolicy.java | 57 + .../edit/editor/figures/BendpointLocator.java | 50 + .../edit/editor/figures/BentCornerFigure.java | 91 + .../edit/editor/figures/CloneableShape.java | 24 + .../edit/editor/figures/ComponentFigure.java | 173 + .../editor/figures/DirectEditableFigure.java | 21 + .../editor/figures/FixedConnectionAnchor.java | 63 + .../edit/editor/figures/LineConnection.java | 43 + .../edit/editor/figures/NoteFigure.java | 83 + .../properties/AbstractPropertySource.java | 65 + .../properties/DimensionPropertySource.java | 108 + .../properties/LocationPropertySource.java | 93 + .../NamedElementPropertySource.java | 78 + .../properties/VisualPropertySource.java | 82 + .../flabot/edit/editormodel/Color.java | 40 + .../edit/editormodel/ConnectionBendpoint.java | 43 + .../editormodel/ConnectionVisualModel.java | 55 + .../flabot/edit/editormodel/Diagram.java | 91 + .../flabot/edit/editormodel/Dimension.java | 32 + .../edit/editormodel/EditormodelFactory.java | 172 + .../edit/editormodel/EditormodelPackage.java | 1924 + .../edit/editormodel/FlabotFileModel.java | 148 + .../flabot/edit/editormodel/Folder.java | 48 + .../edit/editormodel/NodeVisualModel.java | 36 + .../flabot/edit/editormodel/Point.java | 31 + .../isistan/flabot/edit/editormodel/Util.java | 81 + .../edit/editormodel/VisualDiagramJump.java | 77 + .../flabot/edit/editormodel/VisualModel.java | 116 + .../edit/editormodel/impl/ColorImpl.java | 276 + .../impl/ConnectionBendpointImpl.java | 330 + .../impl/ConnectionVisualModelImpl.java | 629 + .../edit/editormodel/impl/DiagramImpl.java | 489 + .../edit/editormodel/impl/DimensionImpl.java | 221 + .../impl/EStringToEObjectMapEntryImpl.java | 321 + .../impl/EditormodelFactoryImpl.java | 284 + .../impl/EditormodelPackageImpl.java | 1087 + .../editormodel/impl/FlabotFileModelImpl.java | 668 + .../edit/editormodel/impl/FolderImpl.java | 414 + .../editormodel/impl/NodeVisualModelImpl.java | 457 + .../edit/editormodel/impl/PointImpl.java | 221 + .../impl/VisualDiagramJumpImpl.java | 577 + .../editormodel/impl/VisualModelImpl.java | 848 + .../util/EditormodelAdapterFactory.java | 370 + .../editormodel/util/EditormodelSwitch.java | 431 + .../util/EditormodelValidator.java | 283 + .../multipage/DependenciesPropertiesPage.java | 316 + .../multipage/EditorPerspectiveFactory.java | 44 + .../multipage/ExtensionsPropertiesPage.java | 189 + .../edit/multipage/FlabotFileDetailsPage.java | 84 + .../flabot/edit/multipage/FlabotFormPage.java | 35 + .../FlabotMultiPageContextMenuProvider.java | 61 + .../edit/multipage/FlabotMultiPageEditor.java | 599 + .../FlabotMultiPageEditorContributor.java | 136 + .../FlabotMultipagePropertiesEditor.java | 193 + .../multipage/OverviewPropertiesPage.java | 356 + .../multipage/UnsettableDirtyStateEditor.java | 16 + .../AbstractTransferDragSourceListener.java | 87 + .../AbstractTransferDropTargetListener.java | 528 + .../multipage/dnd/ComponentDragListener.java | 55 + .../multipage/dnd/ComponentDropFactory.java | 116 + .../multipage/dnd/ComponentDropListener.java | 63 + .../multipage/dnd/DiagramDragListener.java | 35 + .../multipage/dnd/DiagramDropListener.java | 57 + .../dnd/DropComponentRoleFactory.java | 48 + .../multipage/dnd/InterfaceDragListener.java | 52 + .../multipage/dnd/InterfaceDropFactory.java | 123 + .../multipage/dnd/InterfaceDropListener.java | 62 + .../edit/multipage/dnd/NativeDropRequest.java | 30 + .../edit/multipage/dnd/PortDragListener.java | 52 + .../edit/multipage/dnd/PortDropFactory.java | 115 + .../edit/multipage/dnd/PortDropListener.java | 61 + .../outline/ComponentRoleTreeEditPart.java | 88 + .../edit/outline/ComponentTreeEditPart.java | 132 + .../edit/outline/CoreModelTreeEditPart.java | 96 + .../outline/DiagramFolderTreeEditPart.java | 190 + .../edit/outline/DiagramTreeEditPart.java | 135 + .../edit/outline/FlabotFileTreeEditPart.java | 117 + .../edit/outline/FlabotModelTreeEditPart.java | 108 + .../outline/FlabotTreeEditPartFactory.java | 80 + .../outline/InterfaceLinkTreeEditPart.java | 92 + .../edit/outline/InterfaceTreeEditPart.java | 115 + .../flabot/edit/outline/PortTreeEditPart.java | 122 + .../outline/RelationshipTreeEditPart.java | 87 + .../outline/ResponsibilityTreeEditPart.java | 96 + .../edit/outline/StartPointEditPart.java | 73 + .../edit/outline/StereotypeTreeEditPart.java | 87 + .../edit/outline/UseCaseMapTreeEditPart.java | 147 + .../edit/ucmeditor/ComponentCreationTool.java | 75 + .../edit/ucmeditor/PathCreationTool.java | 33 + .../flabot/edit/ucmeditor/UCMEditor.java | 306 + .../UCMEditorContextMenuProvider.java | 137 + .../ucmeditor/UCMEditorPaletteFactory.java | 139 + .../edit/ucmeditor/actions/CopyAction.java | 86 + .../edit/ucmeditor/actions/CutAction.java | 75 + .../actions/EditComponentAction.java | 123 + .../actions/EditDynamicStubAction.java | 116 + .../actions/EditLineVisualizationAction.java | 105 + .../ucmeditor/actions/EditOrForkAction.java | 129 + .../actions/EditResponsibilityNodeAction.java | 148 + .../ucmeditor/actions/EditStubAction.java | 129 + .../ucmeditor/actions/EditTimerAction.java | 115 + .../actions/InsertDirectionArrowAction.java | 109 + .../actions/InsertDynamicStubAction.java | 130 + .../ucmeditor/actions/InsertForkAction.java | 102 + .../ucmeditor/actions/InsertJoinAction.java | 101 + .../ucmeditor/actions/InsertNodeAction.java | 150 + .../actions/InsertResponsibilityAction.java | 183 + .../ucmeditor/actions/InsertStubAction.java | 134 + .../ucmeditor/actions/InsertTimerAction.java | 161 + .../ucmeditor/actions/JoinPathsAction.java | 142 + .../ucmeditor/actions/MergePathsAction.java | 156 + .../actions/RotateForkJoinAction.java | 119 + .../actions/RotatePathNodeAction.java | 117 + ...ShowHideAllConditionDependeciesAction.java | 120 + .../commands/DeleteUCMDiagramCommand.java | 62 + ...iatedConditionToConditionEventCommand.java | 62 + .../AddAssociatedNodeToFamilyCommand.java | 42 + .../AddConditionEventToCoreModelCommand.java | 72 + .../AddConditionToResponsibilityCommand.java | 97 + ...ddConditionedStubToDynamicStubCommand.java | 72 + .../model/AddFamilyToCoreModelCommand.java | 71 + ...tedConditionFromConditionEventCommand.java | 42 + ...DeleteAssociatedNodeFromFamilyCommand.java | 42 + .../model/DeleteComponentRoleCommand.java | 76 + ...eteConditionEventFromCoreModelCommand.java | 103 + .../DeleteConditionFromFamilyCommand.java | 86 + ...eteConditionFromResponsibilityCommand.java | 97 + ...ConditionedStubFromDynamicStubCommand.java | 73 + .../commands/model/DeleteFamilyCommand.java | 83 + .../model/DeleteFamilyElementCommand.java | 42 + .../commands/model/DeleteMapCommand.java | 120 + .../commands/model/DeletePathCommand.java | 42 + .../model/DeleteResponsibilityCommand.java | 44 + ...ResponsibilityNodeAssociationsCommand.java | 79 + .../model/DeleteStubFromCoreModelCommand.java | 46 + .../model/ModifyComponentCommand.java | 73 + .../model/ModifyConditionCommand.java | 72 + .../model/ModifyConditionEventCommand.java | 73 + .../commands/model/ModifyConditionedStub.java | 65 + .../model/ModifyDynamicStubCommand.java | 106 + .../commands/model/ModifyFamilyCommand.java | 80 + .../model/ModifyForkConditionCommand.java | 71 + ...ModifyPrologCodeConditionEventCommand.java | 63 + .../commands/model/ModifyStubCommand.java | 77 + .../commands/model/ModifyTimerCommand.java | 84 + .../ModifyUseCaseMapLevelInfoCommand.java | 59 + .../commands/visual/AddComponentCommand.java | 116 + .../visual/ComponentSetConstraintCommand.java | 92 + .../visual/DeleteDynamicStubCommand.java | 33 + .../visual/DeleteEndPointCommand.java | 35 + .../commands/visual/DeleteForkCommand.java | 1 + .../commands/visual/DeleteJoinCommand.java | 220 + .../commands/visual/DeletePathCommand.java | 121 + .../visual/DeletePathNodeCommand.java | 131 + .../commands/visual/DeleteStubCommand.java | 47 + .../commands/visual/DeleteTimerCommand.java | 184 + .../DeleteVisualComponentRoleCommand.java | 73 + .../visual/DeleteWaitingPlaceCommand.java | 38 + .../visual/EditVisualizationPathCommand.java | 165 + .../visual/InsertComponentRoleCommand.java | 107 + .../visual/InsertDirectionArrowCommand.java | 218 + .../visual/InsertDynamicStubCommand.java | 109 + .../commands/visual/InsertForkCommand.java | 203 + .../commands/visual/InsertJoinCommand.java | 247 + .../commands/visual/InsertNodeCommand.java | 232 + .../visual/InsertPathNodeCommand.java | 169 + .../visual/InsertResponsibilityCommand.java | 34 + .../commands/visual/InsertStubCommand.java | 54 + .../commands/visual/InsertTimerCommand.java | 143 + .../visual/InsertWaitingPlaceCommand.java | 143 + .../commands/visual/JoinPathsCommand.java | 202 + .../commands/visual/MergePathsCommand.java | 332 + .../MoveResponsibilityOutComponent.java | 98 + .../visual/PathNodeCreateCommand.java | 220 + .../visual/PathNodeReparentCommand.java | 115 + .../visual/PathNodeSetConstraintCommand.java | 82 + .../ResponsibilityNodeReparentCommand.java | 48 + .../commands/visual/RotateFigureCommand.java | 47 + .../commands/visual/UpdateAllPathCommand.java | 135 + .../HideAllConditionsCommand.java | 54 + .../HideConditionCommand.java | 80 + .../ShowAllConditionsCommand.java | 54 + .../ShowConditionCommand.java | 176 + .../ShowHideAllConditionsCommand.java | 84 + .../ShowHideConditionsCommand.java | 131 + .../ConditionedStubSelectionDialog.java | 156 + .../dialogs/DynamicStubManagerDialog.java | 489 + .../dialogs/EditComponentDialog.java | 174 + .../dialogs/EditDependencyDialog.java | 711 + .../dialogs/EditDynamicStubDialog.java | 547 + .../dialogs/EditEventConditionDialog.java | 500 + .../dialogs/EditOrForkConditionsDialog.java | 331 + .../ucmeditor/dialogs/EditStubDialog.java | 464 + .../ucmeditor/dialogs/EditTimerDialog.java | 284 + .../edit/ucmeditor/dialogs/EventDialog.java | 360 + .../edit/ucmeditor/dialogs/FamilyDialog.java | 347 + .../dialogs/FamilyManagerDialog.java | 954 + .../ucmeditor/dialogs/UseCaseMapDialog.java | 284 + .../event/ConditionEventEditionItem.java | 22 + .../MainConditionEventEditionItem.java | 165 + ...onedStubResponsibilityNodeEditionItem.java | 24 + .../ResponsibilityEditionItem.java | 20 + .../ResponsibilityNodeEditionItem.java | 22 + .../ResponsibilityNodeVisualEditionItem.java | 22 + .../editionitem/ConditionEditionItem.java | 554 + .../ConditionedStubConditionEditionItem.java | 555 + ...tubResponsibilityEditionItemContainer.java | 39 + ...inResponsibilityNodeVisualEditionItem.java | 93 + .../ResponsibilityConditionItem.java | 528 + .../ResponsibilityEditionItemContainer.java | 38 + ...tyMaterializationEditionItemContainer.java | 39 + .../editparts/ComponentEditPart.java | 471 + .../ConditionConnectionEditPart.java | 92 + .../editparts/DependencyToColorFactory.java | 35 + .../DependencyToLineStyleFactory.java | 35 + .../editparts/DirectionArrowNodeEditPart.java | 136 + .../editparts/DynamicStubNodeEditPart.java | 248 + .../ucmeditor/editparts/ForkNodeEditPart.java | 97 + .../ucmeditor/editparts/JoinNodeEditPart.java | 152 + .../ucmeditor/editparts/PathNodeEditPart.java | 323 + .../editparts/PathSegmentEditPart.java | 80 + .../editparts/ResponsibilityNodeEditPart.java | 298 + .../ucmeditor/editparts/StubNodeEditPart.java | 272 + .../editparts/TimerNodeEditPart.java | 203 + .../editparts/UCMDiagramEditPart.java | 398 + .../editparts/UCMEditPartFactory.java | 48 + .../editparts/VisualDiagramJumpEditPart.java | 84 + .../edit/ucmeditor/figures/ActorFigure.java | 59 + .../edit/ucmeditor/figures/AgentFigure.java | 65 + .../edit/ucmeditor/figures/AndForkFigure.java | 356 + .../edit/ucmeditor/figures/AndJoinFigure.java | 368 + .../ucmeditor/figures/CurveDiagramLayer.java | 350 + .../figures/CurvePolylineConnection.java | 22 + .../figures/DirectionArrowFigure.java | 142 + .../ucmeditor/figures/DynamicStubFigure.java | 93 + .../edit/ucmeditor/figures/ObjectFigure.java | 60 + .../edit/ucmeditor/figures/OrForkFigure.java | 412 + .../edit/ucmeditor/figures/OrJoinFigure.java | 355 + .../ucmeditor/figures/PathPointFigure.java | 189 + .../edit/ucmeditor/figures/PointFactory.java | 29 + .../edit/ucmeditor/figures/ProcessFigure.java | 74 + .../figures/ResponsibilityNodeFigure.java | 76 + .../edit/ucmeditor/figures/StubFigure.java | 149 + .../figures/ThreeConnectionFigure.java | 547 + .../edit/ucmeditor/figures/TimerFigure.java | 192 + .../figures/VisualDiagramJumpFigure.java | 47 + .../ucmeditor/figures/WaitingPlaceFigure.java | 87 + .../properties/MapPropertySource.java | 128 + .../ResponsibilitiesPropertySource.java | 121 + .../properties/RolePropertySource.java | 112 + .../flabot/edit/ucmmodel/UCMDiagram.java | 20 + .../flabot/edit/ucmmodel/UcmmodelFactory.java | 46 + .../flabot/edit/ucmmodel/UcmmodelPackage.java | 237 + .../edit/ucmmodel/impl/UCMDiagramImpl.java | 332 + .../ucmmodel/impl/UcmmodelFactoryImpl.java | 122 + .../ucmmodel/impl/UcmmodelPackageImpl.java | 250 + .../ucmmodel/util/UcmmodelAdapterFactory.java | 171 + .../edit/ucmmodel/util/UcmmodelSwitch.java | 180 + .../flabot/edit/wizards/FlabotNewWizard.java | 222 + .../edit/wizards/FlabotNewWizardPage.java | 173 + .../edit/wizards/FlabotTemplateWizard.java | 196 + .../wizards/FlabotTemplateWizardPage.java | 238 + .../src/org/isistan/flabot/editormodel.ecore | 133 + .../src/org/isistan/flabot/flabot.genmodel | 281 + .../src/org/isistan/flabot/icons/Actor16.gif | Bin 0 -> 211 bytes .../src/org/isistan/flabot/icons/Actor24.gif | Bin 0 -> 263 bytes .../src/org/isistan/flabot/icons/Agent16.gif | Bin 0 -> 329 bytes .../src/org/isistan/flabot/icons/Agent24.gif | Bin 0 -> 695 bytes .../org/isistan/flabot/icons/DynStub16.gif | Bin 0 -> 105 bytes .../org/isistan/flabot/icons/DynStub24.gif | Bin 0 -> 141 bytes .../src/org/isistan/flabot/icons/Object16.gif | Bin 0 -> 363 bytes .../src/org/isistan/flabot/icons/Object24.gif | Bin 0 -> 723 bytes .../org/isistan/flabot/icons/Process16.gif | Bin 0 -> 351 bytes .../org/isistan/flabot/icons/Process24.gif | Bin 0 -> 690 bytes .../isistan/flabot/icons/ascendingOrder.gif | Bin 0 -> 915 bytes .../isistan/flabot/icons/bring_forward.gif | Bin 0 -> 938 bytes .../isistan/flabot/icons/bring_to_front.gif | Bin 0 -> 998 bytes .../src/org/isistan/flabot/icons/cd.gif | Bin 0 -> 76 bytes .../src/org/isistan/flabot/icons/close.gif | Bin 0 -> 314 bytes .../org/isistan/flabot/icons/component.gif | Bin 0 -> 92 bytes .../src/org/isistan/flabot/icons/core.gif | Bin 0 -> 1024 bytes .../isistan/flabot/icons/descendingOrder.gif | Bin 0 -> 916 bytes .../src/org/isistan/flabot/icons/export.gif | Bin 0 -> 222 bytes .../src/org/isistan/flabot/icons/grid.gif | Bin 0 -> 936 bytes .../org/isistan/flabot/icons/interface.gif | Bin 0 -> 77 bytes .../isistan/flabot/icons/interface_link.gif | Bin 0 -> 301 bytes .../src/org/isistan/flabot/icons/map.gif | Bin 0 -> 81 bytes .../src/org/isistan/flabot/icons/note.gif | Bin 0 -> 543 bytes .../org/isistan/flabot/icons/note_link.gif | Bin 0 -> 568 bytes .../org/isistan/flabot/icons/path16x16.gif | Bin 0 -> 323 bytes .../org/isistan/flabot/icons/path24x24.gif | Bin 0 -> 319 bytes .../src/org/isistan/flabot/icons/port.gif | Bin 0 -> 76 bytes .../src/org/isistan/flabot/icons/provided.gif | Bin 0 -> 73 bytes .../org/isistan/flabot/icons/relationship.gif | Bin 0 -> 327 bytes .../src/org/isistan/flabot/icons/required.gif | Bin 0 -> 78 bytes .../isistan/flabot/icons/responsibility.gif | Bin 0 -> 859 bytes .../src/org/isistan/flabot/icons/role.gif | Bin 0 -> 92 bytes .../isistan/flabot/icons/send_backward.gif | Bin 0 -> 933 bytes .../org/isistan/flabot/icons/send_to_back.gif | Bin 0 -> 955 bytes .../org/isistan/flabot/icons/stereotype.gif | Bin 0 -> 173 bytes .../src/org/isistan/flabot/icons/timer.png | Bin 0 -> 2311 bytes .../src/org/isistan/flabot/icons/timer_2.png | Bin 0 -> 10735 bytes .../src/org/isistan/flabot/icons/ucm.gif | Bin 0 -> 860 bytes .../org/isistan/flabot/messages/Messages.java | 33 + .../flabot/messages/messages.properties | 807 + .../messages/util/ArgumentsReplacer.java | 131 + .../flabot/messages/util/MessagesUtil.java | 36 + .../util/SpecialCharacterConversion.java | 19 + .../util/SpecialCharactersConverter.java | 109 + .../src/org/isistan/flabot/ucmmodel.ecore | 12 + .../flabot/util/DefualtValidatorSorter.java | 59 + .../flabot/util/EObjectIdGenerator.java | 58 + .../isistan/flabot/util/ImageSaveUtil.java | 265 + .../isistan/flabot/util/SorterToTable.java | 155 + .../flabot/util/ValidatorSorterTable.java | 37 + .../util/consistency/ConsistencyManager.java | 37 + .../flabot/util/consistency/Constraint.java | 30 + .../GroupBasedConsistencyManagerImpl.java | 157 + .../consistency/GroupBasedDiagnostician.java | 56 + .../edition/AbstractCompositeEditionItem.java | 125 + .../util/edition/AbstractEditionItem.java | 37 + .../util/edition/CompositeEditionItem.java | 28 + .../edition/CompositeEditionItemStatus.java | 36 + .../flabot/util/edition/DataAdapter.java | 11 + .../flabot/util/edition/EditionItem.java | 80 + .../edition/EditionItemChangeListener.java | 12 + .../util/edition/EditionItemStatus.java | 115 + .../util/edition/IdentityDataAdapter.java | 9 + .../util/edition/SingleEditionItemStatus.java | 47 + .../edition/tab/CompositeEditionTabItem.java | 91 + .../util/edition/tab/EditionTabItem.java | 30 + .../edition/tab/EditionTabItemContainer.java | 98 + .../tab/EditionTabItemContainerImpl.java | 23 + .../util/edition/tab/EditionTabItemImpl.java | 50 + .../edition/tab/EditionTabItemLoader.java | 121 + .../flabot/util/locator/ComponentLocator.java | 25 + .../locator/ComponentLocatorException.java | 28 + .../util/locator/ComponentLocatorManager.java | 45 + .../ExtensionLoaderComponentLocator.java | 76 + .../impl/ComponentLocatorManagerImpl.java | 58 + org.isistan.flabot/trace.config | 6 + org.isistan.javalog/.classpath | 10 + org.isistan.javalog/.project | 28 + org.isistan.javalog/build.properties | 3 + org.isistan.javalog/lib/JavaLog/BUGREPORT | 65 + org.isistan.javalog/lib/JavaLog/COPYING | 340 + org.isistan.javalog/lib/JavaLog/ChangeLog | 501 + org.isistan.javalog/lib/JavaLog/ClassPath.bat | 4 + .../lib/JavaLog/ClassPath.bat.tmpl | 4 + org.isistan.javalog/lib/JavaLog/ClassPath.sh | 42 + .../lib/JavaLog/ClassPath.sh.tmpl | 44 + .../lib/JavaLog/Compatibility.txt | 124 + org.isistan.javalog/lib/JavaLog/Credits | 14 + org.isistan.javalog/lib/JavaLog/Developers | 23 + .../lib/JavaLog/GenericLogicModule.java | 381 + org.isistan.javalog/lib/JavaLog/JavaLog.bat | 59 + .../lib/JavaLog/JavaLog.bat.tmpl | 59 + org.isistan.javalog/lib/JavaLog/JavaLog.bmp | Bin 0 -> 102670 bytes org.isistan.javalog/lib/JavaLog/JavaLog.gif | Bin 0 -> 10720 bytes org.isistan.javalog/lib/JavaLog/JavaLog.jpg | Bin 0 -> 8645 bytes org.isistan.javalog/lib/JavaLog/JavaLog.sh | 78 + .../lib/JavaLog/JavaLog.sh.tmpl | 76 + org.isistan.javalog/lib/JavaLog/LICENCE | 224 + .../JavaLog/LICENSE.jakarta-servletapi-3.2.3 | 58 + org.isistan.javalog/lib/JavaLog/Makefile | 192 + org.isistan.javalog/lib/JavaLog/TODO | 56 + .../lib/JavaLog/Uninstaller/uninstaller.jar | Bin 0 -> 65628 bytes org.isistan.javalog/lib/JavaLog/announce | 24 + .../classes/JavaLog/init/Arithmetic.pl | 11 + .../classes/JavaLog/init/Communication.pl | 48 + .../classes/JavaLog/init/ControlPredicates.pl | 20 + .../JavaLog/classes/JavaLog/init/DataBase.pl | 49 + .../JavaLog/classes/JavaLog/init/DiffLists.pl | 10 + .../JavaLog/classes/JavaLog/init/Equality.pl | 7 + .../lib/JavaLog/classes/JavaLog/init/Flags.pl | 74 + .../classes/JavaLog/init/InputOutput.pl | 122 + .../classes/JavaLog/init/ListOperations.pl | 18 + .../classes/JavaLog/init/Miscellaneous.pl | 51 + .../JavaLog/classes/JavaLog/init/Mobility.pl | 4 + .../classes/JavaLog/init/PrologException.pl | 5 + .../classes/JavaLog/init/Reflection.pl | 6 + .../classes/JavaLog/init/ServerList.pl | 27 + .../JavaLog/classes/JavaLog/init/TermComp.pl | 39 + .../classes/JavaLog/init/TermPredicates.pl | 80 + .../JavaLog/classes/JavaLog/init/TermType.pl | 13 + .../classes/JavaLog/init/UnixCommands.pl | 6 + .../lib/JavaLog/doc++2javadoc.pl | 10 + .../lib/JavaLog/doc/JavaLog.lyx | 2139 + .../lib/JavaLog/doc/JavaLogAPI.pro | 8 + .../lib/JavaLog/doc/README-viewer.html | 88 + .../JavaLog/doc/api-docs/JavaLog/Brain.html | 761 + .../JavaLog/BrainInvalidCapability.html | 229 + .../doc/api-docs/JavaLog/EngineThread.html | 312 + .../api-docs/JavaLog/IndexedLogicModule.html | 373 + .../JavaLog/doc/api-docs/JavaLog/JMain.html | 1004 + .../JavaLog/doc/api-docs/JavaLog/Loader.html | 225 + .../doc/api-docs/JavaLog/LogicKnowledge.html | 372 + .../doc/api-docs/JavaLog/LogicModule.html | 1155 + .../api-docs/JavaLog/LogicModuleIterator.html | 385 + .../JavaLog/doc/api-docs/JavaLog/Main.html | 938 + .../doc/api-docs/JavaLog/NUnionFind.html | 411 + .../api-docs/JavaLog/NotifierLogicModule.html | 342 + .../doc/api-docs/JavaLog/ObjToken.html | 313 + .../doc/api-docs/JavaLog/Permissions.html | 354 + .../JavaLog/doc/api-docs/JavaLog/PlAtom.html | 516 + .../doc/api-docs/JavaLog/PlAtomic.html | 419 + .../doc/api-docs/JavaLog/PlBuiltIn.html | 327 + .../doc/api-docs/JavaLog/PlBuiltInClause.html | 460 + .../doc/api-docs/JavaLog/PlClause.html | 629 + .../doc/api-docs/JavaLog/PlEngine.html | 1445 + .../doc/api-docs/JavaLog/PlException.html | 228 + .../JavaLog/doc/api-docs/JavaLog/PlFVar.html | 453 + .../JavaLog/doc/api-docs/JavaLog/PlInt.html | 365 + .../doc/api-docs/JavaLog/PlJavaObj.html | 447 + .../JavaLog/doc/api-docs/JavaLog/PlList.html | 744 + .../api-docs/JavaLog/PlLocalLogicModule.html | 577 + .../doc/api-docs/JavaLog/PlLogicModule.html | 575 + .../JavaLog/doc/api-docs/JavaLog/PlMath.html | 909 + .../doc/api-docs/JavaLog/PlNumber.html | 340 + .../doc/api-docs/JavaLog/PlObject.html | 475 + .../JavaLog/doc/api-docs/JavaLog/PlOp.html | 536 + .../doc/api-docs/JavaLog/PlOpTable.html | 296 + .../doc/api-docs/JavaLog/PlParseError.html | 227 + .../doc/api-docs/JavaLog/PlParseWarn.html | 227 + .../doc/api-docs/JavaLog/PlParser.html | 606 + .../doc/api-docs/JavaLog/PlREngine.html | 315 + .../JavaLog/doc/api-docs/JavaLog/PlReal.html | 381 + .../doc/api-docs/JavaLog/PlRemoteEngine.html | 198 + .../api-docs/JavaLog/PlRemoteLogicModule.html | 499 + .../api-docs/JavaLog/PlRestrictedClause.html | 412 + .../JavaLog/PlRestrictedLogicModule.html | 193 + .../api-docs/JavaLog/PlRuntimeException.html | 227 + .../doc/api-docs/JavaLog/PlStackElement.html | 738 + .../doc/api-docs/JavaLog/PlStruct.html | 513 + .../doc/api-docs/JavaLog/PlStructArgs.html | 978 + .../api-docs/JavaLog/PlTypeCompatibility.html | 238 + .../JavaLog/doc/api-docs/JavaLog/PlUVar.html | 596 + .../JavaLog/doc/api-docs/JavaLog/PlVar.html | 375 + .../doc/api-docs/JavaLog/PlVarTable.html | 554 + .../doc/api-docs/JavaLog/Preprocessor.html | 240 + .../doc/api-docs/JavaLog/PrologDatabase.html | 319 + .../JavaLog/PrologRemoteDatabase.html | 359 + .../api-docs/JavaLog/RemoteLogicModule.html | 430 + .../JavaLog/doc/api-docs/JavaLog/Scanner.html | 1063 + .../api-docs/JavaLog/ScannerTokenTypes.html | 616 + .../doc/api-docs/JavaLog/StateMemento.html | 299 + .../doc/api-docs/JavaLog/UnionFind.html | 382 + .../doc/api-docs/JavaLog/UnionFind2.html | 522 + .../doc/api-docs/JavaLog/UnionFindJLog.html | 690 + .../doc/api-docs/JavaLog/aip/CAutomata.html | 381 + .../api-docs/JavaLog/aip/package-frame.html | 26 + .../api-docs/JavaLog/aip/package-summary.html | 104 + .../api-docs/JavaLog/aip/package-tree.html | 102 + .../api-docs/JavaLog/classpath/ClassFile.html | 379 + .../api-docs/JavaLog/classpath/ClassPath.html | 285 + .../JavaLog/classpath/package-frame.html | 28 + .../JavaLog/classpath/package-summary.html | 108 + .../JavaLog/classpath/package-tree.html | 102 + .../JavaLog/debugger/DebugDispatcher.html | 403 + .../JavaLog/debugger/DebugEngineThread.html | 300 + .../JavaLog/debugger/DebugThreadState.html | 468 + .../JavaLog/debugger/DebugThreadsState.html | 472 + .../api-docs/JavaLog/debugger/Debugger.html | 611 + .../JavaLog/debugger/EventListener.html | 178 + .../JavaLog/debugger/PlDebugEngine.html | 732 + .../JavaLog/debugger/ThreadStateEvent.html | 333 + .../JavaLog/debugger/ThreadStateListener.html | 177 + .../debugger/dinterface/AlternativesView.html | 573 + .../debugger/dinterface/HtmlBrowser.html | 615 + .../debugger/dinterface/HtmlPanel.html | 614 + .../debugger/dinterface/package-frame.html | 30 + .../debugger/dinterface/package-summary.html | 115 + .../debugger/dinterface/package-tree.html | 125 + .../JavaLog/debugger/events/DebugEvent.html | 367 + .../JavaLog/debugger/events/EngineState.html | 308 + .../debugger/events/EngineThreadState.html | 258 + .../JavaLog/debugger/events/Events.html | 399 + .../events/HotpointChangedListener.html | 175 + .../debugger/events/SpypointState.html | 241 + .../debugger/events/package-frame.html | 45 + .../debugger/events/package-summary.html | 143 + .../JavaLog/debugger/events/package-tree.html | 107 + .../JavaLog/debugger/gui/AboutWindow.html | 489 + .../JavaLog/debugger/gui/ActionButton.html | 750 + .../debugger/gui/ActionToggleButton.html | 717 + .../JavaLog/debugger/gui/ActionToolBar.html | 613 + .../debugger/gui/BreakpointPopupMenu.html | 576 + .../debugger/gui/BreakpointsTreeListener.html | 260 + .../JavaLog/debugger/gui/DebugRunner.html | 625 + .../JavaLog/debugger/gui/DebugView.html | 722 + .../JavaLog/debugger/gui/DebuggerGUI.html | 948 + .../debugger/gui/EngineThreadsTree.html | 294 + .../debugger/gui/HotpointsCellRenderer.html | 239 + .../JavaLog/debugger/gui/HotpointsTree.html | 717 + .../debugger/gui/ThreadsStateView.html | 644 + .../debugger/gui/ThreadsTreeCellRenderer.html | 238 + .../debugger/gui/actions/AboutAction.html | 250 + .../debugger/gui/actions/ActivateAction.html | 250 + .../actions/AddFunctorArityPointAction.html | 250 + .../gui/actions/AddFunctorPointAction.html | 250 + .../debugger/gui/actions/AddGroupAction.html | 250 + .../debugger/gui/actions/CallAction.html | 250 + .../debugger/gui/actions/ConsultAction.html | 250 + .../gui/actions/DeactivateAction.html | 250 + .../actions/EnableThreadTracingAction.html | 279 + .../gui/actions/FindClauseAction.html | 250 + .../debugger/gui/actions/FindPortAction.html | 250 + .../debugger/gui/actions/LeapAction.html | 250 + .../debugger/gui/actions/ListingAction.html | 250 + .../gui/actions/PrologFileFilter.html | 242 + .../debugger/gui/actions/ReconsultAction.html | 250 + .../debugger/gui/actions/RedoAction.html | 250 + .../gui/actions/RemovePointAction.html | 250 + .../debugger/gui/actions/SaveAction.html | 250 + .../debugger/gui/actions/SaveAsAction.html | 250 + .../debugger/gui/actions/SkipAction.html | 250 + .../debugger/gui/actions/StepAction.html | 250 + .../debugger/gui/actions/StopAction.html | 252 + .../debugger/gui/actions/package-frame.html | 68 + .../debugger/gui/actions/package-summary.html | 188 + .../debugger/gui/actions/package-tree.html | 107 + .../JavaLog/debugger/gui/package-frame.html | 52 + .../JavaLog/debugger/gui/package-summary.html | 163 + .../JavaLog/debugger/gui/package-tree.html | 166 + .../debugger/hotpoints/FindClause.html | 233 + .../debugger/hotpoints/FunctorArityPoint.html | 302 + .../debugger/hotpoints/FunctorPoint.html | 302 + .../JavaLog/debugger/hotpoints/Hotpoint.html | 516 + .../debugger/hotpoints/HotpointsGroup.html | 520 + .../debugger/hotpoints/HotpointsManager.html | 842 + .../debugger/hotpoints/RootHotpoint.html | 197 + .../debugger/hotpoints/SimpleHotpoint.html | 505 + .../debugger/hotpoints/SkipBreakpoint.html | 233 + .../debugger/hotpoints/StepBreakpoint.html | 231 + .../debugger/hotpoints/package-frame.html | 44 + .../debugger/hotpoints/package-summary.html | 146 + .../debugger/hotpoints/package-tree.html | 111 + .../JavaLog/debugger/package-frame.html | 51 + .../JavaLog/debugger/package-summary.html | 154 + .../JavaLog/debugger/package-tree.html | 119 + .../JavaLog/extension/Arithmetic.html | 389 + .../JavaLog/extension/BuiltInExtensions.html | 277 + .../JavaLog/extension/ControlPredicates.html | 245 + .../api-docs/JavaLog/extension/DataBase.html | 659 + .../api-docs/JavaLog/extension/Equality.html | 283 + .../JavaLog/extension/InputOutput.html | 815 + .../JavaLog/extension/ListOperations.html | 267 + .../JavaLog/extension/Miscellaneous.html | 457 + .../api-docs/JavaLog/extension/Mobility.html | 285 + .../JavaLog/extension/Reflection.html | 325 + .../JavaLog/extension/ServerList.html | 361 + .../JavaLog/extension/TermPredicates.html | 357 + .../api-docs/JavaLog/extension/TermTypes.html | 405 + .../JavaLog/extension/UnixCommand.html | 284 + .../JavaLog/extension/package-frame.html | 52 + .../JavaLog/extension/package-summary.html | 157 + .../JavaLog/extension/package-tree.html | 105 + .../JavaLog/mobility/AgentManager.html | 284 + .../api-docs/JavaLog/mobility/BrainLet.html | 544 + .../api-docs/JavaLog/mobility/BrainState.html | 518 + .../JavaLog/mobility/BrainThread.html | 319 + .../JavaLog/mobility/FetchProtocol.html | 355 + .../api-docs/JavaLog/mobility/HostStack.html | 267 + .../JavaLog/mobility/HostStackElement.html | 391 + .../JavaLog/mobility/HttpMessage.html | 285 + .../JavaLog/mobility/LogicalNetworkInfo.html | 313 + .../doc/api-docs/JavaLog/mobility/MARlet.html | 389 + .../JavaLog/mobility/MarletMessenger.html | 389 + .../JavaLog/mobility/MobileBrainEngine.html | 385 + .../api-docs/JavaLog/mobility/MovePolicy.html | 219 + .../mobility/MovilogParseException.html | 207 + .../JavaLog/mobility/MovilogParser.html | 326 + .../JavaLog/mobility/MultipleEnumeration.html | 246 + .../api-docs/JavaLog/mobility/Observable.html | 248 + .../api-docs/JavaLog/mobility/Observer.html | 170 + .../JavaLog/mobility/PNSBroadCastPolicy.html | 284 + .../mobility/PNSSimpleBroadCastPolicy.html | 318 + .../doc/api-docs/JavaLog/mobility/Pair.html | 260 + .../api-docs/JavaLog/mobility/Protocol.html | 329 + .../JavaLog/mobility/ProtocolNameServer.html | 393 + .../JavaLog/mobility/ProtocolRegistry.html | 282 + .../mobility/QueryExecutionThread.html | 297 + .../JavaLog/mobility/ResponsePool.html | 268 + .../JavaLog/mobility/VectorEnumerator.html | 244 + .../JavaLog/mobility/VisitedMovePolicy.html | 221 + .../JavaLog/mobility/WrapperDatabase.html | 517 + .../JavaLog/mobility/package-frame.html | 100 + .../JavaLog/mobility/package-summary.html | 246 + .../JavaLog/mobility/package-tree.html | 143 + .../doc/api-docs/JavaLog/package-frame.html | 162 + .../doc/api-docs/JavaLog/package-summary.html | 365 + .../doc/api-docs/JavaLog/package-tree.html | 210 + .../JavaLog/reflection/ArgInvocator.html | 256 + .../reflection/ConstructorInvocator.html | 313 + .../reflection/DefTypeCompatibility.html | 238 + .../JavaLog/reflection/FieldInvocator.html | 312 + .../JavaLog/reflection/Invocator.html | 363 + .../JavaLog/reflection/MethodInvocator.html | 306 + .../JavaLog/reflection/TypeCompatibility.html | 245 + .../JavaLog/reflection/package-frame.html | 38 + .../JavaLog/reflection/package-summary.html | 128 + .../JavaLog/reflection/package-tree.html | 108 + .../doc/api-docs/JavaLog/testParser.html | 241 + .../JavaLog/visitor/DereferenceVisitor.html | 318 + .../JavaLog/visitor/FreezerVisitor.html | 327 + .../JavaLog/visitor/ToListVisitor.html | 327 + .../JavaLog/visitor/TransformerVisitor.html | 468 + .../doc/api-docs/JavaLog/visitor/Visitor.html | 418 + .../JavaLog/visitor/package-frame.html | 34 + .../JavaLog/visitor/package-summary.html | 124 + .../JavaLog/visitor/package-tree.html | 106 + .../doc/api-docs/allclasses-frame.html | 387 + .../JavaLog/doc/api-docs/deprecated-list.html | 91 + .../lib/JavaLog/doc/api-docs/help-doc.html | 146 + .../lib/JavaLog/doc/api-docs/index-all.html | 5004 ++ .../lib/JavaLog/doc/api-docs/index.html | 25 + .../JavaLog/doc/api-docs/overview-frame.html | 60 + .../doc/api-docs/overview-summary.html | 148 + .../JavaLog/doc/api-docs/overview-tree.html | 319 + .../lib/JavaLog/doc/api-docs/package-list | 13 + .../lib/JavaLog/doc/api-docs/packages.html | 26 + .../JavaLog/doc/api-docs/serialized-form.html | 4135 ++ .../lib/JavaLog/doc/api-docs/stylesheet.css | 29 + .../lib/JavaLog/doc/images/image002.jpg | Bin 0 -> 14990 bytes .../lib/JavaLog/doc/images/image004.jpg | Bin 0 -> 15217 bytes .../lib/JavaLog/doc/images/image006.jpg | Bin 0 -> 29822 bytes .../lib/JavaLog/doc/images/image008.jpg | Bin 0 -> 19280 bytes .../lib/JavaLog/doc/images/image010.jpg | Bin 0 -> 29330 bytes .../lib/JavaLog/doc/images/image012.jpg | Bin 0 -> 27623 bytes .../lib/JavaLog/doc/images/image014.jpg | Bin 0 -> 23523 bytes .../lib/JavaLog/doc/images/image016.jpg | Bin 0 -> 20188 bytes .../lib/JavaLog/doc/references.txt | 27 + .../examples/JavaLog/CommerceAgent.javalog | 54 + .../JavaLog/examples/JavaLog/Person.javalog | 60 + .../lib/JavaLog/examples/JavaLog/Send.java | 17 + .../lib/JavaLog/examples/JavaLog/Send2.java | 42 + .../JavaLog/examples/JavaLog/Send2.javalog | 34 + .../JavaLog/examples/JavaLog/SimpleEmbed.java | 59 + .../examples/JavaLog/SimpleEmbed.javalog | 43 + .../JavaLog/examples/JavaLog/SimpleTest.java | 18 + .../lib/JavaLog/examples/JavaLog/Test.java | 84 + .../lib/JavaLog/examples/JavaLog/Test.javalog | 66 + .../lib/JavaLog/examples/JavaLog/pract1.pl | 66 + .../lib/JavaLog/examples/brainlets/Test.java | 330 + .../JavaLog/examples/brainlets/explicit.pl | 16 + .../JavaLog/examples/brainlets/implicit.pl | 9 + .../lib/JavaLog/examples/brainlets/marlet.dsk | 30 + .../JavaLog/examples/brainlets/marlet.html | 25 + .../lib/JavaLog/examples/brainlets/marlet.jpr | 92 + .../lib/JavaLog/examples/brainlets/run.bat | 4 + .../examples/brainlets/searcher.properties | 6 + .../lib/JavaLog/examples/movilog/Readme.txt | 9 + .../lib/JavaLog/examples/movilog/Sample.txt | 11 + .../JavaLog/examples/movilog/predicates.doc | Bin 0 -> 35840 bytes .../lib/JavaLog/examples/pl/boyer.pl | 401 + .../lib/JavaLog/examples/pl/browse.pl | 119 + .../lib/JavaLog/examples/pl/cal.pl | 171 + .../lib/JavaLog/examples/pl/chat_parser.pl | 1184 + .../lib/JavaLog/examples/pl/crypt.pl | 100 + .../lib/JavaLog/examples/pl/ham.pl | 87 + .../lib/JavaLog/examples/pl/meta_qsort.pl | 146 + .../lib/JavaLog/examples/pl/nand.pl | 553 + .../lib/JavaLog/examples/pl/poly_10.pl | 112 + .../lib/JavaLog/examples/pl/qsort.pl | 34 + .../lib/JavaLog/examples/pl/queens.pl | 93 + .../lib/JavaLog/examples/pl/queensn.pl | 79 + .../lib/JavaLog/examples/pl/query.pl | 98 + .../lib/JavaLog/examples/pl/reducer.pl | 395 + .../lib/JavaLog/examples/pl/sendmore.pl | 70 + .../lib/JavaLog/examples/pl/zebra.pl | 57 + org.isistan.javalog/lib/JavaLog/help.html | 383 + org.isistan.javalog/lib/JavaLog/install.xml | 52 + .../lib/JavaLog/java-getopt-1.0.9.jar | Bin 0 -> 53875 bytes .../lib/JavaLog/java-getopt-1.0.9.tar.gz | Bin 0 -> 43683 bytes .../lib/JavaLog/lib/COPYING.LIB.gnu-regexp | 504 + .../lib/JavaLog/lib/RIGHTS.antlr | 32 + .../lib/JavaLog/lib/antlrall.jar | Bin 0 -> 277655 bytes .../lib/JavaLog/lib/gnu-regexp-1.1.4.jar | Bin 0 -> 30163 bytes .../lib/JavaLog/lib/jgl3.1.0.jar | Bin 0 -> 963513 bytes .../lib/JavaLog/lib/servlet.jar | Bin 0 -> 78350 bytes org.isistan.javalog/lib/JavaLog/logo.gif | Bin 0 -> 10720 bytes .../persistent/PersistentLogicModule.java | 595 + .../PersistentLogicModuleIterator.java | 68 + .../JavaLog/persistent/PersistentVisitor.java | 87 + .../JavaLog/persistent/ResultSetIterator.java | 98 + .../lib/JavaLog/persistent/Seriate.java | 111 + .../lib/JavaLog/resources/about.gif | Bin 0 -> 797 bytes .../lib/JavaLog/resources/addgroup.gif | Bin 0 -> 294 bytes .../lib/JavaLog/resources/breakpoint.gif | Bin 0 -> 120 bytes .../lib/JavaLog/resources/call.gif | Bin 0 -> 247 bytes .../lib/JavaLog/resources/find-clause.gif | Bin 0 -> 1250 bytes .../lib/JavaLog/resources/find-port.gif | Bin 0 -> 754 bytes .../lib/JavaLog/resources/group-close.gif | Bin 0 -> 139 bytes .../lib/JavaLog/resources/group-open.gif | Bin 0 -> 171 bytes .../lib/JavaLog/resources/j1.gif | Bin 0 -> 1573 bytes .../lib/JavaLog/resources/j2.gif | Bin 0 -> 1436 bytes .../lib/JavaLog/resources/j3.gif | Bin 0 -> 1437 bytes .../lib/JavaLog/resources/j4.gif | Bin 0 -> 1442 bytes .../lib/JavaLog/resources/j5.gif | Bin 0 -> 1450 bytes .../lib/JavaLog/resources/javalog.html | 26 + .../lib/JavaLog/resources/javalogdeb.html | 25 + .../lib/JavaLog/resources/leap.gif | Bin 0 -> 199 bytes .../lib/JavaLog/resources/listing.gif | Bin 0 -> 1304 bytes .../lib/JavaLog/resources/open.gif | Bin 0 -> 462 bytes .../lib/JavaLog/resources/reconsult.gif | Bin 0 -> 1244 bytes .../lib/JavaLog/resources/redo.gif | Bin 0 -> 243 bytes .../lib/JavaLog/resources/save.gif | Bin 0 -> 266 bytes .../lib/JavaLog/resources/saveas.gif | Bin 0 -> 348 bytes .../lib/JavaLog/resources/skip.gif | Bin 0 -> 279 bytes .../lib/JavaLog/resources/step.gif | Bin 0 -> 279 bytes .../lib/JavaLog/resources/stop.gif | Bin 0 -> 777 bytes .../lib/JavaLog/resources/thread-locked.gif | Bin 0 -> 138 bytes .../lib/JavaLog/resources/thread-running.gif | Bin 0 -> 132 bytes .../lib/JavaLog/resources/thread-step.gif | Bin 0 -> 175 bytes .../JavaLog/resources/threadstracing-off.gif | Bin 0 -> 249 bytes .../JavaLog/resources/threadstracing-on.gif | Bin 0 -> 264 bytes .../lib/JavaLog/resources/tracepoint.gif | Bin 0 -> 156 bytes org.isistan.javalog/lib/JavaLog/servlet.jar | Bin 0 -> 40813 bytes org.isistan.javalog/lib/JavaLog/setup.bat | 1 + org.isistan.javalog/lib/JavaLog/setup.sh | 2 + org.isistan.javalog/lib/JavaLog/sun.cfg | 112 + org.isistan.javalog/lib/JavaLog/t | 1 + org.isistan.javalog/lib/JavaLog/test.pl | 559 + .../lib/JavaLog/test/aop12-5i.pl | 10 + .../lib/JavaLog/test/aop14-1i.pl | 15 + .../lib/JavaLog/test/aop14-1ii.pl | 87 + .../lib/JavaLog/test/aop14-1iv.pl | 53 + .../lib/JavaLog/test/aop14-3i.pl | 9 + .../lib/JavaLog/test/aop15-1i.pl | 13 + .../lib/JavaLog/test/aop15-1ii.pl | 28 + .../lib/JavaLog/test/aop15-1iii.pl | 10 + .../lib/JavaLog/test/aop17-1i.pl | 5 + .../lib/JavaLog/test/aop18-1ii.pl | 36 + .../lib/JavaLog/test/aop18-1iii.pl | 78 + .../lib/JavaLog/test/aop18-1iv.pl | 36 + .../lib/JavaLog/test/aop18-1v.pl | 33 + .../lib/JavaLog/test/aop2-1-3.pl | 10 + .../lib/JavaLog/test/aop2-1.pl | 17 + .../lib/JavaLog/test/aop2-2.pl | 20 + .../lib/JavaLog/test/aop3-1i.pl | 19 + .../lib/JavaLog/test/aop3-1iv.pl | 8 + .../lib/JavaLog/test/aop3-1v.pl | 13 + .../lib/JavaLog/test/aop3-1v1.pl | 6 + .../lib/JavaLog/test/aop3-1vi.pl | 6 + .../lib/JavaLog/test/aop3-1vii.pl | 6 + .../lib/JavaLog/test/aop3-2ii.pl | 10 + .../lib/JavaLog/test/aop3-2iii.pl | 6 + .../lib/JavaLog/test/aop3-2v.pl | 12 + .../lib/JavaLog/test/aop3-3i.pl | 7 + .../lib/JavaLog/test/aop3-3ii.pl | 6 + .../lib/JavaLog/test/aop3-3iii.pl | 20 + .../lib/JavaLog/test/aop3-3iv.pl | 38 + .../lib/JavaLog/test/aop3-3v.pl | 23 + .../lib/JavaLog/test/aop3-4i.pl | 7 + .../lib/JavaLog/test/aop3-4ii.pl | 9 + .../lib/JavaLog/test/aop3-4iii.pl | 23 + .../lib/JavaLog/test/aop3-4iv.pl | 12 + .../lib/JavaLog/test/aop7-5i.pl | 22 + .../lib/JavaLog/test/aop8-2i.pl | 5 + .../lib/JavaLog/test/aop8-2ii.pl | 6 + .../lib/JavaLog/test/aop8-3i.pl | 7 + .../lib/JavaLog/test/aop8-3ii.pl | 8 + .../lib/JavaLog/test/aop8-3iii.pl | 5 + .../lib/JavaLog/test/aop8-3iv.pl | 7 + .../lib/JavaLog/test/aop8-3v.pl | 11 + .../lib/JavaLog/test/aop8-3vi.pl | 10 + .../lib/JavaLog/test/aop8-3vii.pl | 7 + .../lib/JavaLog/test/aop8-3viii.pl | 8 + .../lib/JavaLog/test/aop9-1i.pl | 13 + .../lib/JavaLog/test/aop9-2iv.pl | 16 + .../lib/JavaLog/test/inriasuite.tar.gz | Bin 0 -> 26646 bytes .../lib/JavaLog/test/inriasuite/README | 122 + .../lib/JavaLog/test/inriasuite/abolish | 18 + .../lib/JavaLog/test/inriasuite/and | 9 + .../lib/JavaLog/test/inriasuite/arg | 32 + .../lib/JavaLog/test/inriasuite/arith_diff | 10 + .../lib/JavaLog/test/inriasuite/arith_eq | 10 + .../lib/JavaLog/test/inriasuite/arith_gt | 10 + .../lib/JavaLog/test/inriasuite/arith_gt= | 10 + .../lib/JavaLog/test/inriasuite/arith_lt | 10 + .../lib/JavaLog/test/inriasuite/arith_lt= | 10 + .../lib/JavaLog/test/inriasuite/asserta | 18 + .../lib/JavaLog/test/inriasuite/assertz | 16 + .../lib/JavaLog/test/inriasuite/atom | 12 + .../lib/JavaLog/test/inriasuite/atom_chars | 19 + .../lib/JavaLog/test/inriasuite/atom_codes | 15 + .../lib/JavaLog/test/inriasuite/atom_concat | 19 + .../lib/JavaLog/test/inriasuite/atom_length | 12 + .../lib/JavaLog/test/inriasuite/atomic | 11 + .../lib/JavaLog/test/inriasuite/bagof | 31 + .../lib/JavaLog/test/inriasuite/call | 19 + .../JavaLog/test/inriasuite/catch-and-throw | 16 + .../lib/JavaLog/test/inriasuite/char_code | 13 + .../lib/JavaLog/test/inriasuite/clause | 16 + .../lib/JavaLog/test/inriasuite/compound | 12 + .../lib/JavaLog/test/inriasuite/copy_term | 25 + .../lib/JavaLog/test/inriasuite/current_input | 5 + .../JavaLog/test/inriasuite/current_output | 5 + .../JavaLog/test/inriasuite/current_predicate | 16 + .../test/inriasuite/current_prolog_flag | 12 + .../lib/JavaLog/test/inriasuite/cut | 9 + .../lib/JavaLog/test/inriasuite/fail | 15 + .../lib/JavaLog/test/inriasuite/file_manip | 8 + .../lib/JavaLog/test/inriasuite/findall | 22 + .../lib/JavaLog/test/inriasuite/float | 10 + .../lib/JavaLog/test/inriasuite/functor | 41 + .../lib/JavaLog/test/inriasuite/functor-bis | 41 + .../lib/JavaLog/test/inriasuite/halt | 7 + .../lib/JavaLog/test/inriasuite/if-then | 10 + .../lib/JavaLog/test/inriasuite/if-then-else | 12 + .../JavaLog/test/inriasuite/inriasuite.obp | Bin 0 -> 58012 bytes .../lib/JavaLog/test/inriasuite/inriasuite.pl | 836 + .../lib/JavaLog/test/inriasuite/integer | 10 + .../lib/JavaLog/test/inriasuite/is | 11 + .../lib/JavaLog/test/inriasuite/junk | 0 .../lib/JavaLog/test/inriasuite/nonvar | 11 + .../lib/JavaLog/test/inriasuite/not_provable | 12 + .../lib/JavaLog/test/inriasuite/not_unify | 15 + .../lib/JavaLog/test/inriasuite/number | 10 + .../lib/JavaLog/test/inriasuite/number_chars | 22 + .../lib/JavaLog/test/inriasuite/number_codes | 19 + .../lib/JavaLog/test/inriasuite/once | 11 + .../lib/JavaLog/test/inriasuite/or | 9 + .../lib/JavaLog/test/inriasuite/repeat | 5 + .../lib/JavaLog/test/inriasuite/retract | 10 + .../JavaLog/test/inriasuite/set_prolog_flag | 21 + .../lib/JavaLog/test/inriasuite/setof | 36 + .../lib/JavaLog/test/inriasuite/sub_atom | 30 + .../lib/JavaLog/test/inriasuite/t_foo.pl | 4 + .../lib/JavaLog/test/inriasuite/term_diff | 13 + .../lib/JavaLog/test/inriasuite/term_eq | 12 + .../lib/JavaLog/test/inriasuite/term_gt | 12 + .../lib/JavaLog/test/inriasuite/term_gt= | 12 + .../lib/JavaLog/test/inriasuite/term_lt | 12 + .../lib/JavaLog/test/inriasuite/term_lt= | 12 + .../lib/JavaLog/test/inriasuite/true | 7 + .../lib/JavaLog/test/inriasuite/unify | 18 + .../lib/JavaLog/test/prologsuite.tar.gz | Bin 0 -> 23951 bytes .../lib/JavaLog/test/sands.htm | 1225 + .../lib/JavaLog/test/suites.html | 64 + .../lib/JavaLog/test/vanilla/README | 56 + .../lib/JavaLog/test/vanilla/als_v.pro | 95 + .../lib/JavaLog/test/vanilla/als_v1.pl | 68 + .../lib/JavaLog/test/vanilla/byteio.tmp | 0 .../lib/JavaLog/test/vanilla/charconv.tmp | 1 + .../lib/JavaLog/test/vanilla/charfile.txt | 4 + .../lib/JavaLog/test/vanilla/chario.tmp | 0 .../lib/JavaLog/test/vanilla/codeio.tmp | 0 .../lib/JavaLog/test/vanilla/db.pl | 51 + .../lib/JavaLog/test/vanilla/direct2.pl | 20 + .../lib/JavaLog/test/vanilla/gnuprolog_v.pl | 94 + .../lib/JavaLog/test/vanilla/include.pl | 6 + .../lib/JavaLog/test/vanilla/notes | 8 + .../lib/JavaLog/test/vanilla/opfile.tmp | 1 + .../lib/JavaLog/test/vanilla/out.tmp | 0 .../lib/JavaLog/test/vanilla/outchar.txt | 1 + .../lib/JavaLog/test/vanilla/peekbyte.bin | 0 .../lib/JavaLog/test/vanilla/peekchar.txt | 0 .../lib/JavaLog/test/vanilla/peekfile.bin | 0 .../lib/JavaLog/test/vanilla/peekfile.txt | 0 .../lib/JavaLog/test/vanilla/sec74.pl | 117 + .../lib/JavaLog/test/vanilla/sec78.pl | 195 + .../lib/JavaLog/test/vanilla/sec810.pl | 109 + .../lib/JavaLog/test/vanilla/sec811.pl | 437 + .../lib/JavaLog/test/vanilla/sec812.pl | 468 + .../lib/JavaLog/test/vanilla/sec813.pl | 213 + .../lib/JavaLog/test/vanilla/sec814.pl | 290 + .../lib/JavaLog/test/vanilla/sec815.pl | 155 + .../lib/JavaLog/test/vanilla/sec816.pl | 357 + .../lib/JavaLog/test/vanilla/sec817.pl | 137 + .../lib/JavaLog/test/vanilla/sec82.pl | 102 + .../lib/JavaLog/test/vanilla/sec83.pl | 76 + .../lib/JavaLog/test/vanilla/sec84.pl | 51 + .../lib/JavaLog/test/vanilla/sec85.pl | 207 + .../lib/JavaLog/test/vanilla/sec86.pl | 43 + .../lib/JavaLog/test/vanilla/sec87.pl | 67 + .../lib/JavaLog/test/vanilla/sec88.pl | 96 + .../lib/JavaLog/test/vanilla/sec89.pl | 187 + .../lib/JavaLog/test/vanilla/sec91.pl | 102 + .../lib/JavaLog/test/vanilla/sec92.pl | 47 + .../lib/JavaLog/test/vanilla/sec93.pl | 84 + .../lib/JavaLog/test/vanilla/sec94.pl | 131 + .../lib/JavaLog/test/vanilla/termfile.txt | 2 + .../lib/JavaLog/test/vanilla/termio.tmp | 1 + .../lib/JavaLog/test/vanilla/utils_so.pl | 281 + .../lib/JavaLog/test/vanilla/validn.out | 1 + .../lib/JavaLog/test/vanilla/validn.txt | 49 + .../lib/JavaLog/test/vanilla/van1.pl | 93 + .../lib/JavaLog/test/vanilla/vanilla.pl | 92 + org.isistan.javalog/lib/JavaLog/web.xml | 36 + .../web/WEB-INF/classes/JavaLog/Brain.class | Bin 0 -> 5898 bytes .../JavaLog/BrainInvalidCapability.class | Bin 0 -> 805 bytes .../web/WEB-INF/classes/JavaLog/Command.class | Bin 0 -> 1449 bytes .../classes/JavaLog/CompressionObject.class | Bin 0 -> 808 bytes .../classes/JavaLog/EngineThread.class | Bin 0 -> 2536 bytes .../WEB-INF/classes/JavaLog/FindObject.class | Bin 0 -> 1127 bytes .../classes/JavaLog/IndexedLogicModule.class | Bin 0 -> 3434 bytes .../WEB-INF/classes/JavaLog/ItemCommand.class | Bin 0 -> 846 bytes .../WEB-INF/classes/JavaLog/JCommand.class | Bin 0 -> 1455 bytes .../classes/JavaLog/JItemCommand.class | Bin 0 -> 1062 bytes .../web/WEB-INF/classes/JavaLog/JMain.class | Bin 0 -> 7708 bytes .../web/WEB-INF/classes/JavaLog/Loader.class | Bin 0 -> 1682 bytes .../classes/JavaLog/LogicKnowledge.class | Bin 0 -> 2550 bytes .../WEB-INF/classes/JavaLog/LogicModule.class | Bin 0 -> 11624 bytes .../classes/JavaLog/LogicModuleIterator.class | Bin 0 -> 2598 bytes .../web/WEB-INF/classes/JavaLog/Main.class | Bin 0 -> 7350 bytes .../WEB-INF/classes/JavaLog/NUnionFind.class | Bin 0 -> 3132 bytes .../classes/JavaLog/NotifierLogicModule.class | Bin 0 -> 2856 bytes .../WEB-INF/classes/JavaLog/ObjToken.class | Bin 0 -> 1240 bytes .../WEB-INF/classes/JavaLog/Permissions.class | Bin 0 -> 1897 bytes .../web/WEB-INF/classes/JavaLog/PlAtom.class | Bin 0 -> 2710 bytes .../WEB-INF/classes/JavaLog/PlAtomic.class | Bin 0 -> 1265 bytes .../WEB-INF/classes/JavaLog/PlBuiltIn.class | Bin 0 -> 4997 bytes .../classes/JavaLog/PlBuiltInClause.class | Bin 0 -> 3065 bytes .../WEB-INF/classes/JavaLog/PlClause.class | Bin 0 -> 3678 bytes .../JavaLog/PlEngine$FileInStack.class | Bin 0 -> 1673 bytes .../WEB-INF/classes/JavaLog/PlEngine.class | Bin 0 -> 16919 bytes .../WEB-INF/classes/JavaLog/PlException.class | Bin 0 -> 416 bytes .../web/WEB-INF/classes/JavaLog/PlFVar.class | Bin 0 -> 1599 bytes .../web/WEB-INF/classes/JavaLog/PlInt.class | Bin 0 -> 1350 bytes .../WEB-INF/classes/JavaLog/PlJavaObj.class | Bin 0 -> 2850 bytes .../web/WEB-INF/classes/JavaLog/PlList.class | Bin 0 -> 6634 bytes .../classes/JavaLog/PlLocalLogicModule.class | Bin 0 -> 2494 bytes .../classes/JavaLog/PlLogicModule.class | Bin 0 -> 2291 bytes .../web/WEB-INF/classes/JavaLog/PlMath.class | Bin 0 -> 6769 bytes .../WEB-INF/classes/JavaLog/PlNumber.class | Bin 0 -> 557 bytes .../WEB-INF/classes/JavaLog/PlObject.class | Bin 0 -> 1324 bytes .../web/WEB-INF/classes/JavaLog/PlOp.class | Bin 0 -> 2706 bytes .../WEB-INF/classes/JavaLog/PlOpTable.class | Bin 0 -> 3035 bytes .../classes/JavaLog/PlParseError.class | Bin 0 -> 696 bytes .../WEB-INF/classes/JavaLog/PlParseWarn.class | Bin 0 -> 695 bytes .../WEB-INF/classes/JavaLog/PlParser.class | Bin 0 -> 13595 bytes .../WEB-INF/classes/JavaLog/PlREngine.class | Bin 0 -> 2724 bytes .../classes/JavaLog/PlREngine_Stub.class | Bin 0 -> 2139 bytes .../web/WEB-INF/classes/JavaLog/PlReal.class | Bin 0 -> 1461 bytes .../classes/JavaLog/PlRemoteEngine.class | Bin 0 -> 310 bytes .../classes/JavaLog/PlRemoteLogicModule.class | Bin 0 -> 2891 bytes .../classes/JavaLog/PlRestrictedClause.class | Bin 0 -> 1627 bytes .../JavaLog/PlRestrictedLogicModule.class | Bin 0 -> 338 bytes .../classes/JavaLog/PlStackElement.class | Bin 0 -> 4231 bytes .../WEB-INF/classes/JavaLog/PlStruct.class | Bin 0 -> 1560 bytes .../classes/JavaLog/PlStructArgs.class | Bin 0 -> 9187 bytes .../classes/JavaLog/PlTypeCompatibility.class | Bin 0 -> 1966 bytes .../web/WEB-INF/classes/JavaLog/PlUVar.class | Bin 0 -> 3371 bytes .../web/WEB-INF/classes/JavaLog/PlVar.class | Bin 0 -> 1062 bytes .../WEB-INF/classes/JavaLog/PlVarTable.class | Bin 0 -> 2544 bytes .../classes/JavaLog/PlainLogicModule.class | Bin 0 -> 2783 bytes .../classes/JavaLog/Preprocessor.class | Bin 0 -> 9607 bytes .../classes/JavaLog/PrologDatabase.class | Bin 0 -> 580 bytes .../JavaLog/PrologRemoteDatabase.class | Bin 0 -> 758 bytes .../classes/JavaLog/RemoteLogicModule.class | Bin 0 -> 1978 bytes .../JavaLog/RemoteLogicModule_Stub.class | Bin 0 -> 4363 bytes .../web/WEB-INF/classes/JavaLog/Scanner.class | Bin 0 -> 19023 bytes .../classes/JavaLog/ScannerTokenTypes.class | Bin 0 -> 1631 bytes .../classes/JavaLog/StateMemento.class | Bin 0 -> 1233 bytes .../WEB-INF/classes/JavaLog/UFObject.class | Bin 0 -> 761 bytes .../WEB-INF/classes/JavaLog/UnionFind.class | Bin 0 -> 476 bytes .../WEB-INF/classes/JavaLog/UnionFind2.class | Bin 0 -> 3163 bytes .../classes/JavaLog/UnionFindJLog.class | Bin 0 -> 3548 bytes .../WEB-INF/classes/JavaLog/UnionObject.class | Bin 0 -> 802 bytes .../classes/JavaLog/aip/CAutomata.class | Bin 0 -> 4024 bytes .../classes/JavaLog/classpath/ClassFile.class | Bin 0 -> 2658 bytes .../classes/JavaLog/classpath/ClassPath.class | Bin 0 -> 4872 bytes .../JavaLog/classpath/ClassPathEntry.class | Bin 0 -> 1200 bytes .../JavaLog/communication/AbstractEvent.class | Bin 0 -> 1340 bytes .../communication/AbstractMessage.class | Bin 0 -> 2076 bytes .../JavaLog/communication/Blackboard.class | Bin 0 -> 2841 bytes .../communication/BlackboardEvent.class | Bin 0 -> 1511 bytes .../communication/BlackboardListener.class | Bin 0 -> 252 bytes .../communication/BlackboardMessage.class | Bin 0 -> 1263 bytes .../JavaLog/communication/BrainletId.class | Bin 0 -> 1208 bytes .../JavaLog/communication/BrainletProxy.class | Bin 0 -> 2131 bytes .../communication/BrainletRegistry.class | Bin 0 -> 2561 bytes .../communication/CommunicationManager.class | Bin 0 -> 5556 bytes .../CommunicationTest$QueryThread.class | Bin 0 -> 1181 bytes .../communication/CommunicationTest.class | Bin 0 -> 4254 bytes .../communication/EventHandlingPolicy.class | Bin 0 -> 602 bytes .../communication/FCFSEventHandling.class | Bin 0 -> 639 bytes .../communication/MessageDispatcher.class | Bin 0 -> 4546 bytes .../communication/MessageHandleThread.class | Bin 0 -> 1629 bytes .../JavaLog/communication/MessageLock.class | Bin 0 -> 735 bytes .../JavaLog/communication/MessageSender.class | Bin 0 -> 340 bytes .../communication/MessageVisitor.class | Bin 0 -> 465 bytes .../communication/MessageWaitingPool.class | Bin 0 -> 3261 bytes .../JavaLog/communication/MobilityEvent.class | Bin 0 -> 928 bytes .../communication/MobilityListener.class | Bin 0 -> 251 bytes .../communication/MovilogEventHandler.class | Bin 0 -> 6233 bytes .../communication/MovilogMessage.class | Bin 0 -> 2115 bytes .../communication/MovilogMessageEvent.class | Bin 0 -> 1284 bytes .../MovilogMessageListener.class | Bin 0 -> 244 bytes .../communication/MovilogMobilityEvent.class | Bin 0 -> 786 bytes .../communication/PriorityEventHandling.class | Bin 0 -> 927 bytes .../communication/PrologMessageVisitor.class | Bin 0 -> 3442 bytes .../JavaLog/communication/RoleManager.class | Bin 0 -> 4958 bytes .../communication/RoleUpdateInfo.class | Bin 0 -> 1092 bytes .../communication/RoleUpdatingPolicy.class | Bin 0 -> 1409 bytes .../communication/SimpleRolePolicy.class | Bin 0 -> 2056 bytes .../JavaLog/debugger/DebugDispatcher.class | Bin 0 -> 2903 bytes .../JavaLog/debugger/DebugEngineThread.class | Bin 0 -> 1646 bytes .../JavaLog/debugger/DebugThreadState.class | Bin 0 -> 2965 bytes .../JavaLog/debugger/DebugThreadsState.class | Bin 0 -> 4449 bytes .../classes/JavaLog/debugger/Debugger.class | Bin 0 -> 5043 bytes .../JavaLog/debugger/EventListener.class | Bin 0 -> 188 bytes .../JavaLog/debugger/PlDebugEngine.class | Bin 0 -> 7414 bytes .../JavaLog/debugger/ResourceLoader.class | Bin 0 -> 1585 bytes .../JavaLog/debugger/ThreadStateEvent.class | Bin 0 -> 960 bytes .../debugger/ThreadStateListener.class | Bin 0 -> 206 bytes .../dinterface/AlternativesView$1.class | Bin 0 -> 812 bytes .../dinterface/AlternativesView.class | Bin 0 -> 2110 bytes .../debugger/dinterface/HtmlBrowser$1.class | Bin 0 -> 784 bytes .../debugger/dinterface/HtmlBrowser.class | Bin 0 -> 1891 bytes .../dinterface/HtmlPanel$PageLoader.class | Bin 0 -> 1702 bytes .../debugger/dinterface/HtmlPanel.class | Bin 0 -> 4524 bytes .../JavaLog/debugger/events/DebugEvent.class | Bin 0 -> 1638 bytes .../JavaLog/debugger/events/EngineState.class | Bin 0 -> 1538 bytes .../debugger/events/EngineThreadState.class | Bin 0 -> 971 bytes .../JavaLog/debugger/events/Events.class | Bin 0 -> 1043 bytes .../events/HotpointChangedListener.class | Bin 0 -> 217 bytes .../debugger/events/SpypointState.class | Bin 0 -> 690 bytes .../JavaLog/debugger/gui/AboutWindow$1.class | Bin 0 -> 750 bytes .../JavaLog/debugger/gui/AboutWindow$2.class | Bin 0 -> 747 bytes .../JavaLog/debugger/gui/AboutWindow.class | Bin 0 -> 9353 bytes .../JavaLog/debugger/gui/ActionButton.class | Bin 0 -> 1866 bytes .../debugger/gui/ActionToggleButton.class | Bin 0 -> 1708 bytes .../JavaLog/debugger/gui/ActionToolBar.class | Bin 0 -> 1336 bytes .../debugger/gui/BreakpointPopupMenu.class | Bin 0 -> 602 bytes .../gui/BreakpointsTreeListener.class | Bin 0 -> 1674 bytes .../JavaLog/debugger/gui/DebugRunner.class | Bin 0 -> 2488 bytes .../JavaLog/debugger/gui/DebugView.class | Bin 0 -> 3367 bytes .../JavaLog/debugger/gui/DebuggerGUI$1.class | Bin 0 -> 749 bytes .../JavaLog/debugger/gui/DebuggerGUI$2.class | Bin 0 -> 720 bytes .../JavaLog/debugger/gui/DebuggerGUI$3.class | Bin 0 -> 753 bytes .../JavaLog/debugger/gui/DebuggerGUI$4.class | Bin 0 -> 753 bytes .../JavaLog/debugger/gui/DebuggerGUI$5.class | Bin 0 -> 753 bytes .../JavaLog/debugger/gui/DebuggerGUI$6.class | Bin 0 -> 753 bytes .../JavaLog/debugger/gui/DebuggerGUI$7.class | Bin 0 -> 769 bytes .../JavaLog/debugger/gui/DebuggerGUI.class | Bin 0 -> 20813 bytes .../debugger/gui/EngineThreadsTree.class | Bin 0 -> 1878 bytes .../debugger/gui/HotpointsCellRenderer.class | Bin 0 -> 1736 bytes .../JavaLog/debugger/gui/HotpointsTree.class | Bin 0 -> 801 bytes .../debugger/gui/ThreadsStateView.class | Bin 0 -> 3781 bytes .../gui/ThreadsTreeCellRenderer.class | Bin 0 -> 1786 bytes .../debugger/gui/actions/AboutAction.class | Bin 0 -> 916 bytes .../debugger/gui/actions/ActivateAction.class | Bin 0 -> 1272 bytes .../actions/AddFunctorArityPointAction.class | Bin 0 -> 2815 bytes .../gui/actions/AddFunctorPointAction.class | Bin 0 -> 2566 bytes .../debugger/gui/actions/AddGroupAction.class | Bin 0 -> 2429 bytes .../debugger/gui/actions/CallAction.class | Bin 0 -> 2056 bytes .../debugger/gui/actions/ConsultAction.class | Bin 0 -> 2223 bytes .../gui/actions/DeactivateAction.class | Bin 0 -> 1284 bytes .../actions/EnableThreadTracingAction.class | Bin 0 -> 1950 bytes .../gui/actions/FindClauseAction.class | Bin 0 -> 1466 bytes .../debugger/gui/actions/FindPortAction.class | Bin 0 -> 957 bytes .../debugger/gui/actions/LeapAction.class | Bin 0 -> 1083 bytes .../debugger/gui/actions/ListingAction.class | Bin 0 -> 1699 bytes .../gui/actions/PrologFileFilter.class | Bin 0 -> 837 bytes .../gui/actions/ReconsultAction.class | Bin 0 -> 2240 bytes .../debugger/gui/actions/RedoAction.class | Bin 0 -> 1240 bytes .../gui/actions/RemovePointAction.class | Bin 0 -> 1467 bytes .../debugger/gui/actions/SaveAction.class | Bin 0 -> 993 bytes .../debugger/gui/actions/SaveAsAction.class | Bin 0 -> 1024 bytes .../debugger/gui/actions/SkipAction.class | Bin 0 -> 1071 bytes .../debugger/gui/actions/StepAction.class | Bin 0 -> 1071 bytes .../debugger/gui/actions/StopAction.class | Bin 0 -> 899 bytes .../debugger/hotpoints/FindClause.class | Bin 0 -> 1863 bytes .../hotpoints/FunctorArityPoint.class | Bin 0 -> 2192 bytes .../debugger/hotpoints/FunctorPoint.class | Bin 0 -> 1938 bytes .../JavaLog/debugger/hotpoints/Hotpoint.class | Bin 0 -> 2228 bytes .../debugger/hotpoints/HotpointsGroup.class | Bin 0 -> 3160 bytes .../debugger/hotpoints/HotpointsManager.class | Bin 0 -> 6548 bytes .../debugger/hotpoints/RootHotpoint.class | Bin 0 -> 489 bytes .../debugger/hotpoints/SimpleHotpoint.class | Bin 0 -> 2514 bytes .../debugger/hotpoints/SkipBreakpoint.class | Bin 0 -> 1637 bytes .../debugger/hotpoints/StepBreakpoint.class | Bin 0 -> 1575 bytes .../classes/JavaLog/examples/Send.class | Bin 0 -> 847 bytes .../JavaLog/exception/CalculationError.class | Bin 0 -> 645 bytes .../JavaLog/exception/DomainError.class | Bin 0 -> 704 bytes .../exception/PlRuntimeException.class | Bin 0 -> 823 bytes .../JavaLog/exception/SyntaxError.class | Bin 0 -> 459 bytes .../classes/JavaLog/exception/TypeError.class | Bin 0 -> 696 bytes .../JavaLog/extension/Arithmetic.class | Bin 0 -> 2577 bytes .../JavaLog/extension/BuiltInExtensions.class | Bin 0 -> 756 bytes .../JavaLog/extension/Communication.class | Bin 0 -> 10317 bytes .../JavaLog/extension/ControlPredicates.class | Bin 0 -> 521 bytes .../classes/JavaLog/extension/DataBase.class | Bin 0 -> 10863 bytes .../classes/JavaLog/extension/Equality.class | Bin 0 -> 949 bytes .../extension/IO/PlBinaryInputStream.class | Bin 0 -> 667 bytes .../extension/IO/PlBinaryOutputStream.class | Bin 0 -> 643 bytes .../extension/IO/PlFileBInputStream.class | Bin 0 -> 2134 bytes .../extension/IO/PlFileBOutputStream.class | Bin 0 -> 2012 bytes .../extension/IO/PlFileTInputStream.class | Bin 0 -> 2700 bytes .../extension/IO/PlFileTOutputStream.class | Bin 0 -> 2381 bytes .../JavaLog/extension/IO/PlInputStream.class | Bin 0 -> 664 bytes .../JavaLog/extension/IO/PlOutputStream.class | Bin 0 -> 668 bytes .../extension/IO/PlRemoteBInputStream.class | Bin 0 -> 1694 bytes .../extension/IO/PlRemoteBOutputStream.class | Bin 0 -> 1600 bytes .../extension/IO/PlRemoteTInputStream.class | Bin 0 -> 2244 bytes .../extension/IO/PlRemoteTOutputStream.class | Bin 0 -> 1953 bytes .../JavaLog/extension/IO/PlStream.class | Bin 0 -> 1172 bytes .../extension/IO/PlTextInputStream.class | Bin 0 -> 751 bytes .../extension/IO/PlTextOutputStream.class | Bin 0 -> 729 bytes .../JavaLog/extension/IO/StandardErr.class | Bin 0 -> 862 bytes .../JavaLog/extension/IO/StandardIn.class | Bin 0 -> 2080 bytes .../JavaLog/extension/IO/StandardOut.class | Bin 0 -> 1669 bytes .../classes/JavaLog/extension/IO/Stream.class | Bin 0 -> 888 bytes .../JavaLog/extension/InputOutput.class | Bin 0 -> 32693 bytes .../JavaLog/extension/ListOperations.class | Bin 0 -> 1705 bytes .../JavaLog/extension/Miscellaneous.class | Bin 0 -> 7758 bytes .../classes/JavaLog/extension/Mobility.class | Bin 0 -> 5143 bytes .../JavaLog/extension/PrologException.class | Bin 0 -> 4638 bytes .../JavaLog/extension/Reflection.class | Bin 0 -> 3534 bytes .../JavaLog/extension/ServerList.class | Bin 0 -> 3607 bytes .../classes/JavaLog/extension/TermComp.class | Bin 0 -> 2699 bytes .../JavaLog/extension/TermPredicates.class | Bin 0 -> 2903 bytes .../classes/JavaLog/extension/TermTypes.class | Bin 0 -> 2047 bytes .../JavaLog/extension/UnixCommand.class | Bin 0 -> 2381 bytes .../classes/JavaLog/init/Arithmetic.pl | 11 + .../classes/JavaLog/init/Communication.pl | 48 + .../classes/JavaLog/init/ControlPredicates.pl | 20 + .../WEB-INF/classes/JavaLog/init/DataBase.pl | 49 + .../WEB-INF/classes/JavaLog/init/DiffLists.pl | 10 + .../WEB-INF/classes/JavaLog/init/Equality.pl | 7 + .../web/WEB-INF/classes/JavaLog/init/Flags.pl | 74 + .../classes/JavaLog/init/InputOutput.pl | 122 + .../classes/JavaLog/init/ListOperations.pl | 18 + .../classes/JavaLog/init/Miscellaneous.pl | 52 + .../WEB-INF/classes/JavaLog/init/Mobility.pl | 4 + .../classes/JavaLog/init/PrologException.pl | 5 + .../classes/JavaLog/init/Reflection.pl | 6 + .../classes/JavaLog/init/ServerList.pl | 27 + .../WEB-INF/classes/JavaLog/init/TermComp.pl | 39 + .../classes/JavaLog/init/TermPredicates.pl | 80 + .../WEB-INF/classes/JavaLog/init/TermType.pl | 13 + .../classes/JavaLog/init/UnixCommands.pl | 6 + .../JavaLog/mobility/AgentManager.class | Bin 0 -> 4347 bytes .../classes/JavaLog/mobility/BrainLet.class | Bin 0 -> 12209 bytes .../classes/JavaLog/mobility/BrainState.class | Bin 0 -> 2969 bytes .../JavaLog/mobility/BrainThread.class | Bin 0 -> 4027 bytes .../mobility/BrainletTest$QueryThread.class | Bin 0 -> 1126 bytes .../JavaLog/mobility/BrainletTest.class | Bin 0 -> 4254 bytes .../JavaLog/mobility/FetchProtocol.class | Bin 0 -> 3531 bytes .../classes/JavaLog/mobility/GetIP.class | Bin 0 -> 2066 bytes .../classes/JavaLog/mobility/HostStack.class | Bin 0 -> 1325 bytes .../JavaLog/mobility/HostStackElement.class | Bin 0 -> 3473 bytes .../JavaLog/mobility/HttpMessage.class | Bin 0 -> 3462 bytes .../JavaLog/mobility/LogicalNetworkInfo.class | Bin 0 -> 981 bytes .../classes/JavaLog/mobility/MARlet.class | Bin 0 -> 17789 bytes .../mobility/MARletRegistrationListener.class | Bin 0 -> 3885 bytes .../MARletRegistrationListenerMC.class | Bin 0 -> 4518 bytes .../JavaLog/mobility/MarletMessenger.class | Bin 0 -> 6921 bytes .../JavaLog/mobility/MobileBrainEngine.class | Bin 0 -> 4734 bytes .../classes/JavaLog/mobility/MovePolicy.class | Bin 0 -> 371 bytes .../mobility/MovilogParseException.class | Bin 0 -> 389 bytes .../JavaLog/mobility/MovilogParser.class | Bin 0 -> 3752 bytes .../mobility/MultipleEnumeration.class | Bin 0 -> 1108 bytes .../classes/JavaLog/mobility/Observable.class | Bin 0 -> 341 bytes .../classes/JavaLog/mobility/Observer.class | Bin 0 -> 184 bytes .../JavaLog/mobility/PNSBroadCastPolicy.class | Bin 0 -> 513 bytes .../mobility/PNSSimpleBroadCastPolicy.class | Bin 0 -> 2636 bytes .../classes/JavaLog/mobility/Pair.class | Bin 0 -> 914 bytes .../classes/JavaLog/mobility/Protocol.class | Bin 0 -> 2492 bytes .../JavaLog/mobility/ProtocolNameServer.class | Bin 0 -> 5812 bytes .../JavaLog/mobility/ProtocolRegistry.class | Bin 0 -> 2450 bytes .../mobility/QueryExecutionThread.class | Bin 0 -> 2819 bytes .../JavaLog/mobility/ResponsePool.class | Bin 0 -> 1535 bytes .../JavaLog/mobility/VectorEnumerator.class | Bin 0 -> 1151 bytes .../mobility/VirtualHostAddressFinder.class | Bin 0 -> 1496 bytes .../JavaLog/mobility/VisitedMovePolicy.class | Bin 0 -> 1348 bytes .../JavaLog/mobility/WrapperDatabase.class | Bin 0 -> 3085 bytes .../services/BrainletViewingServices.class | Bin 0 -> 5309 bytes .../mobility/services/MARletServices.class | Bin 0 -> 368 bytes .../mobility/services/ServiceProvider.class | Bin 0 -> 137 bytes .../services/SuspendedAgentsManager.class | Bin 0 -> 4960 bytes .../JavaLog/mobility/viewer/EchoInfo.class | Bin 0 -> 983 bytes .../mobility/viewer/EchoPacketReceiver.class | Bin 0 -> 1679 bytes .../mobility/viewer/EchoRequester.class | Bin 0 -> 4576 bytes .../JavaLog/mobility/viewer/EchoServer.class | Bin 0 -> 2901 bytes .../viewer/RegistrationListener.class | Bin 0 -> 2931 bytes .../mobility/viewer/ViewerResources.class | Bin 0 -> 4283 bytes .../dispatcher/DistributionManager.class | Bin 0 -> 2676 bytes .../viewer/dispatcher/EventDispatcher.class | Bin 0 -> 3688 bytes .../viewer/dispatcher/EventListener.class | Bin 0 -> 208 bytes .../dispatcher/EventSelectionPolicy.class | Bin 0 -> 445 bytes .../viewer/dispatcher/FIFOPolicy.class | Bin 0 -> 675 bytes .../mobility/viewer/dispatcher/Peer.class | Bin 0 -> 2683 bytes .../dispatcher/RemoteEventListener.class | Bin 0 -> 3509 bytes .../dispatcher/SocketEventListener.class | Bin 0 -> 1757 bytes .../host/HostDistributionManager.class | Bin 0 -> 2481 bytes .../host/HostSocketDistributionManager.class | Bin 0 -> 4831 bytes .../dispatcher/viewer/SocketReceiver.class | Bin 0 -> 3357 bytes .../SocketViewerDistributionManager.class | Bin 0 -> 5299 bytes .../viewer/ViewerDistributionManager.class | Bin 0 -> 1598 bytes .../viewer/events/BrainletCreated.class | Bin 0 -> 1026 bytes .../viewer/events/BrainletEventState.class | Bin 0 -> 622 bytes .../viewer/events/BrainletMoved.class | Bin 0 -> 750 bytes .../mobility/viewer/events/Event.class | Bin 0 -> 2058 bytes .../viewer/events/EventIdentifiers.class | Bin 0 -> 1251 bytes .../viewer/events/QueryResolved.class | Bin 0 -> 749 bytes .../viewer/events/SentFailedState.class | Bin 0 -> 676 bytes .../viewer/model/BrainletExecutionState.class | Bin 0 -> 1001 bytes .../mobility/viewer/model/BrainletInfo.class | Bin 0 -> 6183 bytes .../mobility/viewer/model/Capability.class | Bin 0 -> 3351 bytes .../viewer/model/CapabilityInfo.class | Bin 0 -> 764 bytes .../model/ExtendedMarletMessenger.class | Bin 0 -> 3552 bytes .../mobility/viewer/model/Finalized.class | Bin 0 -> 1061 bytes .../JavaLog/mobility/viewer/model/Host.class | Bin 0 -> 7859 bytes .../mobility/viewer/model/HostInfo.class | Bin 0 -> 1880 bytes .../viewer/model/LogicalNetwork.class | Bin 0 -> 3017 bytes .../viewer/model/MessengersPool.class | Bin 0 -> 2163 bytes .../mobility/viewer/model/QueryResult.class | Bin 0 -> 774 bytes .../mobility/viewer/model/Running.class | Bin 0 -> 1025 bytes .../mobility/viewer/model/Session.class | Bin 0 -> 2411 bytes .../mobility/viewer/model/Suspended.class | Bin 0 -> 2099 bytes .../viewer/resources/machines.properties | 7 + .../viewer/ui/BrainletJTabbedPane$1.class | Bin 0 -> 793 bytes .../viewer/ui/BrainletJTabbedPane$2.class | Bin 0 -> 832 bytes .../viewer/ui/BrainletJTabbedPane.class | Bin 0 -> 4553 bytes .../mobility/viewer/ui/BrainletPane.class | Bin 0 -> 8760 bytes .../viewer/ui/BrainletPopupMenu$1.class | Bin 0 -> 817 bytes .../viewer/ui/BrainletPopupMenu$2.class | Bin 0 -> 817 bytes .../viewer/ui/BrainletPopupMenu.class | Bin 0 -> 2393 bytes .../mobility/viewer/ui/BrainletTreeNode.class | Bin 0 -> 3602 bytes .../viewer/ui/CapabilityJTabbedPane$1.class | Bin 0 -> 805 bytes .../viewer/ui/CapabilityJTabbedPane$2.class | Bin 0 -> 844 bytes .../viewer/ui/CapabilityJTabbedPane.class | Bin 0 -> 3518 bytes .../mobility/viewer/ui/CapabilityPane.class | Bin 0 -> 4423 bytes .../viewer/ui/CapabilityTreeNode.class | Bin 0 -> 3029 bytes .../mobility/viewer/ui/HostJTree.class | Bin 0 -> 4031 bytes .../viewer/ui/HostPropertiesView$1.class | Bin 0 -> 823 bytes .../viewer/ui/HostPropertiesView$2.class | Bin 0 -> 825 bytes .../viewer/ui/HostPropertiesView$3.class | Bin 0 -> 823 bytes .../viewer/ui/HostPropertiesView.class | Bin 0 -> 7789 bytes .../mobility/viewer/ui/HostTreeNode.class | Bin 0 -> 4144 bytes .../viewer/ui/HostTreeNodeChild.class | Bin 0 -> 4150 bytes .../viewer/ui/LogicalNetworkTreeNode.class | Bin 0 -> 3958 bytes .../mobility/viewer/ui/MovilogJTree.class | Bin 0 -> 1993 bytes .../mobility/viewer/ui/MovilogNode.class | Bin 0 -> 228 bytes .../viewer/ui/MovilogTreeCellRenderer.class | Bin 0 -> 827 bytes .../mobility/viewer/ui/OrdinaryTreeNode.class | Bin 0 -> 1786 bytes .../mobility/viewer/ui/SentFailed.class | Bin 0 -> 715 bytes .../mobility/viewer/ui/SessionNode.class | Bin 0 -> 2514 bytes .../JavaLog/mobility/viewer/ui/ShowPane.class | Bin 0 -> 1429 bytes .../mobility/viewer/ui/StackTracePane.class | Bin 0 -> 3258 bytes .../JavaLog/mobility/viewer/ui/UI$1.class | Bin 0 -> 692 bytes .../JavaLog/mobility/viewer/ui/UI$2.class | Bin 0 -> 731 bytes .../JavaLog/mobility/viewer/ui/UI$3.class | Bin 0 -> 693 bytes .../JavaLog/mobility/viewer/ui/UI$4.class | Bin 0 -> 695 bytes .../JavaLog/mobility/viewer/ui/UI.class | Bin 0 -> 8912 bytes .../mobility/viewer/ui/UpdatingObject.class | Bin 0 -> 863 bytes .../mobility/viewer/ui/ViewLoader.class | Bin 0 -> 2355 bytes .../persistent/GenericLogicModule.class | Bin 0 -> 7191 bytes .../GenericLogicModuleIterator.class | Bin 0 -> 1618 bytes .../JavaLog/reflection/ArgInvocator.class | Bin 0 -> 684 bytes .../reflection/ConstructorInvocator.class | Bin 0 -> 1719 bytes .../reflection/DefTypeCompatibility.class | Bin 0 -> 755 bytes .../JavaLog/reflection/FieldInvocator.class | Bin 0 -> 1406 bytes .../JavaLog/reflection/Invocator.class | Bin 0 -> 2110 bytes .../JavaLog/reflection/MethodInvocator.class | Bin 0 -> 2243 bytes .../reflection/TypeCompatibility.class | Bin 0 -> 598 bytes .../WEB-INF/classes/JavaLog/testParser.class | Bin 0 -> 1378 bytes .../JavaLog/visitor/AbsToStringVisitor.class | Bin 0 -> 959 bytes .../JavaLog/visitor/CompareVisitor.class | Bin 0 -> 1719 bytes .../JavaLog/visitor/DereferenceVisitor.class | Bin 0 -> 2116 bytes .../JavaLog/visitor/FreezerVisitor.class | Bin 0 -> 2187 bytes .../visitor/GreaterOrEqualThanVisitor.class | Bin 0 -> 1759 bytes .../JavaLog/visitor/GreaterVisitor.class | Bin 0 -> 1740 bytes .../JavaLog/visitor/IdenticalVisitor.class | Bin 0 -> 1668 bytes .../visitor/LessOrEqualThanVisitor.class | Bin 0 -> 2364 bytes .../JavaLog/visitor/LessThanVisitor.class | Bin 0 -> 2360 bytes .../JavaLog/visitor/NotIdenticalVisitor.class | Bin 0 -> 1806 bytes .../JavaLog/visitor/ToListVisitor.class | Bin 0 -> 1637 bytes .../JavaLog/visitor/TransformerVisitor.class | Bin 0 -> 1779 bytes .../classes/JavaLog/visitor/Visitor.class | Bin 0 -> 926 bytes .../web/WEB-INF/classes/setup/Complete.class | Bin 0 -> 2131 bytes .../web/WEB-INF/classes/setup/Copyright.class | Bin 0 -> 2748 bytes .../WEB-INF/classes/setup/Directories.class | Bin 0 -> 3484 bytes .../classes/setup/DirectoryChooser.class | Bin 0 -> 2621 bytes .../web/WEB-INF/classes/setup/MainFrame.class | Bin 0 -> 2477 bytes .../WEB-INF/classes/setup/PropDumper.class | Bin 0 -> 2483 bytes .../web/WEB-INF/classes/setup/Setup$1.class | Bin 0 -> 600 bytes .../web/WEB-INF/classes/setup/Setup.class | Bin 0 -> 3865 bytes .../WEB-INF/classes/setup/SetupDialog.class | Bin 0 -> 5558 bytes .../classes/setup/SetupProperties.class | Bin 0 -> 2440 bytes .../web/WEB-INF/classes/setup/Welcome.class | Bin 0 -> 2449 bytes .../WEB-INF/classes/setup/setup.properties | 51 + .../web/WEB-INF/lib/COPYING.LIB.gnu-regexp | 504 + .../lib/JavaLog/web/WEB-INF/lib/RIGHTS.antlr | 32 + .../lib/JavaLog/web/WEB-INF/lib/antlrall.jar | Bin 0 -> 277655 bytes .../web/WEB-INF/lib/gnu-regexp-1.1.4.jar | Bin 0 -> 30163 bytes .../lib/JavaLog/web/WEB-INF/lib/jgl3.1.0.jar | Bin 0 -> 963513 bytes .../lib/JavaLog/web/WEB-INF/web.warContent | Bin 0 -> 559 bytes .../lib/JavaLog/web/WEB-INF/web.xml | 63 + org.isistan.javalog/lib/antlrall.jar | Bin 0 -> 277655 bytes org.isistan.javalog/lib/gnu-regexp-1.1.4.jar | Bin 0 -> 30163 bytes org.isistan.javalog/lib/javalog.jar | Bin 0 -> 540975 bytes org.isistan.javalog/lib/jgl3.1.0.jar | Bin 0 -> 963513 bytes org.isistan.javalog/plugin.xml | 23 + 4732 files changed, 409716 insertions(+) create mode 100644 .DS_Store create mode 100755 org.isistan.flabot.debugger/.classpath create mode 100755 org.isistan.flabot.debugger/.project create mode 100755 org.isistan.flabot.debugger/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/BreakpointsInstaller.class create mode 100644 org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/DebuggerPlugin.class create mode 100644 org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/InstallBreakpointsAction.class create mode 100644 org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/messages/Messages.class create mode 100755 org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/messages/messages.properties create mode 100755 org.isistan.flabot.debugger/build.properties create mode 100755 org.isistan.flabot.debugger/org.eclipse.jdt.ui.prefs create mode 100755 org.isistan.flabot.debugger/plugin.xml create mode 100755 org.isistan.flabot.debugger/resource/icon/failureLocatedActionIcon.gif create mode 100755 org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/BreakpointsInstaller.java create mode 100755 org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/DebuggerPlugin.java create mode 100755 org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/InstallBreakpointsAction.java create mode 100755 org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/Messages.java create mode 100755 org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/messages.properties create mode 100755 org.isistan.flabot.engine/.classpath create mode 100755 org.isistan.flabot.engine/.project create mode 100755 org.isistan.flabot.engine/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$5.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewContentProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewPage$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewPage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapView.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$CompoundVisualSimplePathNode.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/EllipseEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/StateColorFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/figure/EllipseFigure.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceView.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceViewPage$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceViewPage$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceViewPage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$DependecyToArrowFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$SequenceViewFooter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$SequenceViewHeader.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/Constants.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/Interaction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/InteractionManagement.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/GeneralLogFilterAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/RunEngineAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/EnginePerspectiveFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/EnginePlugin.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/ExtensionPointConstants.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfaceContextInfo.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfacePluginEngine.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/JavaLogEngine.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/JavaRuntime.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/Loader.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager$ResultsRunnable.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/SystemFactory$GetStateRunnable.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/SystemFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeDefaultCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeMappingCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostMappingCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/Command.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand$GetStateRunnable.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateStubCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/SituationCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$5.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog.class create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/engine.genmodel create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionmodel.ecore create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate.ecore create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ContextCreationException.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/Diagnostic.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionState.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionStateManager.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionstatePackage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ManualStateDeterminationStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/MappingBasedFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/OrFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/PrologProviderStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/SimpleGeneralLogFilterStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/SimpleTraceInferenceStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateDeterminationException.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateDeterminationStrategyRegistry.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceBasedStateDeterminationStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceInferenceStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManagerException.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/actions/GetResponsibilityNodeStateAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/Correlator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/NullCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterContentProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$5.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$6.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$PropertyWrapper.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$TagWrapper.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$Wrapper.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$InstanceComparator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagComparator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagWrapperComparator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/TraceStrategyGUIFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventPreviousScope.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/FixedStateDefault.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnCustomTag.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnError.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ExecutionInstancePredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ReturnValuePredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$10.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$11.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$2.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$3.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$4.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$5.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$6.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$7.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$8.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$9.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl$GetStateRunnable.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ManualTraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ResponsibilityToStateDeterminationStrategyMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/SimpleGeneralLogFilterStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/SimplePrologProviderStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/TraceBasedStateDeterminationStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/DefaultLogQueryPredicates.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtraceFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/DefaultJavalogCorrelatorBuilder.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl$AcceptAllMapping.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtraceFactoryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtracePackageImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/DefaultJavalogTagFilterBuilder.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/ClassTagJClass.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/InstanceClassSubstringFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/util/ExecutionstateSwitch.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedActionLoader.class create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_constraint.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_mapping.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_precondition.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_previous.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/dependency.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/dot.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/ff.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/pause.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/play.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/property.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/rr.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/source.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/step.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/stop.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/tag.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/target.gif create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/javalogtrace.ecore create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/locator/FlabotEngineLocator.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/Messages.class create mode 100755 org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/messages.properties create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/Dependency.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/DependencyInfo.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/EvaluationStep.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionContext.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionInfo.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionInfoManager.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionStep.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionmodelFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionmodelPackage.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/DependencyImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EStringToEJavaObjectMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionInfoImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionInfoManagerImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/SimplePathNodeToExecutionStateMapEntryImpl.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory$1.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory.class create mode 100644 org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/util/ExecutionmodelSwitch.class create mode 100755 org.isistan.flabot.engine/build.properties create mode 100755 org.isistan.flabot.engine/icons/flabot.gif create mode 100755 org.isistan.flabot.engine/plugin.properties create mode 100755 org.isistan.flabot.engine/plugin.xml create mode 100755 org.isistan.flabot.engine/resource/LocatorMethod-Improved.pl create mode 100755 org.isistan.flabot.engine/resource/LogicModuleConstraint.pl create mode 100755 org.isistan.flabot.engine/resource/LogicModuleGeneral.pl create mode 100755 org.isistan.flabot.engine/resource/LogicModuleStub.pl create mode 100755 org.isistan.flabot.engine/resource/TraceInferencePredicates.pl create mode 100755 org.isistan.flabot.engine/schema/failureLocatedAction.exsd create mode 100755 org.isistan.flabot.engine/schema/generalLogFilterStrategyUIComboBox.exsd create mode 100755 org.isistan.flabot.engine/schema/strategyUIComboBox.exsd create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlView.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewContentProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewPage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapView.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapViewPage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/EllipseEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/StateColorFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/figure/EllipseFigure.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceView.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceViewPage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/Constants.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/GeneralLogFilterAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/RunEngineAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePerspectiveFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePlugin.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/ExtensionPointConstants.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfaceContextInfo.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfacePluginEngine.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaLogEngine.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaRuntime.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/Loader.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/RuntimeManager.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/SystemFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeDefaultCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeMappingCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostMappingCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/Command.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateStubCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/SituationCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/engine.genmodel create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionmodel.ecore create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ContextCreationException.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/Diagnostic.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionState.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionStateManager.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstatePackage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualStateDeterminationStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/MappingBasedFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/OrFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/PrologProviderStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleGeneralLogFilterStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleTraceInferenceStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationException.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategyRegistry.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceBasedStateDeterminationStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceInferenceStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManager.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManagerException.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/actions/GetResponsibilityNodeStateAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/Correlator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/NullCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterContentProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/TraceStrategyGUIFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventPreviousScope.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/FixedStateDefault.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnCustomTag.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnError.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ExecutionInstancePredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ReturnValuePredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualTraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ResponsibilityToStateDeterminationStrategyMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleGeneralLogFilterStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimplePrologProviderStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceBasedStateDeterminationStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/DefaultLogQueryPredicates.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtraceFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/DefaultJavalogCorrelatorBuilder.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtraceFactoryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtracePackageImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/DefaultJavalogTagFilterBuilder.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ClassTagJClass.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/InstanceClassSubstringFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateSwitch.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedActionLoader.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_constraint.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_mapping.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_precondition.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_previous.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dependency.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dot.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/ff.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/pause.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/play.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/property.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/rr.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/source.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/step.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/stop.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/tag.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/target.gif create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/javalogtrace.ecore create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/locator/FlabotEngineLocator.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/Messages.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/messages.properties create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/Dependency.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/DependencyInfo.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/EvaluationStep.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionContext.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfo.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfoManager.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionStep.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelPackage.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/DependencyImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEJavaObjectMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoManagerImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/SimplePathNodeToExecutionStateMapEntryImpl.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory.java create mode 100755 org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/.classpath create mode 100755 org.isistan.flabot.executionstatemapping/.project create mode 100755 org.isistan.flabot.executionstatemapping/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/ExecutionConditionPlugin.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/InterfacePluginExecutionStateMapping.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddStateCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddTransitionConditionConnectionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignExecutionConditionToTransitionConditionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignPreFiltersToStateContainerCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ChangeStateInfoValueActionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteStateCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteTransitionConditionConnectionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ManageStateDiagramCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ModifyNamedElementCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/StateSetConstraintCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/CompoundManageCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageMethodExecutionConditionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManagePersistentTreeElementCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageTreeStructure.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ModifyExecutionConditionCommand.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$InternalMethodCallsProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ActivatedElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/AggregableElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ExecutionConditionEditorBuilder.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementEventProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$6.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/MenuSubItem.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/PreFilterManagerComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/FieldBehavior.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralFieldComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralScopeFilterComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeParametersReturnValueComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/JDTComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboBooleanVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboCharVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboConstants.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboContentProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboExecutionStateProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboGeneralVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboNumericVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboObjectVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboStringVarProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/CheckBoxChangeListener.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ClassOfListener.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ComboChangeListener.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/FieldButtonListener.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/BooleanComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ByteComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/CharComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/DoubleComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FieldComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FloatComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/IntComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/LongComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ShortComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/StringComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/TextComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ValueComposite.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/ExpressionGUIBuilder.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$6.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$7.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$8.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/EventStrategyPrologProviderTabItem.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionGeneralLogFilterStrategyTabItem.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$7.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$8.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$9.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/ItemProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/PrologItemProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/TreeExecutionConditionContentProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/ItemErrorProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/Validator.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/UpdatableFilteredView.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProviderAdapter.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/DecoratedWorkbenchLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExecutionLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExpressionExecutionConditionLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/InternalMethodCallsLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/PreFilterLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/TreeExecutionConditionLabelProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/ExecutionConditionSelectionValidator.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/StateDiagramSelectionValidator.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ClassViewerFilter.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ExecutionConditionScopeViewerFilter.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/MethodClassViewerFilter.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/StateDiagramScopeViewerFilter.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/FinalStateCreationTool.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContextMenuProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContributor.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$6.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleGridRetargetAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleRulerRetargetAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleSnapToGeometryRetargetAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/AssignMethodExecutionConditionAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeExecutionConditionAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeFinalStateValueAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditPreFiltersAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditVisualizationAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewGeneralExecutionConditionAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewMethodExecutionConditionAction.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPartFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure$CompartmentFigureBorder.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/FinalStateFigure.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/InitialStateFigure.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateBoxAnchor.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateCellEditorLocator.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateDiagramProperty.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateProperty.class create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/add.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_general.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_method.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/delete.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_add.png create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_delete.png create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_edit.png create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_sort.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/eclipse32.png create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/edit.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/error_obj.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/folder.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note_link.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/options.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/prefilter.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/sort.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_final.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_link.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_normal.gif create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/stateeditor.gif create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/Messages.class create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties.back create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer$Transition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/MessagesUtil.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharacterConversion.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter$Transition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter.class create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.ecore create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.genmodel create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ExecutionStateMappingFileModel.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage$Literals.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ExecutionStateMappingFileModelImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelPackageImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologCodeFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage$Literals.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/TagProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitedExpressionProlog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitorExpressionProlog.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/EventTagProviderImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/GeneralLogFilterTagProvider.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologCodeFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologPackageImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/ResponsibilityTagProviderImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologSwitch.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AbstractExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AndExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/BlockExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ConditionValue.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EventType.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExceptionEvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionStateValue.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FieldEvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FinalState.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/MappedTreeStructuredElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NamedElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NotedElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/OrExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ParameterEvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ReturnedValueEvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeEvaluationCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeFilterType.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage$Literals.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExecutionConditionConfiguration.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExpressionExecutionCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SingleExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/State.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateContainer.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateType.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TransitionCondition.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeStructuredElement.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeType.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitedExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitorExpression.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AbstractExpressionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AndExpressionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/BlockExpressionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EStringToTreeStructuredElementImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExceptionEvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExecutionConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FieldEvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FinalStateImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/MappedTreeStructuredElementImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NamedElementImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NotedElementImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/OrExpressionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ParameterEvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ReturnedValueEvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ScopeEvaluationConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticPackageImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$FilterExpressionChecker.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$MappingExpressionChecker.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExpressionExecutionConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SingleExpressionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateContainerImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TransitionConditionImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TreeStructuredElementImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticSwitch.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/ExecutionConditionGeneralLogFilterStrategy.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/SimpleExecutionConditionTraceInferenceStrategy.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StateDiagramTraceInferenceStrategy.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage$Literals.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/ExecutionConditionGeneralLogFilterStrategyImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/SimpleExecutionConditionTraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StateDiagramTraceInferenceStrategyImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelPackageImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/MappingChecker.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelSwitch.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelSwitch.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/StateDiagram.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage$Literals.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/StateDiagramImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualFactoryImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualPackageImpl.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualSwitch.class create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.ecore create mode 100755 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.genmodel create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/CommandUtils.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionView.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$10.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$11.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$12.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$13.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$14.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$15.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$16.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$5.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$6.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$7.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$8.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$9.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$1.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$2.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$3.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$4.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/DragTransfer.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrag.class create mode 100644 org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrop.class create mode 100755 org.isistan.flabot.executionstatemapping/build.properties create mode 100755 org.isistan.flabot.executionstatemapping/icons/executionmapping.gif create mode 100755 org.isistan.flabot.executionstatemapping/plugin.properties create mode 100755 org.isistan.flabot.executionstatemapping/plugin.xml create mode 100755 org.isistan.flabot.executionstatemapping/resource/examples/EMF-GEF-executioncondition.flabot create mode 100755 org.isistan.flabot.executionstatemapping/resource/examples/market-executioncondition.flabot create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.html create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion4.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion5.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion6.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion7.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_skin.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/standard.js create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo.html create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion17.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion18.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion19.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion20.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion21.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion22.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion23.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_skin.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/standard.js create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo.html create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo_Fullmotion1.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo_Fullmotion2.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo_Fullmotion3.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo_skin.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/standard.js create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo.html create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo_Fullmotion15.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo_Fullmotion16.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo_Fullmotion17.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo_Fullmotion18.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/StateDiagramExample_demo_skin.swf create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDiagramExample_demo/standard.js create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/html/demos/demos.html create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/toc.xml create mode 100755 org.isistan.flabot.executionstatemapping/resource/help/tocdemos.xml create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/ExecutionConditionPlugin.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/InterfacePluginExecutionStateMapping.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/AddStateCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/AddTransitionConditionConnectionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/AssignExecutionConditionToTransitionConditionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/AssignPreFiltersToStateContainerCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/ChangeStateInfoValueActionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteStateCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteTransitionConditionConnectionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/ManageStateDiagramCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/ModifyNamedElementCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/diagram/StateSetConstraintCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/executioncondition/CompoundManageCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageMethodExecutionConditionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManagePersistentTreeElementCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageTreeStructure.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/commands/executioncondition/ModifyExecutionConditionCommand.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/ActivatedElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/AggregableElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/ExecutionConditionEditorBuilder.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementEventProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/MenuSubItem.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/common/PreFilterManagerComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/FieldBehavior.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralFieldComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralScopeFilterComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeParametersReturnValueComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/JDTComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboBooleanVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboCharVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboConstants.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboContentProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboExecutionStateProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboGeneralVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboNumericVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboObjectVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboStringVarProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/CheckBoxChangeListener.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ClassOfListener.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ComboChangeListener.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/FieldButtonListener.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/BooleanComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ByteComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/CharComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/DoubleComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FieldComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FloatComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/IntComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/LongComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ShortComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/StringComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/TextComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ValueComposite.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/ExpressionGUIBuilder.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/strategy/EventStrategyPrologProviderTabItem.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionGeneralLogFilterStrategyTabItem.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/ItemProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/PrologItemProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/TreeExecutionConditionContentProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/ItemErrorProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/Validator.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/UpdatableFilteredView.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProviderAdapter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/DecoratedWorkbenchLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExecutionLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExpressionExecutionConditionLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/InternalMethodCallsLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/PreFilterLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/TreeExecutionConditionLabelProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/ExecutionConditionSelectionValidator.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/StateDiagramSelectionValidator.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ClassViewerFilter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ExecutionConditionScopeViewerFilter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/MethodClassViewerFilter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/StateDiagramScopeViewerFilter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/FinalStateCreationTool.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/StateEditor.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/StateEditorContextMenuProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/StateEditorContributor.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/AssignMethodExecutionConditionAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/ChangeExecutionConditionAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/ChangeFinalStateValueAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/EditPreFiltersAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/EditVisualizationAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/NewGeneralExecutionConditionAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/actions/NewMethodExecutionConditionAction.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPartFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/FinalStateFigure.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/InitialStateFigure.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/StateBoxAnchor.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/StateCellEditorLocator.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/properties/StateDiagramProperty.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/editor/properties/StateProperty.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/add.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/condition_general.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/condition_method.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/delete.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/dis_add.png create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/dis_delete.png create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/dis_edit.png create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/dis_sort.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/eclipse32.png create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/edit.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/error_obj.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/folder.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/note.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/note_link.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/options.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/prefilter.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/sort.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/state_final.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/state_link.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/state_normal.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/icons/stateeditor.gif create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/Messages.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/messages.properties create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/messages.properties.back create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/util/MessagesUtil.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharacterConversion.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model.ecore create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model.genmodel create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/ExecutionStateMappingFileModel.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/ModelFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/ModelPackage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/impl/ExecutionStateMappingFileModelImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/impl/ModelFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/impl/ModelPackageImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/PrologCodeFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/PrologElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/PrologFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/TagProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/VisitedExpressionProlog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/VisitorExpressionProlog.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/EventTagProviderImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/GeneralLogFilterTagProvider.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologCodeFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologPackageImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/impl/ResponsibilityTagProviderImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/AbstractExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/AndExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/BlockExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ConditionValue.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/EvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/EventType.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ExceptionEvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionStateValue.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/FieldEvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/FinalState.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/MappedTreeStructuredElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/NamedElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/NotedElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/OrExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ParameterEvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ReturnedValueEvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ScopeEvaluationCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/ScopeFilterType.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/SemanticFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExecutionConditionConfiguration.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExpressionExecutionCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/SingleExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/State.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/StateContainer.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/StateType.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/TransitionCondition.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/TreeStructuredElement.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/TreeType.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/VisitedExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/VisitorExpression.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/AbstractExpressionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/AndExpressionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/BlockExpressionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/EStringToTreeStructuredElementImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/EvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExceptionEvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExecutionConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/FieldEvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/FinalStateImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/MappedTreeStructuredElementImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/NamedElementImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/NotedElementImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/OrExpressionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/ParameterEvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/ReturnedValueEvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/ScopeEvaluationConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticPackageImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExpressionExecutionConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/SingleExpressionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateContainerImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/TransitionConditionImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/impl/TreeStructuredElementImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/ExecutionConditionGeneralLogFilterStrategy.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/SimpleExecutionConditionTraceInferenceStrategy.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/StateDiagramTraceInferenceStrategy.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/ExecutionConditionGeneralLogFilterStrategyImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/SimpleExecutionConditionTraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StateDiagramTraceInferenceStrategyImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelPackageImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/util/MappingChecker.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/util/ModelSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/StateDiagram.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/VisualFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/impl/StateDiagramImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualFactoryImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualPackageImpl.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/model/visual/util/VisualSwitch.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/strategymodel.ecore create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/strategymodel.genmodel create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/utils/CommandUtils.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/view/ExecutionConditionView.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrag.java create mode 100755 org.isistan.flabot.executionstatemapping/src/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrop.java create mode 100755 org.isistan.flabot.gauge.instrumentation/.classpath create mode 100755 org.isistan.flabot.gauge.instrumentation/.project create mode 100755 org.isistan.flabot.gauge.instrumentation/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/InstrumentationEvent.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/InstrumentationGauge.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/InstrumentationGaugeManager.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/JavaModelCreator.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/StrategyInstrumentor$GaugeAllocator.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/StrategyInstrumentor$GaugeConsumerFilterResult.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/StrategyInstrumentor.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/runtime/ExecutionStack.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/runtime/ExecutionStackPool.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/runtime/GaugeManagerPool.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/runtime/NotifyingState$ObjectBoolean.class create mode 100644 org.isistan.flabot.gauge.instrumentation/bin/org/isistan/flabot/gauge/instrumentation/runtime/NotifyingState.class create mode 100755 org.isistan.flabot.gauge.instrumentation/build.properties create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/InstrumentationEvent.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/InstrumentationGauge.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/InstrumentationGaugeManager.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/JavaModelCreator.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/StrategyInstrumentor.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/runtime/ExecutionStack.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/runtime/ExecutionStackPool.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/runtime/GaugeManagerPool.java create mode 100755 org.isistan.flabot.gauge.instrumentation/src/org/isistan/flabot/gauge/instrumentation/runtime/NotifyingState.java create mode 100755 org.isistan.flabot.gauge/.classpath create mode 100755 org.isistan.flabot.gauge/.project create mode 100755 org.isistan.flabot.gauge/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Event$AttributeName.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Event.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/EventFilter.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Gauge$AttributeName.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Gauge$Type.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Gauge.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/GaugeConsumer.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/GaugeFilter.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/GaugeManager.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/GaugePlugin.class create mode 100644 org.isistan.flabot.gauge/bin/org/isistan/flabot/gauge/Strategy.class create mode 100755 org.isistan.flabot.gauge/build.properties create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/Event.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/EventFilter.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/Gauge.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/GaugeConsumer.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/GaugeFilter.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/GaugeManager.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/GaugePlugin.java create mode 100755 org.isistan.flabot.gauge/src/org/isistan/flabot/gauge/Strategy.java create mode 100755 org.isistan.flabot.instrumentation/.classpath create mode 100755 org.isistan.flabot.instrumentation/.project create mode 100755 org.isistan.flabot.instrumentation/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/ClassLoaderGenerator$ClassLoaderClassEditor.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/ClassLoaderGenerator.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/InstrumentationUtils.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/JavassistUtils$ClassLoaderClassPath.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/JavassistUtils.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/launcher/DefaultInitializer.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/launcher/Initializer.class create mode 100644 org.isistan.flabot.instrumentation/bin/org/isistan/flabot/instrumentation/launcher/Launcher.class create mode 100644 org.isistan.flabot.instrumentation/bootbin/org/isistan/flabot/instrumentation/classloader/InstrumentationException.class create mode 100644 org.isistan.flabot.instrumentation/bootbin/org/isistan/flabot/instrumentation/classloader/Instrumentor.class create mode 100644 org.isistan.flabot.instrumentation/bootbin/org/isistan/flabot/instrumentation/classloader/Interceptor$InstrumentorsList.class create mode 100644 org.isistan.flabot.instrumentation/bootbin/org/isistan/flabot/instrumentation/classloader/Interceptor.class create mode 100755 org.isistan.flabot.instrumentation/bootsrc/org/isistan/flabot/instrumentation/classloader/InstrumentationException.java create mode 100755 org.isistan.flabot.instrumentation/bootsrc/org/isistan/flabot/instrumentation/classloader/Instrumentor.java create mode 100755 org.isistan.flabot.instrumentation/bootsrc/org/isistan/flabot/instrumentation/classloader/Interceptor.java create mode 100755 org.isistan.flabot.instrumentation/build.properties create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/ClassLoaderGenerator.java create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/InstrumentationUtils.java create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/JavassistUtils.java create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/launcher/DefaultInitializer.java create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/launcher/Initializer.java create mode 100755 org.isistan.flabot.instrumentation/src/org/isistan/flabot/instrumentation/launcher/Launcher.java create mode 100755 org.isistan.flabot.javamodel.java/.classpath create mode 100755 org.isistan.flabot.javamodel.java/.project create mode 100755 org.isistan.flabot.javamodel.java/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AccessibleObjectBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AccessibleObjectImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AnnotatedElementBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AnnotatedElementImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AnnotationBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/AnnotationImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ArrayBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ArrayImpl$ArrayIterator.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ArrayImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BehaviorBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BehaviorImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BooleanPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BooleanPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BytePrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/BytePrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/CharPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/CharPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ClassBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ClassImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ClassLoaderBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ClassLoaderImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ConstructorBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ConstructorImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/DoublePrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/DoublePrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/EnumBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/EnumImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/FieldBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/FieldImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/FloatPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/FloatPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/GenericDeclarationBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/GenericDeclarationImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/IntPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/IntPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/JavaFactory.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/LongPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/LongPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/MemberBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/MemberImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/MethodBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/MethodImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ObjectBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ObjectImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/PackageBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/PackageImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/PrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ShortPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ShortPrimitiveImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ThrowableBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/ThrowableImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/TypeBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/TypeImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/TypeVariableBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/TypeVariableImpl.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/VoidPrimitiveBuilder.class create mode 100644 org.isistan.flabot.javamodel.java/bin/org/isistan/flabot/javamodel/java/VoidPrimitiveImpl.class create mode 100755 org.isistan.flabot.javamodel.java/build.properties create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AccessibleObjectBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AccessibleObjectImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AnnotatedElementBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AnnotatedElementImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AnnotationBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/AnnotationImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ArrayBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ArrayImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BehaviorBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BehaviorImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BooleanPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BooleanPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BytePrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/BytePrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/CharPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/CharPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ClassBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ClassImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ClassLoaderBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ClassLoaderImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ConstructorBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ConstructorImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/DoublePrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/DoublePrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/EnumBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/EnumImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/FieldBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/FieldImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/FloatPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/FloatPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/GenericDeclarationBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/GenericDeclarationImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/IntPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/IntPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/JavaFactory.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/LongPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/LongPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/MemberBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/MemberImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/MethodBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/MethodImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ObjectBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ObjectImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/PackageBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/PackageImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/PrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ShortPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ShortPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ThrowableBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/ThrowableImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/TypeBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/TypeImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/TypeVariableBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/TypeVariableImpl.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/VoidPrimitiveBuilder.java create mode 100755 org.isistan.flabot.javamodel.java/src/org/isistan/flabot/javamodel/java/VoidPrimitiveImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/.classpath create mode 100755 org.isistan.flabot.javamodel.javassist/.project create mode 100755 org.isistan.flabot.javamodel.javassist/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ArrayBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ArrayImpl$ArrayIterator.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ArrayImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/BehaviorBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/BehaviorImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ClassBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ClassImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ConstructorBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ConstructorImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/FieldBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/FieldImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/JavassistFactory.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/MemberBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/MemberImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/MethodBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/MethodImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ObjectBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/ObjectImpl.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/PackageBuilder.class create mode 100644 org.isistan.flabot.javamodel.javassist/bin/org/isistan/flabot/javamodel/javassist/PackageImpl.class create mode 100755 org.isistan.flabot.javamodel.javassist/build.properties create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ArrayBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ArrayImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/BehaviorBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/BehaviorImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ClassBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ClassImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ConstructorBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ConstructorImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/FieldBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/FieldImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/JavassistFactory.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/MemberBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/MemberImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/MethodBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/MethodImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ObjectBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/ObjectImpl.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/PackageBuilder.java create mode 100755 org.isistan.flabot.javamodel.javassist/src/org/isistan/flabot/javamodel/javassist/PackageImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/.classpath create mode 100755 org.isistan.flabot.javamodel.jdt/.project create mode 100755 org.isistan.flabot.javamodel.jdt/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ArrayBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ArrayImpl$ArrayIterator.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ArrayImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/BehaviorBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/BehaviorImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ConstructorBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ConstructorImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/FieldBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/FieldImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ImplicitConstructorImpl$JDTImplicitConstructor.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ImplicitConstructorImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JDTFactory.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JNotificableElement.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaBinaryFileImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaFileBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaFileImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaModelJDTUtil.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaModelListener$ElementChangedListener.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaModelListener$InterestedInfo.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaModelListener.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/JavaSourceFileImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/MemberImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/MethodBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/MethodImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ObjectBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ObjectImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/PackageRootBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/PackageRootImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ProjectBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ProjectImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/UnresolvedTypeException.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspaceBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspaceClassBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspaceClassImpl$BindingFinder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspaceClassImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspaceImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspacePackageBuilder.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspacePackageImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspacePrimitiveClassImpl$PrimitiveClass.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspacePrimitiveClassImpl$PrimitiveType.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/WorkspacePrimitiveClassImpl.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/ASTUtil$ASTNodeFilter.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/ASTUtil$DescendantsASTVisitor.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/ASTUtil.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/DelegatingASTVisitor.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/NoChildrenASTVisitor.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/StoppableASTVisitor.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/ast/TopLevelClassesGetter.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JJavaFile.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JPackageRoot.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JProject.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JWorkspace.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JWorkspaceClass.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JWorkspaceElement.class create mode 100644 org.isistan.flabot.javamodel.jdt/bin/org/isistan/flabot/javamodel/jdt/workspace/JWorkspacePackage.class create mode 100755 org.isistan.flabot.javamodel.jdt/build.properties create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ArrayBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ArrayImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/BehaviorBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/BehaviorImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ConstructorBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ConstructorImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/FieldBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/FieldImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ImplicitConstructorImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JDTFactory.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JNotificableElement.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaBinaryFileImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaFileBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaFileImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaModelJDTUtil.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaModelListener.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/JavaSourceFileImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/MemberImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/MethodBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/MethodImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ObjectBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ObjectImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/PackageRootBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/PackageRootImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ProjectBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ProjectImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/UnresolvedTypeException.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspaceBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspaceClassBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspaceClassImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspaceImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspacePackageBuilder.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspacePackageImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/WorkspacePrimitiveClassImpl.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ast/ASTUtil.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ast/DelegatingASTVisitor.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ast/NoChildrenASTVisitor.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ast/StoppableASTVisitor.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/ast/TopLevelClassesGetter.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JJavaFile.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JPackageRoot.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JProject.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JWorkspace.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JWorkspaceClass.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JWorkspaceElement.java create mode 100755 org.isistan.flabot.javamodel.jdt/src/org/isistan/flabot/javamodel/jdt/workspace/JWorkspacePackage.java create mode 100755 org.isistan.flabot.javamodel/.classpath create mode 100755 org.isistan.flabot.javamodel/.project create mode 100755 org.isistan.flabot.javamodel/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/ArrayMirrorBuilder.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/CannotAccessItemsInAMatrixException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/CannotAccessSubarraysInANonMatrixException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/CompositeMirrorBuilder.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/Factory.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/InternalModelException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JAccessibleObject.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JAnnotatedElement.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JAnnotation.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JArray.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JBehavior.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JBooleanPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JBytePrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JCharPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JClass.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JClassLoader.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JConstructor.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JDescriptedElement.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JDoublePrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JEnum.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JField.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JFloatPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JGenericDeclaration.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JIntPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JLongPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JMember.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JMethod.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JObject.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JPackage.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JShortPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JSourceElement.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JSourceLocation.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JThrowable.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JType.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JTypeVariable.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JVoidPrimitive.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JavaMetaModelException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/JavaModelObjectHashProvider.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/MirrorBuilder.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/MixedImplementationsException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/ModelArrayImpl$ArrayIterator.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/ModelArrayImpl.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/NotSupportedFeatureException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/ObjectClassOutOfBoundsException.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/ObjectMirrorBuilder.class create mode 100644 org.isistan.flabot.javamodel/bin/org/isistan/flabot/javamodel/Util.class create mode 100755 org.isistan.flabot.javamodel/build.properties create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/ArrayMirrorBuilder.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/CannotAccessItemsInAMatrixException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/CannotAccessSubarraysInANonMatrixException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/CompositeMirrorBuilder.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/Factory.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/InternalModelException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JAccessibleObject.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JAnnotatedElement.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JAnnotation.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JArray.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JBehavior.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JBooleanPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JBytePrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JCharPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JClass.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JClassLoader.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JConstructor.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JDescriptedElement.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JDoublePrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JEnum.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JField.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JFloatPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JGenericDeclaration.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JIntPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JLongPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JMember.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JMethod.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JObject.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JPackage.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JShortPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JSourceElement.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JSourceLocation.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JThrowable.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JType.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JTypeVariable.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JVoidPrimitive.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JavaMetaModelException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/JavaModelObjectHashProvider.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/MirrorBuilder.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/MixedImplementationsException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/ModelArrayImpl.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/NotSupportedFeatureException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/ObjectClassOutOfBoundsException.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/ObjectMirrorBuilder.java create mode 100755 org.isistan.flabot.javamodel/src/org/isistan/flabot/javamodel/Util.java create mode 100755 org.isistan.flabot.javassist/.classpath create mode 100755 org.isistan.flabot.javassist/.project create mode 100755 org.isistan.flabot.javassist/build.properties create mode 100755 org.isistan.flabot.javassist/lib/javassist.jar create mode 100755 org.isistan.flabot.javassist/plugin.xml create mode 100755 org.isistan.flabot.launcher.instrumentation/.classpath create mode 100755 org.isistan.flabot.launcher.instrumentation/.project create mode 100755 org.isistan.flabot.launcher.instrumentation/EclipseWorkbenchConfigurationDelegate.java create mode 100755 org.isistan.flabot.launcher.instrumentation/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/FlabotInitializer.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/LauncherInstrumentationPlugin.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/LauncherInstrumentationUtils.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/eclipse/EclipseWorkbenchCollectionLauncher.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/eclipse/EclipseWorkbenchConfigurationDelegate.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/eclipse/LaunchConfigurationHelper.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/localjava/LocalJavaApplicationCollectionLauncher.class create mode 100644 org.isistan.flabot.launcher.instrumentation/bin/org/isistan/flabot/launcher/instrumentation/localjava/LocalJavaApplicationConfigurationDelegate.class create mode 100755 org.isistan.flabot.launcher.instrumentation/build.properties create mode 100755 org.isistan.flabot.launcher.instrumentation/plugin.xml create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/FlabotInitializer.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/LauncherInstrumentationPlugin.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/LauncherInstrumentationUtils.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/eclipse/EclipseWorkbenchCollectionLauncher.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/eclipse/EclipseWorkbenchConfigurationDelegate.java create mode 100644 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/eclipse/LaunchConfigurationHelper.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/localjava/LocalJavaApplicationCollectionLauncher.java create mode 100755 org.isistan.flabot.launcher.instrumentation/src/org/isistan/flabot/launcher/instrumentation/localjava/LocalJavaApplicationConfigurationDelegate.java create mode 100755 org.isistan.flabot.launcher/.classpath create mode 100755 org.isistan.flabot.launcher/.project create mode 100755 org.isistan.flabot.launcher/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/ExtensionPointConstants.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/LaunchConfigurationConstants.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/LauncherPlugin.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/collection/CollectionLauncher.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/collection/CollectionLauncherException.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/collection/CollectionLauncherLoader.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/collection/TraceConfigurationSavingCollectionLauncher.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/context/ContextProvider.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/context/ContextProviderException.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/context/ContextProviderLoader.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/delegate/FlabotLauncherConfigurationDelegate.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/LogFilterEditionItem$1.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/LogFilterEditionItem.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/LogFilterManager.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/FiltermodelFactory.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/FiltermodelPackage.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/LogFilter.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/impl/FiltermodelFactoryImpl.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/impl/FiltermodelPackageImpl.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/impl/LogFilterImpl.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/util/FiltermodelAdapterFactory$1.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/util/FiltermodelAdapterFactory.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filter/filtermodel/util/FiltermodelSwitch.class create mode 100755 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/filtermodel.ecore create mode 100755 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/launchermodel.genmodel create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/messages/Messages.class create mode 100755 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/messages/messages.properties create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/AbstractConfigurationTab.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/DelegatingConfigurationTab.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/FlabotLauncherTabGroup.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$1.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$2.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$3.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$4.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$5.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$6.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$7.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$8.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab$9.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/MainConfigurationTab.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/tabs/basic/MessageLaunchConfigurationTab.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/ControlPanelListener.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/LogContextGenerator.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/MetadataHandler.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TagUtil.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceGenerator.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$1.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$2.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$3.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$4.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$5.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler$6.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/TraceLogHandler.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/objecttag/BasicObjectSnapshotTagCreator.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/objecttag/BasicObjectTagCreator.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/objecttag/ObjectSnapshotTagCreator.class create mode 100644 org.isistan.flabot.launcher/bin/org/isistan/flabot/launcher/trace/objecttag/ObjectTagCreator.class create mode 100755 org.isistan.flabot.launcher/build.properties create mode 100755 org.isistan.flabot.launcher/plugin.properties create mode 100755 org.isistan.flabot.launcher/plugin.xml create mode 100755 org.isistan.flabot.launcher/resource/icon/flabotCollectingSessionIcon.gif create mode 100755 org.isistan.flabot.launcher/schema/collectionLauncher.exsd create mode 100755 org.isistan.flabot.launcher/schema/contextProvider.exsd create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/ExtensionPointConstants.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/LaunchConfigurationConstants.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/LauncherPlugin.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/collection/CollectionLauncher.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/collection/CollectionLauncherException.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/collection/CollectionLauncherLoader.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/collection/TraceConfigurationSavingCollectionLauncher.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/context/ContextProvider.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/context/ContextProviderException.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/context/ContextProviderLoader.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/delegate/FlabotLauncherConfigurationDelegate.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/LogFilterEditionItem.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/LogFilterManager.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/FiltermodelFactory.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/FiltermodelPackage.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/LogFilter.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/impl/FiltermodelFactoryImpl.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/impl/FiltermodelPackageImpl.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/impl/LogFilterImpl.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/util/FiltermodelAdapterFactory.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filter/filtermodel/util/FiltermodelSwitch.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/filtermodel.ecore create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/launchermodel.genmodel create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/messages/Messages.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/messages/messages.properties create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/tabs/AbstractConfigurationTab.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/tabs/DelegatingConfigurationTab.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/tabs/FlabotLauncherTabGroup.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/tabs/MainConfigurationTab.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/tabs/basic/MessageLaunchConfigurationTab.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/ControlPanelListener.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/LogContextGenerator.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/MetadataHandler.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/TagUtil.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/TraceGenerator.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/TraceLogHandler.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/objecttag/BasicObjectSnapshotTagCreator.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/objecttag/BasicObjectTagCreator.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/objecttag/ObjectSnapshotTagCreator.java create mode 100755 org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/trace/objecttag/ObjectTagCreator.java create mode 100755 org.isistan.flabot.mapping/.classpath create mode 100755 org.isistan.flabot.mapping/.project create mode 100755 org.isistan.flabot.mapping/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/MappingManager.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/MappingPlugin.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/MappingType.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/builder/MappingBuilder.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/builder/PatternMappingBuilder.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ClientViewerContentProvider.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ClientViewerLabelProvider.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ComponentScopeEditionItem.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/Container.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/HierarchyContentFilter.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$1.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$2.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$3.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$4.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$5.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$6.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$7.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem$8.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/MappingEditionItem.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ResponsibilityMappingEditionItem.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ResponsibilityMaterializationMappingEditionItem$1.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/ResponsibilityMaterializationMappingEditionItem.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewer$1.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewer$SelectionFilter.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewer.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewerContentProvider$ContentFilter.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewerContentProvider$InvalidElement.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewerContentProvider.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/editor/WorkspaceViewerLabelProvider.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapper/AbstractWorkspaceMapper.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapper/DefaultWorkspaceMapper.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapper/PatternWorkspaceMapper.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapper/WorkspaceMapper.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapper/WorkspaceMapperResult.class create mode 100755 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mapping.genmodel create mode 100755 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel.ecore create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/FilteredMappingCreator.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/Mapping.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/MappingmodelFactory.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/MappingmodelPackage.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/PatternMapping.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/RedefinitionAwareMappingCreator.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/ScopeAwareMappingCreator.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/impl/MappingmodelFactoryImpl.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/impl/MappingmodelPackageImpl.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/impl/PatternMappingImpl.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/util/MappingmodelAdapterFactory$1.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/util/MappingmodelAdapterFactory.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/mappingmodel/util/MappingmodelSwitch.class create mode 100644 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/messages/Messages.class create mode 100755 org.isistan.flabot.mapping/bin/org/isistan/flabot/mapping/messages/messages.properties create mode 100755 org.isistan.flabot.mapping/build.properties create mode 100755 org.isistan.flabot.mapping/plugin.properties create mode 100755 org.isistan.flabot.mapping/plugin.xml create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/MappingManager.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/MappingPlugin.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/MappingType.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/builder/MappingBuilder.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/builder/PatternMappingBuilder.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/ClientViewerContentProvider.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/ClientViewerLabelProvider.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/ComponentScopeEditionItem.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/Container.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/HierarchyContentFilter.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/MappingEditionItem.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/ResponsibilityMappingEditionItem.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/ResponsibilityMaterializationMappingEditionItem.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/WorkspaceViewer.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/WorkspaceViewerContentProvider.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/editor/WorkspaceViewerLabelProvider.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapper/AbstractWorkspaceMapper.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapper/DefaultWorkspaceMapper.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapper/PatternWorkspaceMapper.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapper/WorkspaceMapper.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapper/WorkspaceMapperResult.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapping.genmodel create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel.ecore create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/FilteredMappingCreator.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/Mapping.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/MappingmodelFactory.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/MappingmodelPackage.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/PatternMapping.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/RedefinitionAwareMappingCreator.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/ScopeAwareMappingCreator.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/impl/MappingmodelFactoryImpl.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/impl/MappingmodelPackageImpl.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/impl/PatternMappingImpl.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/util/MappingmodelAdapterFactory.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel/util/MappingmodelSwitch.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/messages/Messages.java create mode 100755 org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/messages/messages.properties create mode 100755 org.isistan.flabot.report/.classpath create mode 100755 org.isistan.flabot.report/.project create mode 100755 org.isistan.flabot.report/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/FlabotReportGenerator.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/FlabotReportGeneratorException.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/ReportPlugin.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/actions/GenerateReportAction$1.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/actions/GenerateReportAction.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/velocity/VelocityReportGenerator$ArrayLengthUtil.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/velocity/VelocityReportGenerator$MappingUtil.class create mode 100644 org.isistan.flabot.report/bin/org/isistan/flabot/report/velocity/VelocityReportGenerator.class create mode 100755 org.isistan.flabot.report/build.properties create mode 100755 org.isistan.flabot.report/icons/reportgenerator.gif create mode 100755 org.isistan.flabot.report/lib/velocity-1.4.jar create mode 100755 org.isistan.flabot.report/lib/velocity-dep-1.4.jar create mode 100755 org.isistan.flabot.report/plugin.xml create mode 100755 org.isistan.flabot.report/resource/templates/defaultReport.html.vm create mode 100755 org.isistan.flabot.report/resource/templates/defaultReport.html.vm.ori create mode 100755 org.isistan.flabot.report/src/org/isistan/flabot/report/FlabotReportGenerator.java create mode 100755 org.isistan.flabot.report/src/org/isistan/flabot/report/FlabotReportGeneratorException.java create mode 100755 org.isistan.flabot.report/src/org/isistan/flabot/report/ReportPlugin.java create mode 100755 org.isistan.flabot.report/src/org/isistan/flabot/report/actions/GenerateReportAction.java create mode 100755 org.isistan.flabot.report/src/org/isistan/flabot/report/velocity/VelocityReportGenerator.java create mode 100755 org.isistan.flabot.trace/.classpath create mode 100755 org.isistan.flabot.trace/.project create mode 100755 org.isistan.flabot.trace/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel$1CloseListener.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel$NumberKeyComparator.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel$PropertyWrapper.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel$TagWrapper.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel$Wrapper.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/TagTreeModel.class create mode 100755 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config.ecore create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/ConfigFactory.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/ConfigPackage.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/Context.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/Filter.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/TraceConfiguration.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/impl/ConfigFactoryImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/impl/ConfigPackageImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/impl/ContextImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/impl/TraceConfigurationImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/util/ConfigAdapterFactory$1.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/util/ConfigAdapterFactory.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/config/util/ConfigSwitch.class create mode 100755 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log.ecore create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/LogContext.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/LogFactory.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/LogPackage.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/Tag.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/TraceLog.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/EStringToTagMapEntryImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/LogContextImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/LogFactoryImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/LogPackageImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/TagImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/impl/TraceLogImpl.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/DefaultTagQueryUtil.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/TagQueryUtil$MetadataConstants.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/TagQueryUtil$ObjectConstants.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/TagQueryUtil$SnapshotConstants.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/TagQueryUtil$TraceGeneratorConstants.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/tagquery/TagQueryUtil.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/util/LogAdapterFactory$1.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/util/LogAdapterFactory.class create mode 100644 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/log/util/LogSwitch.class create mode 100755 org.isistan.flabot.trace/bin/org/isistan/flabot/trace/trace.genmodel create mode 100755 org.isistan.flabot.trace/build.properties create mode 100755 org.isistan.flabot.trace/plugin.properties create mode 100755 org.isistan.flabot.trace/plugin.xml create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/TagTreeModel.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config.ecore create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/ConfigFactory.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/ConfigPackage.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/Context.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/Filter.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/TraceConfiguration.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/impl/ConfigFactoryImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/impl/ConfigPackageImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/impl/ContextImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/impl/TraceConfigurationImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/util/ConfigAdapterFactory.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/config/util/ConfigSwitch.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log.ecore create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/LogContext.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/LogFactory.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/LogPackage.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/Tag.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/TraceLog.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/EStringToTagMapEntryImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/LogContextImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/LogFactoryImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/LogPackageImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/TagImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/impl/TraceLogImpl.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/tagquery/DefaultTagQueryUtil.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/tagquery/TagQueryUtil.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/util/LogAdapterFactory.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/log/util/LogSwitch.java create mode 100755 org.isistan.flabot.trace/src/org/isistan/flabot/trace/trace.genmodel create mode 100755 org.isistan.flabot.util/.classpath create mode 100755 org.isistan.flabot.util/.project create mode 100755 org.isistan.flabot.util/META-INF/MANIFEST.MF create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/ObjectBoolean.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/SelectionDialog$ArrayContentProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/SelectionDialog.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/TriState.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/UtilPlugin.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap$1$1.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap$1.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap$2$1.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap$2.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap$SimpleEntry.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/AbstractCustomMap.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$Entry.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$EntryIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$EntrySet.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$HashIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$KeyIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$KeySet.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$ValueIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap$Values.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/CustomMap.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/DefaultHashProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/ExactHashProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/HashProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$Entry.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$EntryIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$EntrySet.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$HashIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$KeyIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$KeySet.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$ValueIterator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap$Values.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/custommap/WeakCustomMap.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/emf/WorkaroundURIConverter.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/enums/Enum.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/enums/EnumInfo.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ClassExtensionLoader.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ClassInstantiator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ConfigurationElementContainerHandler.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ConfigurationElementHandler.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ConfigurationElementHandlerUtil.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ExtensionElement.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ExtensionHandler.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/ExtensionPointHandler.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/NoMatchingConstructorFoundException.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/PropertiesReader.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/dialog/ExtensionSelectionDialog$ExtensionLabelProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/dialog/ExtensionSelectionDialog.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/dialog/label/ConfigurationElementHandlerProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/extension/dialog/label/DefaultConfigurationElementLabelProvider.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/javalog/DefaultJavalogUtil.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/javalog/JavalogUtil.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/log/DefaultLogStatusCodes.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/log/EclipsePlatformLogger.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/log/LogStatusCodes.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/ArgumentsReplacer$Transition.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/ArgumentsReplacer.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/MessagesUtil.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/SpecialCharacterConversion.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/SpecialCharactersConverter$Transition.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/messages/SpecialCharactersConverter.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/plugin/PluginUtils.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/problems/DefaultMessage.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/problems/Message.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/problems/MessageAccumulator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/problems/MessageSeverity.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/problems/log/LoggerMessageAccumulator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/PathUtil.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/ResourceSelectionDialog.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/filter/FilePatternFilter$1.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/filter/FilePatternFilter.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/validator/CompositeValidator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/validator/FileValidator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/validator/OkValidator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/resource/validator/SelectionSizeValidator.class create mode 100644 org.isistan.flabot.util/bin/org/isistan/flabot/util/swt/SWTUtils.class create mode 100755 org.isistan.flabot.util/build.properties create mode 100755 org.isistan.flabot.util/lib/slf4j.jar create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/ObjectBoolean.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/SelectionDialog.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/TriState.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/UtilPlugin.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/AbstractCustomMap.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/CustomMap.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/DefaultHashProvider.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/ExactHashProvider.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/HashProvider.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/custommap/WeakCustomMap.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/emf/WorkaroundURIConverter.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/enums/Enum.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/enums/EnumInfo.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ClassExtensionLoader.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ClassInstantiator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ConfigurationElementContainerHandler.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ConfigurationElementHandler.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ConfigurationElementHandlerUtil.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ExtensionElement.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ExtensionHandler.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/ExtensionPointHandler.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/NoMatchingConstructorFoundException.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/PropertiesReader.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/dialog/ExtensionSelectionDialog.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/dialog/label/ConfigurationElementHandlerProvider.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/extension/dialog/label/DefaultConfigurationElementLabelProvider.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/javalog/DefaultJavalogUtil.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/javalog/JavalogUtil.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/log/DefaultLogStatusCodes.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/log/EclipsePlatformLogger.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/log/LogStatusCodes.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/messages/ArgumentsReplacer.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/messages/MessagesUtil.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/messages/SpecialCharacterConversion.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/messages/SpecialCharactersConverter.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/plugin/PluginUtils.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/problems/DefaultMessage.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/problems/Message.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/problems/MessageAccumulator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/problems/MessageSeverity.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/problems/log/LoggerMessageAccumulator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/PathUtil.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/ResourceSelectionDialog.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/filter/FilePatternFilter.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/validator/CompositeValidator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/validator/FileValidator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/validator/OkValidator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/resource/validator/SelectionSizeValidator.java create mode 100755 org.isistan.flabot.util/src/org/isistan/flabot/util/swt/SWTUtils.java create mode 100755 org.isistan.flabot/.classpath create mode 100755 org.isistan.flabot/.project create mode 100755 org.isistan.flabot/.settings/CVS/Entries create mode 100755 org.isistan.flabot/.settings/CVS/Repository create mode 100755 org.isistan.flabot/.settings/CVS/Root create mode 100755 org.isistan.flabot/.settings/org.eclipse.core.resources.prefs create mode 100755 org.isistan.flabot/.settings/org.eclipse.jdt.core.prefs create mode 100755 org.isistan.flabot/.settings/org.eclipse.jdt.ui.prefs create mode 100755 org.isistan.flabot/DescriptionFlabot.flabot create mode 100755 org.isistan.flabot/G2Server.flabot create mode 100755 org.isistan.flabot/META-INF/MANIFEST.MF create mode 100755 org.isistan.flabot/about.html create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/ExtensionPointConstants.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/FlabotPlugin.class create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/componentmodel.ecore create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/coremodel.ecore create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/BehavioralFeatureModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ComponentModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ComponentRole.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Condition.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ConditionEvent.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ConditionedStub.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/CoreModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/CoremodelFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/CoremodelPackage$Literals.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/CoremodelPackage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/DirectionArrowNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/DynamicStub.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/DynamicStubNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ExtensibleElement.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ExtensibleElementUtil.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Family.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/FamilyElement.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/FeatureModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ForkCondition.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ForkNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/InterfaceLink.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/InterfaceModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/InterfacePrologCode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/JoinNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/NamedElementModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Note.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/NoteElementModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Path.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/PathNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/PortModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Property.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/PropertyElementModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Registrable.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Relationship$s.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Relationship.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/RelationshipDirection.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Responsibility.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ResponsibilityNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/ResponsibilityRegistry.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/SimplePathNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/Stereotype.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/StereotypedElementModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/StubNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/TimerNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/UseCaseMap.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/ComponentUniqueNameConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/ConditionEventGeneralConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/ConditionMappingHasCorrectFamilyConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/FamilyHasAllComponentConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/InterfaceLinkMappedToPathGeneralConstraint$ListNode.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/InterfaceLinkMappedToPathGeneralConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/InterfacesMustHaveSameNameConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/ResponsibilityGeneralConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/ResponsibilityNodeGeneralConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/StubMustHaveFamilyConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/constraint/UseCaseMapGeneralConstraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/BehavioralFeatureModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ComponentModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ComponentRoleImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ComponentToMapMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ConditionEventImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ConditionEventToConditionEventMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ConditionImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ConditionedStubImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/CoreModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/CoremodelFactoryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/CoremodelPackageImpl$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/CoremodelPackageImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/DirectionArrowNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/DynamicStubImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/DynamicStubNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/EStringToEObjectMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ExtensibleElementImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/FamilyElementImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/FamilyImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/FeatureModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ForkConditionImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ForkNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/InterfaceLinkImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/InterfaceModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/JoinNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/NamedElementModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/NoteElementModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/NoteImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/PathImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/PathNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/PortModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/PropertyElementModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/PropertyImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/RelationshipImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ResponsibilityImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ResponsibilityNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ResponsibilityRegistryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/ResponsibilityToRegistrableMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/RoleToMapMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/SimplePathNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/StereotypeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/StereotypedElementModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/StubNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/TimerNodeImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/impl/UseCaseMapImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/util/CoremodelAdapterFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/util/CoremodelAdapterFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/util/CoremodelSwitch.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/coremodel/util/CoremodelValidator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditor$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditor$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditor$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorContextMenuProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/AssignResponsibilitiesAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/CopyAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/CutAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/EditComponentAction$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/EditComponentAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/EditPropertiesAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/EditResponsibilitiesAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/actions/EditStereotypesAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/DeleteComponentDiagramCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/AddPropertyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/AddResponsibilityToComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/AddResponsibilityToCoreCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/AddStereotypeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeleteComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeleteInterfaceCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeletePortCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeletePropertyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeleteResponsibilityFromComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/DeleteStereotypeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/ModifyNamedElementCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/ModifyPropertyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/ModifyResponsibilityCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/ModifyStereotypeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/model/ModifyStereotypeInElementCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/AddComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/AddInterfaceCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/AddInterfaceConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/AddPortCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/AddRelationshipConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/ComponentSetConstraintCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteInterfaceConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteRelationshipConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualInterfaceCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualPortCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/commands/visual/PortSetConstraintCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog$Validator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/ComponentEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/ComponentVisualEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/MainComponentEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/MainComponentEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/VisualizationComponentEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/ResponsibilityEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/editionitem/MainResponsibilityEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/editionitem/MainResponsibilityEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/editionitem/MainResponsibilityEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/editionitem/MainResponsibilityEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterialization.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterializationEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterializationImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentDiagramEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentDiagramEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditManager$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditManager.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart$ComponentDragEditPartsTracker.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPartFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ConnectionToConnectionEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ConnectionToConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceConnectionEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceConnectionEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/InterfaceEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart$ComponentDragEditPartsTracker.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ProvidedInterfaceEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/ProvidedInterfaceEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/RelationshipConnectionEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/RelationshipConnectionEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/RelationshipConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/RequiredInterfaceEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/editparts/RequiredInterfaceEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ComponentBoxAnchor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ComponentCellEditorLocator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ComponentFigure$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ComponentFigure$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ComponentFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ConnectionToConnectionAnchor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/InterfaceFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/PortFigure$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/PortFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/ProvidedInterfaceFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/figures/RequiredInterfaceFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/ComponentDiagramProperty.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/ComponentPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/DirectionProperty.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/RelationshipConnectionProperty.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/ResponsibilityPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componenteditor/properties/StereotypedPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/ComponentDiagram.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/ComponentmodelFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/ComponentmodelPackage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/impl/ComponentDiagramImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/impl/ComponentmodelFactoryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/impl/ComponentmodelPackageImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/util/ComponentmodelAdapterFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/util/ComponentmodelAdapterFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/componentmodel/util/ComponentmodelSwitch.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/ActionLoader.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/CommandExecutor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/FlabotCommandStack$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/FlabotCommandStack$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/FlabotCommandStack$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/FlabotCommandStack.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/FlabotGraphicalEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/TabItemComparator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/AddNewFolderAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/ArrangeAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/CloseDiagramAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/CopyAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/CreateComponentDiagramAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/CreateUCMDiagramAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/DeleteOutlineAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/EditVisualizationAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/EditorSnapGeometryAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/EditorToggleGridAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/ExportDiagramAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/PasteAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/PrintDiagramAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/RunConsistencyCheckAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/RunEventManagerAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/RunFamilyManagerAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/actions/SelectAllAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/AddDiagramFolder.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/AddDiagramToFolderCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/AddNoteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/AddNoteConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/ArrangeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/CreateComponentEditorCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/CreateUCMEditorCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/DeleteDiagramCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/DeleteFolderCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/DeleteNoteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/DeleteNoteConnectionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/EditNoteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/EditVisualizationCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/EditorActivatorCommandWrapper.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/NoteSetConstraintCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/NotifierCommandWrapper.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/SetDetailLevelCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/bendpoints/BendpointCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/bendpoints/CreateBendpointCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/bendpoints/DeleteBendpointCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/bendpoints/MoveBendpointCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddComponentPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddInterfaceConnectionPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddInterfacePasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddNoteConnectionPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddNotePasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddPortPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddRelationshipConnectionPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/AddRoleComponentPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/RetargetConnectionPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/commands/paste/RetargetParentPasteCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ComponentRoleSelectionDialog$ComponentRoleLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ComponentRoleSelectionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ExtendedElementListSelectionDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ExtendedElementListSelectionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ResponsibilitySelectionDialog$ResponsibilityLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/ResponsibilitySelectionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$12.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$13.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyContentProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyDetailsDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/ConnectedEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/ConnectionEditPart$ConnectionAdapter.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/ConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/ContainerEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteCellEditorLocator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteConnectionEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteConnectionEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditManager.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditPart$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditPart$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editparts/NoteEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/editpolicies/ConnectionBendpointEditPolicy.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/BendpointLocator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/BentCornerFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/CloneableShape.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/ComponentFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/DirectEditableFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/FixedConnectionAnchor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/LineConnection.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/figures/NoteFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/properties/AbstractPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/properties/DimensionPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/properties/LocationPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/properties/NamedElementPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editor/properties/VisualPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Color.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/ConnectionBendpoint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/ConnectionVisualModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Diagram.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Dimension.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/EditormodelFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/EditormodelPackage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/FlabotFileModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Folder.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/NodeVisualModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Point.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/Util.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/VisualDiagramJump.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/VisualModel.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/ColorImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/ConnectionBendpointImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/ConnectionVisualModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/DiagramImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/DimensionImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/EStringToEObjectMapEntryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/EditormodelFactoryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/EditormodelPackageImpl$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/EditormodelPackageImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/FlabotFileModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/FolderImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/NodeVisualModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/PointImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/VisualDiagramJumpImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/impl/VisualModelImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/util/EditormodelAdapterFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/util/EditormodelAdapterFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/util/EditormodelSwitch.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/editormodel/util/EditormodelValidator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$1$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$ImportedFilesContentProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage$ImportedFilesLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/EditorPerspectiveFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock$MasterContentProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock$MasterLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage$ExtensionsBlock.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotFileDetailsPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotFormPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageContextMenuProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$FlabotOutlinePage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$ResourceTracker$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$ResourceTracker$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$ResourceTracker$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$ResourceTracker$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor$ResourceTracker.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultiPageEditorContributor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultipagePropertiesEditor$FormEditorSelectionProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/FlabotMultipagePropertiesEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/OverviewPropertiesPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/UnsettableDirtyStateEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/AbstractTransferDragSourceListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/AbstractTransferDropTargetListener$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/AbstractTransferDropTargetListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/ComponentDragListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/ComponentDropFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/ComponentDropListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/DiagramDragListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/DiagramDropListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/DiagramFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/DropComponentRoleFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/InterfaceDragListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/InterfaceDropFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/InterfaceDropListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/NativeDropRequest.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/PortDragListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/PortDropFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/multipage/dnd/PortDropListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ComponentRoleTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ComponentRoleTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ComponentTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ComponentTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/CoreModelTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/DiagramFolderTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/DiagramFolderTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/DiagramTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/DiagramTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/FlabotFileTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/FlabotModelTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/FlabotTreeEditPartFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/InterfaceLinkTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/InterfaceTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/InterfaceTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/PortTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/PortTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/RelationshipTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ResponsibilityTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/ResponsibilityTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/StartPointEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/StereotypeTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/StereotypeTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/UseCaseMapTreeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/outline/UseCaseMapTreeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/ComponentCreationTool.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/PathCreationTool.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditor$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditor$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditor$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditor.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorContextMenuProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/CopyAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/CutAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditComponentAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditDynamicStubAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditLineVisualizationAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditOrForkAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditResponsibilityNodeAction$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditResponsibilityNodeAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditStubAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/EditTimerAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertDirectionArrowAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertDynamicStubAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertForkAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertJoinAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertNodeAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertResponsibilityAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertStubAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/InsertTimerAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/JoinPathsAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/MergePathsAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/RotateForkJoinAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/RotatePathNodeAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/actions/ShowHideAllConditionDependeciesAction.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/DeleteUCMDiagramCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddAssociatedConditionToConditionEventCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddAssociatedNodeToFamilyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionEventToCoreModelCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionToResponsibilityCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionedStubToDynamicStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/AddFamilyToCoreModelCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteAssociatedConditionFromConditionEventCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteAssociatedNodeFromFamilyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteComponentRoleCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionEventFromCoreModelCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionFromFamilyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionFromResponsibilityCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionedStubFromDynamicStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteFamilyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteFamilyElementCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteMapCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeletePathCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteResponsibilityCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteResponsibilityNodeAssociationsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteStubFromCoreModelCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionEventCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionedStub.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyDynamicStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyFamilyCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyForkConditionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyPrologCodeConditionEventCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyTimerCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyUseCaseMapLevelInfoCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/AddComponentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/ComponentSetConstraintCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteDynamicStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteEndPointCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteForkCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteJoinCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeletePathCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeletePathNodeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteTimerCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteVisualComponentRoleCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteWaitingPlaceCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/EditVisualizationPathCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertComponentRoleCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertDirectionArrowCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertDynamicStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertForkCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertJoinCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertNodeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertPathNodeCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertResponsibilityCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertStubCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertTimerCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertWaitingPlaceCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/JoinPathsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/MergePathsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/MoveResponsibilityOutComponent.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeCreateCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeReparentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeSetConstraintCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/ResponsibilityNodeReparentCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/RotateFigureCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/UpdateAllPathCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/HideAllConditionsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/HideConditionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowAllConditionsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowConditionCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowHideAllConditionsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowHideConditionsCommand.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/ConditionedStubSelectionDialog$ConditionedStubLabelProvider.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/ConditionedStubSelectionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$12.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditComponentDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditComponentDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditComponentDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditComponentDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog$DependencyToNameFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$12.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$13.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$14.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$Validator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog$multiHashtable.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditTimerDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditTimerDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditTimerDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EditTimerDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$12.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$13.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$14.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$15.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$Validator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog$multiHashtable.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog$Validator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/event/ConditionEventEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/event/editionitem/MainConditionEventEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/event/editionitem/MainConditionEventEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/event/editionitem/MainConditionEventEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/event/editionitem/MainConditionEventEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ConditionedStubResponsibilityNodeEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityNodeEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityNodeVisualEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$10.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$11.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$12.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$8.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem$9.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$4.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$5.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$6.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem$7.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubResponsibilityEditionItemContainer$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubResponsibilityEditionItemContainer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/MainResponsibilityNodeVisualEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/MainResponsibilityNodeVisualEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityConditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityEditionItemContainer$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityEditionItemContainer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityMaterializationEditionItemContainer$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityMaterializationEditionItemContainer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart$ComponentXYLayoutEditPolicy.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ConditionConnectionEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/DependencyToColorFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/DependencyToLineStyleFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/DirectionArrowNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/DynamicStubNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ForkNodeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ForkNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/JoinNodeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/JoinNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/PathNodeEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/PathNodeEditPart$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/PathNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/PathSegmentEditPart$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/PathSegmentEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/ResponsibilityNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/StubNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/TimerNodeEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/UCMDiagramEditPart$UCMXYLayoutEditPolicy.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/UCMDiagramEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/UCMEditPartFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/editparts/VisualDiagramJumpEditPart.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/ActorFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/AgentFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/AndForkFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/AndJoinFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/CurveDiagramLayer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/CurvePolylineConnection.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/DirectionArrowFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/DynamicStubFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/ObjectFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/OrForkFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/OrJoinFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/PathPointFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/PointFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/PointFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/ProcessFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/ResponsibilityNodeFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/StubFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/ThreeConnectionFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/TimerFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/VisualDiagramJumpFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/figures/WaitingPlaceFigure.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/properties/MapPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/properties/ResponsibilitiesPropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmeditor/properties/RolePropertySource.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/UCMDiagram.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/UcmmodelFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/UcmmodelPackage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/impl/UCMDiagramImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/impl/UcmmodelFactoryImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/impl/UcmmodelPackageImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/util/UcmmodelAdapterFactory$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/util/UcmmodelAdapterFactory.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/ucmmodel/util/UcmmodelSwitch.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizard$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizard$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizard.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizardPage$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizardPage$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizardPage$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotNewWizardPage.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizard$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizard$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizard$FlabotFilenameFilter.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizard.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizardPage$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizardPage$2.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizardPage$3.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/edit/wizards/FlabotTemplateWizardPage.class create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/editormodel.ecore create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/flabot.genmodel create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Actor16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Actor24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Agent16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Agent24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/DynStub16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/DynStub24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Object16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Object24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Process16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/Process24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/ascendingOrder.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/bring_forward.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/bring_to_front.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/cd.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/close.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/component.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/core.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/descendingOrder.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/export.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/grid.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/interface.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/interface_link.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/map.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/note.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/note_link.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/path16x16.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/path24x24.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/port.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/provided.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/relationship.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/required.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/responsibility.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/role.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/send_backward.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/send_to_back.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/stereotype.gif create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/timer.png create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/timer_2.png create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/icons/ucm.gif create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/Messages.class create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/messages/messages.properties create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/ArgumentsReplacer$Transition.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/ArgumentsReplacer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/MessagesUtil.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/SpecialCharacterConversion.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/SpecialCharactersConverter$Transition.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/messages/util/SpecialCharactersConverter.class create mode 100755 org.isistan.flabot/bin/org/isistan/flabot/ucmmodel.ecore create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/DefualtValidatorSorter.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/EObjectIdGenerator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/ImageSaveUtil.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/SorterToTable.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/ValidatorSorterTable.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/consistency/ConsistencyManager.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/consistency/Constraint.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/consistency/GroupBasedConsistencyManagerImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/consistency/GroupBasedDiagnostician.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/AbstractCompositeEditionItem$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/AbstractCompositeEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/AbstractEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/CompositeEditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/CompositeEditionItemStatus.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/DataAdapter.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/EditionItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/EditionItemChangeListener.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/EditionItemStatus$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/EditionItemStatus$Type.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/EditionItemStatus.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/IdentityDataAdapter.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/SingleEditionItemStatus.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/CompositeEditionTabItem$ChildrenActivator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/CompositeEditionTabItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItem.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItemContainer$1.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItemContainer.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItemContainerImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItemImpl.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/edition/tab/EditionTabItemLoader.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/locator/ComponentLocator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/locator/ComponentLocatorException.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/locator/ComponentLocatorManager.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/locator/ExtensionLoaderComponentLocator.class create mode 100644 org.isistan.flabot/bin/org/isistan/flabot/util/locator/impl/ComponentLocatorManagerImpl.class create mode 100755 org.isistan.flabot/build.properties create mode 100755 org.isistan.flabot/codetemplates.xml create mode 100755 org.isistan.flabot/flabotExtensions.flabot create mode 100755 org.isistan.flabot/icons/flabot.gif create mode 100755 org.isistan.flabot/lib/graphbuilder.jar create mode 100755 org.isistan.flabot/lib/slf4j.jar create mode 100755 org.isistan.flabot/mylog.tracelog create mode 100755 org.isistan.flabot/org.eclipse.jdt.core.prefs create mode 100755 org.isistan.flabot/org.eclipse.jdt.ui.prefs create mode 100755 org.isistan.flabot/plugin.properties create mode 100755 org.isistan.flabot/plugin.xml create mode 100755 org.isistan.flabot/schema/componentDiagramEditorContextMenuAction.exsd create mode 100755 org.isistan.flabot/schema/componentEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/componentVisualEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/conditionEventEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/conditionedStubResponsibilityNodeEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/responsibilityEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/responsibilityMaterializationEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/responsibilityNodeEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/responsibilityNodeVisualEditionTabItem.exsd create mode 100755 org.isistan.flabot/schema/ucmEditorContextMenuAction.exsd create mode 100755 org.isistan.flabot/src/org/isistan/flabot/ExtensionPointConstants.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/FlabotPlugin.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/componentmodel.ecore create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel.ecore create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/BehavioralFeatureModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ComponentModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ComponentRole.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Condition.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ConditionEvent.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ConditionedStub.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/CoreModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/CoremodelFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/CoremodelPackage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/DirectionArrowNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/DynamicStub.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/DynamicStubNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ExtensibleElement.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ExtensibleElementUtil.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Family.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/FamilyElement.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/FeatureModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ForkCondition.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ForkNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/InterfaceLink.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/InterfaceModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/InterfacePrologCode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/JoinNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/NamedElementModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Note.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/NoteElementModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Path.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/PathNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/PortModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Property.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/PropertyElementModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Registrable.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Relationship.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/RelationshipDirection.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Responsibility.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ResponsibilityNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/ResponsibilityRegistry.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/SimplePathNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/Stereotype.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/StereotypedElementModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/StubNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/TimerNode.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/UseCaseMap.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/ComponentUniqueNameConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/ConditionEventGeneralConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/ConditionMappingHasCorrectFamilyConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/FamilyHasAllComponentConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/InterfaceLinkMappedToPathGeneralConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/InterfacesMustHaveSameNameConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/ResponsibilityGeneralConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/ResponsibilityNodeGeneralConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/StubMustHaveFamilyConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/constraint/UseCaseMapGeneralConstraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/BehavioralFeatureModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ComponentModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ComponentRoleImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ComponentToMapMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ConditionEventImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ConditionEventToConditionEventMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ConditionImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ConditionedStubImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/CoreModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/CoremodelFactoryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/CoremodelPackageImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/DirectionArrowNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/DynamicStubImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/DynamicStubNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/EStringToEObjectMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ExtensibleElementImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/FamilyElementImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/FamilyImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/FeatureModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ForkConditionImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ForkNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/InterfaceLinkImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/InterfaceModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/JoinNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/NamedElementModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/NoteElementModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/NoteImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/PathImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/PathNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/PortModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/PropertyElementModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/PropertyImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/RelationshipImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ResponsibilityImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ResponsibilityNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ResponsibilityRegistryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/ResponsibilityToRegistrableMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/RoleToMapMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/SimplePathNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/StereotypeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/StereotypedElementModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/StubNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/TimerNodeImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/impl/UseCaseMapImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/util/CoremodelAdapterFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/util/CoremodelSwitch.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/coremodel/util/CoremodelValidator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/ComponentEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/ComponentEditorContextMenuProvider.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/ComponentEditorPaletteFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/AssignResponsibilitiesAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/CopyAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/CutAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/EditComponentAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/EditPropertiesAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/EditResponsibilitiesAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/actions/EditStereotypesAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/DeleteComponentDiagramCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/AddPropertyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/AddResponsibilityToComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/AddResponsibilityToCoreCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/AddStereotypeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeleteComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeleteInterfaceCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeletePortCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeletePropertyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeleteResponsibilityFromComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/DeleteStereotypeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/ModifyNamedElementCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/ModifyPropertyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/ModifyResponsibilityCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/ModifyStereotypeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/model/ModifyStereotypeInElementCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/AddComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/AddInterfaceCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/AddInterfaceConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/AddPortCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/AddRelationshipConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/ComponentSetConstraintCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteInterfaceConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteRelationshipConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualInterfaceCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/DeleteVisualPortCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/commands/visual/PortSetConstraintCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/EditPropertyDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/PropertyEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/RenameDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/ResponsibilitiesDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/StereotypeDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/component/ComponentEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/component/ComponentVisualEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/MainComponentEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/PortAndInterfacesEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/component/editionitem/VisualizationComponentEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/ResponsibilityEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/responsibility/editionitem/MainResponsibilityEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterialization.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterializationEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/dialogs/responsibilitymaterialization/ResponsibilityMaterializationImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ComponentDiagramEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditManager.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ComponentEditPartFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ConnectionToConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/InterfaceConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/InterfaceEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/PortEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/ProvidedInterfaceEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/RelationshipConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/editparts/RequiredInterfaceEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/ComponentBoxAnchor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/ComponentCellEditorLocator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/ComponentFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/ConnectionToConnectionAnchor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/InterfaceFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/PortFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/ProvidedInterfaceFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/figures/RequiredInterfaceFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/ComponentDiagramProperty.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/ComponentPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/DirectionProperty.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/RelationshipConnectionProperty.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/ResponsibilityPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componenteditor/properties/StereotypedPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/ComponentDiagram.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/ComponentmodelFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/ComponentmodelPackage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/impl/ComponentDiagramImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/impl/ComponentmodelFactoryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/impl/ComponentmodelPackageImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/util/ComponentmodelAdapterFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/componentmodel/util/ComponentmodelSwitch.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/ActionLoader.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/CommandExecutor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/FlabotCommandStack.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/FlabotGraphicalEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/TabItemComparator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/AddNewFolderAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/ArrangeAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/CloseDiagramAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/CopyAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/CreateComponentDiagramAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/CreateUCMDiagramAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/DeleteOutlineAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/EditVisualizationAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/EditorSnapGeometryAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/EditorToggleGridAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/ExportDiagramAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/PasteAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/PrintDiagramAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/RunConsistencyCheckAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/RunEventManagerAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/RunFamilyManagerAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/actions/SelectAllAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/AddDiagramFolder.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/AddDiagramToFolderCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/AddNoteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/AddNoteConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/ArrangeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/CreateComponentEditorCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/CreateUCMEditorCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/DeleteDiagramCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/DeleteFolderCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/DeleteNoteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/DeleteNoteConnectionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/EditNoteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/EditVisualizationCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/EditorActivatorCommandWrapper.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/NoteSetConstraintCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/NotifierCommandWrapper.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/SetDetailLevelCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/bendpoints/BendpointCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/bendpoints/CreateBendpointCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/bendpoints/DeleteBendpointCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/bendpoints/MoveBendpointCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddComponentPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddInterfaceConnectionPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddInterfacePasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddNoteConnectionPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddNotePasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddPortPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddRelationshipConnectionPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/AddRoleComponentPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/RetargetConnectionPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/commands/paste/RetargetParentPasteCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/ComponentRoleSelectionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/ExtendedElementListSelectionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/ResponsibilitySelectionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/StandardEditionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyCheckVisualizer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyContentProvider.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyDetailsDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/consistency/ConsistencyLabelProvider.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/dialogs/editionitem/EditVisualizationTabItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/ConnectedEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/ConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/ContainerEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/NoteCellEditorLocator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/NoteConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/NoteEditManager.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editparts/NoteEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/editpolicies/ConnectionBendpointEditPolicy.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/BendpointLocator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/BentCornerFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/CloneableShape.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/ComponentFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/DirectEditableFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/FixedConnectionAnchor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/LineConnection.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/figures/NoteFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/properties/AbstractPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/properties/DimensionPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/properties/LocationPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/properties/NamedElementPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editor/properties/VisualPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Color.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/ConnectionBendpoint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/ConnectionVisualModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Diagram.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Dimension.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/EditormodelFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/EditormodelPackage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/FlabotFileModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Folder.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/NodeVisualModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Point.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/Util.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/VisualDiagramJump.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/VisualModel.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/ColorImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/ConnectionBendpointImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/ConnectionVisualModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/DiagramImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/DimensionImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/EStringToEObjectMapEntryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/EditormodelFactoryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/EditormodelPackageImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/FlabotFileModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/FolderImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/NodeVisualModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/PointImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/VisualDiagramJumpImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/impl/VisualModelImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/util/EditormodelAdapterFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/util/EditormodelSwitch.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/editormodel/util/EditormodelValidator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/DependenciesPropertiesPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/EditorPerspectiveFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/ExtensionsPropertiesPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotFileDetailsPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotFormPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotMultiPageContextMenuProvider.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotMultiPageEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotMultiPageEditorContributor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/FlabotMultipagePropertiesEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/OverviewPropertiesPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/UnsettableDirtyStateEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/AbstractTransferDragSourceListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/AbstractTransferDropTargetListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/ComponentDragListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/ComponentDropFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/ComponentDropListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/DiagramDragListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/DiagramDropListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/DropComponentRoleFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/InterfaceDragListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/InterfaceDropFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/InterfaceDropListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/NativeDropRequest.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/PortDragListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/PortDropFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/multipage/dnd/PortDropListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/ComponentRoleTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/ComponentTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/CoreModelTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/DiagramFolderTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/DiagramTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/FlabotFileTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/FlabotModelTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/FlabotTreeEditPartFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/InterfaceLinkTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/InterfaceTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/PortTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/RelationshipTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/ResponsibilityTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/StartPointEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/StereotypeTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/outline/UseCaseMapTreeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/ComponentCreationTool.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/PathCreationTool.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/UCMEditor.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/UCMEditorContextMenuProvider.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/UCMEditorPaletteFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/CopyAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/CutAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditComponentAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditDynamicStubAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditLineVisualizationAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditOrForkAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditResponsibilityNodeAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditStubAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/EditTimerAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertDirectionArrowAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertDynamicStubAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertForkAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertJoinAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertNodeAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertResponsibilityAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertStubAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/InsertTimerAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/JoinPathsAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/MergePathsAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/RotateForkJoinAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/RotatePathNodeAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/actions/ShowHideAllConditionDependeciesAction.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/DeleteUCMDiagramCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddAssociatedConditionToConditionEventCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddAssociatedNodeToFamilyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionEventToCoreModelCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionToResponsibilityCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddConditionedStubToDynamicStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/AddFamilyToCoreModelCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteAssociatedConditionFromConditionEventCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteAssociatedNodeFromFamilyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteComponentRoleCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionEventFromCoreModelCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionFromFamilyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionFromResponsibilityCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteConditionedStubFromDynamicStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteFamilyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteFamilyElementCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteMapCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeletePathCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteResponsibilityCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteResponsibilityNodeAssociationsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/DeleteStubFromCoreModelCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionEventCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyConditionedStub.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyDynamicStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyFamilyCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyForkConditionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyPrologCodeConditionEventCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyTimerCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/model/ModifyUseCaseMapLevelInfoCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/AddComponentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/ComponentSetConstraintCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteDynamicStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteEndPointCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteForkCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteJoinCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeletePathCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeletePathNodeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteTimerCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteVisualComponentRoleCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/DeleteWaitingPlaceCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/EditVisualizationPathCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertComponentRoleCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertDirectionArrowCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertDynamicStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertForkCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertJoinCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertNodeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertPathNodeCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertResponsibilityCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertStubCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertTimerCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/InsertWaitingPlaceCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/JoinPathsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/MergePathsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/MoveResponsibilityOutComponent.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeCreateCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeReparentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/PathNodeSetConstraintCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/ResponsibilityNodeReparentCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/RotateFigureCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/UpdateAllPathCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/HideAllConditionsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/HideConditionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowAllConditionsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowConditionCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowHideAllConditionsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/commands/visual/visualconditions/ShowHideConditionsCommand.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/ConditionedStubSelectionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/DynamicStubManagerDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditComponentDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditDependencyDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditDynamicStubDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditEventConditionDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditOrForkConditionsDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditStubDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EditTimerDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/EventDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/FamilyManagerDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/UseCaseMapDialog.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/event/ConditionEventEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/event/editionitem/MainConditionEventEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ConditionedStubResponsibilityNodeEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityNodeEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/ResponsibilityNodeVisualEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubConditionEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ConditionedStubResponsibilityEditionItemContainer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/MainResponsibilityNodeVisualEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityConditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityEditionItemContainer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/dialogs/responsibilitynode/editionitem/ResponsibilityMaterializationEditionItemContainer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/ComponentEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/ConditionConnectionEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/DependencyToColorFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/DependencyToLineStyleFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/DirectionArrowNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/DynamicStubNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/ForkNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/JoinNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/PathNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/PathSegmentEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/ResponsibilityNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/StubNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/TimerNodeEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/UCMDiagramEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/UCMEditPartFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/editparts/VisualDiagramJumpEditPart.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/ActorFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/AgentFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/AndForkFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/AndJoinFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/CurveDiagramLayer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/CurvePolylineConnection.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/DirectionArrowFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/DynamicStubFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/ObjectFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/OrForkFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/OrJoinFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/PathPointFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/PointFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/ProcessFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/ResponsibilityNodeFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/StubFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/ThreeConnectionFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/TimerFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/VisualDiagramJumpFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/figures/WaitingPlaceFigure.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/properties/MapPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/properties/ResponsibilitiesPropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmeditor/properties/RolePropertySource.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/UCMDiagram.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/UcmmodelFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/UcmmodelPackage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/impl/UCMDiagramImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/impl/UcmmodelFactoryImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/impl/UcmmodelPackageImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/util/UcmmodelAdapterFactory.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/ucmmodel/util/UcmmodelSwitch.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/wizards/FlabotNewWizard.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/wizards/FlabotNewWizardPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/wizards/FlabotTemplateWizard.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/edit/wizards/FlabotTemplateWizardPage.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/editormodel.ecore create mode 100755 org.isistan.flabot/src/org/isistan/flabot/flabot.genmodel create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Actor16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Actor24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Agent16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Agent24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/DynStub16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/DynStub24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Object16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Object24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Process16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/Process24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/ascendingOrder.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/bring_forward.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/bring_to_front.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/cd.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/close.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/component.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/core.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/descendingOrder.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/export.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/grid.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/interface.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/interface_link.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/map.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/note.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/note_link.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/path16x16.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/path24x24.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/port.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/provided.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/relationship.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/required.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/responsibility.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/role.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/send_backward.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/send_to_back.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/stereotype.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/timer.png create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/timer_2.png create mode 100755 org.isistan.flabot/src/org/isistan/flabot/icons/ucm.gif create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/Messages.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/messages.properties create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/util/ArgumentsReplacer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/util/MessagesUtil.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/util/SpecialCharacterConversion.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/messages/util/SpecialCharactersConverter.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/ucmmodel.ecore create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/DefualtValidatorSorter.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/EObjectIdGenerator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/ImageSaveUtil.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/SorterToTable.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/ValidatorSorterTable.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/consistency/ConsistencyManager.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/consistency/Constraint.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/consistency/GroupBasedConsistencyManagerImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/consistency/GroupBasedDiagnostician.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/AbstractCompositeEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/AbstractEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/CompositeEditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/CompositeEditionItemStatus.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/DataAdapter.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/EditionItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/EditionItemChangeListener.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/EditionItemStatus.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/IdentityDataAdapter.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/SingleEditionItemStatus.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/CompositeEditionTabItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/EditionTabItem.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/EditionTabItemContainer.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/EditionTabItemContainerImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/EditionTabItemImpl.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/edition/tab/EditionTabItemLoader.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/locator/ComponentLocator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/locator/ComponentLocatorException.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/locator/ComponentLocatorManager.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/locator/ExtensionLoaderComponentLocator.java create mode 100755 org.isistan.flabot/src/org/isistan/flabot/util/locator/impl/ComponentLocatorManagerImpl.java create mode 100755 org.isistan.flabot/trace.config create mode 100755 org.isistan.javalog/.classpath create mode 100755 org.isistan.javalog/.project create mode 100755 org.isistan.javalog/build.properties create mode 100755 org.isistan.javalog/lib/JavaLog/BUGREPORT create mode 100755 org.isistan.javalog/lib/JavaLog/COPYING create mode 100755 org.isistan.javalog/lib/JavaLog/ChangeLog create mode 100755 org.isistan.javalog/lib/JavaLog/ClassPath.bat create mode 100755 org.isistan.javalog/lib/JavaLog/ClassPath.bat.tmpl create mode 100755 org.isistan.javalog/lib/JavaLog/ClassPath.sh create mode 100755 org.isistan.javalog/lib/JavaLog/ClassPath.sh.tmpl create mode 100755 org.isistan.javalog/lib/JavaLog/Compatibility.txt create mode 100755 org.isistan.javalog/lib/JavaLog/Credits create mode 100755 org.isistan.javalog/lib/JavaLog/Developers create mode 100755 org.isistan.javalog/lib/JavaLog/GenericLogicModule.java create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.bat create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.bat.tmpl create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.bmp create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.gif create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.sh create mode 100755 org.isistan.javalog/lib/JavaLog/JavaLog.sh.tmpl create mode 100755 org.isistan.javalog/lib/JavaLog/LICENCE create mode 100755 org.isistan.javalog/lib/JavaLog/LICENSE.jakarta-servletapi-3.2.3 create mode 100755 org.isistan.javalog/lib/JavaLog/Makefile create mode 100755 org.isistan.javalog/lib/JavaLog/TODO create mode 100755 org.isistan.javalog/lib/JavaLog/Uninstaller/uninstaller.jar create mode 100755 org.isistan.javalog/lib/JavaLog/announce create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Arithmetic.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Communication.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/ControlPredicates.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/DataBase.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/DiffLists.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Equality.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Flags.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/InputOutput.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/ListOperations.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Miscellaneous.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Mobility.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/PrologException.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/Reflection.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/ServerList.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/TermComp.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/TermPredicates.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/TermType.pl create mode 100755 org.isistan.javalog/lib/JavaLog/classes/JavaLog/init/UnixCommands.pl create mode 100755 org.isistan.javalog/lib/JavaLog/doc++2javadoc.pl create mode 100755 org.isistan.javalog/lib/JavaLog/doc/JavaLog.lyx create mode 100755 org.isistan.javalog/lib/JavaLog/doc/JavaLogAPI.pro create mode 100755 org.isistan.javalog/lib/JavaLog/doc/README-viewer.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Brain.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/BrainInvalidCapability.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/EngineThread.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/IndexedLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/JMain.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Loader.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/LogicKnowledge.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/LogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/LogicModuleIterator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Main.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/NUnionFind.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/NotifierLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/ObjToken.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Permissions.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlAtom.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlAtomic.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlBuiltIn.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlBuiltInClause.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlClause.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlEngine.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlException.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlFVar.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlInt.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlJavaObj.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlList.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlLocalLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlMath.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlNumber.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlObject.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlOp.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlOpTable.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlParseError.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlParseWarn.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlParser.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlREngine.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlReal.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlRemoteEngine.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlRemoteLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlRestrictedClause.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlRestrictedLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlRuntimeException.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlStackElement.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlStruct.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlStructArgs.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlTypeCompatibility.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlUVar.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlVar.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PlVarTable.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Preprocessor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PrologDatabase.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/PrologRemoteDatabase.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/RemoteLogicModule.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/Scanner.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/ScannerTokenTypes.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/StateMemento.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/UnionFind.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/UnionFind2.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/UnionFindJLog.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/aip/CAutomata.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/aip/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/aip/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/aip/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/classpath/ClassFile.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/classpath/ClassPath.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/classpath/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/classpath/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/classpath/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/DebugDispatcher.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/DebugEngineThread.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/DebugThreadState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/DebugThreadsState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/Debugger.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/EventListener.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/PlDebugEngine.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/ThreadStateEvent.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/ThreadStateListener.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/AlternativesView.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/HtmlBrowser.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/HtmlPanel.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/dinterface/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/DebugEvent.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/EngineState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/EngineThreadState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/Events.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/HotpointChangedListener.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/SpypointState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/events/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/AboutWindow.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/ActionButton.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/ActionToggleButton.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/ActionToolBar.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/BreakpointPopupMenu.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/BreakpointsTreeListener.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/DebugRunner.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/DebugView.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/DebuggerGUI.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/EngineThreadsTree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/HotpointsCellRenderer.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/HotpointsTree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/ThreadsStateView.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/ThreadsTreeCellRenderer.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/AboutAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/ActivateAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/AddFunctorArityPointAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/AddFunctorPointAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/AddGroupAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/CallAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/ConsultAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/DeactivateAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/EnableThreadTracingAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/FindClauseAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/FindPortAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/LeapAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/ListingAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/PrologFileFilter.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/ReconsultAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/RedoAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/RemovePointAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/SaveAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/SaveAsAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/SkipAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/StepAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/StopAction.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/actions/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/gui/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/FindClause.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/FunctorArityPoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/FunctorPoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/Hotpoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/HotpointsGroup.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/HotpointsManager.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/RootHotpoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/SimpleHotpoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/SkipBreakpoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/StepBreakpoint.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/hotpoints/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/debugger/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/Arithmetic.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/BuiltInExtensions.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/ControlPredicates.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/DataBase.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/Equality.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/InputOutput.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/ListOperations.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/Miscellaneous.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/Mobility.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/Reflection.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/ServerList.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/TermPredicates.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/TermTypes.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/UnixCommand.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/extension/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/AgentManager.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/BrainLet.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/BrainState.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/BrainThread.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/FetchProtocol.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/HostStack.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/HostStackElement.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/HttpMessage.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/LogicalNetworkInfo.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MARlet.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MarletMessenger.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MobileBrainEngine.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MovePolicy.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MovilogParseException.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MovilogParser.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/MultipleEnumeration.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/Observable.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/Observer.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/PNSBroadCastPolicy.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/PNSSimpleBroadCastPolicy.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/Pair.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/Protocol.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/ProtocolNameServer.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/ProtocolRegistry.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/QueryExecutionThread.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/ResponsePool.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/VectorEnumerator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/VisitedMovePolicy.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/WrapperDatabase.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/mobility/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/ArgInvocator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/ConstructorInvocator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/DefTypeCompatibility.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/FieldInvocator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/Invocator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/MethodInvocator.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/TypeCompatibility.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/reflection/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/testParser.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/DereferenceVisitor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/FreezerVisitor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/ToListVisitor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/TransformerVisitor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/Visitor.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/package-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/package-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/JavaLog/visitor/package-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/allclasses-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/deprecated-list.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/help-doc.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/index-all.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/index.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/overview-frame.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/overview-summary.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/overview-tree.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/package-list create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/packages.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/serialized-form.html create mode 100755 org.isistan.javalog/lib/JavaLog/doc/api-docs/stylesheet.css create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image002.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image004.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image006.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image008.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image010.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image012.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image014.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/images/image016.jpg create mode 100755 org.isistan.javalog/lib/JavaLog/doc/references.txt create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/CommerceAgent.javalog create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Person.javalog create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Send.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Send2.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Send2.javalog create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/SimpleEmbed.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/SimpleEmbed.javalog create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/SimpleTest.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Test.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/Test.javalog create mode 100755 org.isistan.javalog/lib/JavaLog/examples/JavaLog/pract1.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/Test.java create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/explicit.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/implicit.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/marlet.dsk create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/marlet.html create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/marlet.jpr create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/run.bat create mode 100755 org.isistan.javalog/lib/JavaLog/examples/brainlets/searcher.properties create mode 100755 org.isistan.javalog/lib/JavaLog/examples/movilog/Readme.txt create mode 100755 org.isistan.javalog/lib/JavaLog/examples/movilog/Sample.txt create mode 100755 org.isistan.javalog/lib/JavaLog/examples/movilog/predicates.doc create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/boyer.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/browse.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/cal.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/chat_parser.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/crypt.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/ham.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/meta_qsort.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/nand.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/poly_10.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/qsort.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/queens.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/queensn.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/query.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/reducer.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/sendmore.pl create mode 100755 org.isistan.javalog/lib/JavaLog/examples/pl/zebra.pl create mode 100755 org.isistan.javalog/lib/JavaLog/help.html create mode 100755 org.isistan.javalog/lib/JavaLog/install.xml create mode 100755 org.isistan.javalog/lib/JavaLog/java-getopt-1.0.9.jar create mode 100755 org.isistan.javalog/lib/JavaLog/java-getopt-1.0.9.tar.gz create mode 100755 org.isistan.javalog/lib/JavaLog/lib/COPYING.LIB.gnu-regexp create mode 100755 org.isistan.javalog/lib/JavaLog/lib/RIGHTS.antlr create mode 100755 org.isistan.javalog/lib/JavaLog/lib/antlrall.jar create mode 100755 org.isistan.javalog/lib/JavaLog/lib/gnu-regexp-1.1.4.jar create mode 100755 org.isistan.javalog/lib/JavaLog/lib/jgl3.1.0.jar create mode 100755 org.isistan.javalog/lib/JavaLog/lib/servlet.jar create mode 100755 org.isistan.javalog/lib/JavaLog/logo.gif create mode 100755 org.isistan.javalog/lib/JavaLog/persistent/PersistentLogicModule.java create mode 100755 org.isistan.javalog/lib/JavaLog/persistent/PersistentLogicModuleIterator.java create mode 100755 org.isistan.javalog/lib/JavaLog/persistent/PersistentVisitor.java create mode 100755 org.isistan.javalog/lib/JavaLog/persistent/ResultSetIterator.java create mode 100755 org.isistan.javalog/lib/JavaLog/persistent/Seriate.java create mode 100755 org.isistan.javalog/lib/JavaLog/resources/about.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/addgroup.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/breakpoint.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/call.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/find-clause.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/find-port.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/group-close.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/group-open.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/j1.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/j2.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/j3.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/j4.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/j5.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/javalog.html create mode 100755 org.isistan.javalog/lib/JavaLog/resources/javalogdeb.html create mode 100755 org.isistan.javalog/lib/JavaLog/resources/leap.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/listing.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/open.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/reconsult.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/redo.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/save.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/saveas.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/skip.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/step.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/stop.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/thread-locked.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/thread-running.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/thread-step.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/threadstracing-off.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/threadstracing-on.gif create mode 100755 org.isistan.javalog/lib/JavaLog/resources/tracepoint.gif create mode 100755 org.isistan.javalog/lib/JavaLog/servlet.jar create mode 100755 org.isistan.javalog/lib/JavaLog/setup.bat create mode 100755 org.isistan.javalog/lib/JavaLog/setup.sh create mode 100755 org.isistan.javalog/lib/JavaLog/sun.cfg create mode 100755 org.isistan.javalog/lib/JavaLog/t create mode 100755 org.isistan.javalog/lib/JavaLog/test.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop12-5i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop14-1i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop14-1ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop14-1iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop14-3i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop15-1i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop15-1ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop15-1iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop17-1i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop18-1ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop18-1iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop18-1iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop18-1v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop2-1-3.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop2-1.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop2-2.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1v1.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1vi.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-1vii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-2ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-2iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-2v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-3i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-3ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-3iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-3iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-3v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-4i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-4ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-4iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop3-4iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop7-5i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-2i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-2ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3ii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3iii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3vi.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3vii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop8-3viii.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop9-1i.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/aop9-2iv.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite.tar.gz create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/README create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/abolish create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/and create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arg create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_diff create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_eq create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_gt create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_gt= create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_lt create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/arith_lt= create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/asserta create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/assertz create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atom create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atom_chars create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atom_codes create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atom_concat create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atom_length create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/atomic create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/bagof create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/call create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/catch-and-throw create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/char_code create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/clause create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/compound create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/copy_term create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/current_input create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/current_output create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/current_predicate create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/current_prolog_flag create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/cut create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/fail create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/file_manip create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/findall create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/float create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/functor create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/functor-bis create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/halt create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/if-then create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/if-then-else create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/inriasuite.obp create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/inriasuite.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/integer create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/is create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/junk create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/nonvar create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/not_provable create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/not_unify create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/number create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/number_chars create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/number_codes create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/once create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/or create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/repeat create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/retract create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/set_prolog_flag create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/setof create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/sub_atom create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/t_foo.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_diff create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_eq create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_gt create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_gt= create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_lt create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/term_lt= create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/true create mode 100755 org.isistan.javalog/lib/JavaLog/test/inriasuite/unify create mode 100755 org.isistan.javalog/lib/JavaLog/test/prologsuite.tar.gz create mode 100755 org.isistan.javalog/lib/JavaLog/test/sands.htm create mode 100755 org.isistan.javalog/lib/JavaLog/test/suites.html create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/README create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/als_v.pro create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/als_v1.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/byteio.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/charconv.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/charfile.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/chario.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/codeio.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/db.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/direct2.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/gnuprolog_v.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/include.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/notes create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/opfile.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/out.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/outchar.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/peekbyte.bin create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/peekchar.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/peekfile.bin create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/peekfile.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec74.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec78.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec810.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec811.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec812.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec813.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec814.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec815.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec816.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec817.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec82.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec83.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec84.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec85.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec86.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec87.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec88.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec89.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec91.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec92.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec93.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/sec94.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/termfile.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/termio.tmp create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/utils_so.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/validn.out create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/validn.txt create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/van1.pl create mode 100755 org.isistan.javalog/lib/JavaLog/test/vanilla/vanilla.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web.xml create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Brain.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/BrainInvalidCapability.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Command.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/CompressionObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/EngineThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/FindObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/IndexedLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/ItemCommand.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/JCommand.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/JItemCommand.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/JMain.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Loader.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/LogicKnowledge.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/LogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/LogicModuleIterator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Main.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/NUnionFind.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/NotifierLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/ObjToken.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Permissions.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlAtom.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlAtomic.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlBuiltIn.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlBuiltInClause.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlClause.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlEngine$FileInStack.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlEngine.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlException.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlFVar.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlInt.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlJavaObj.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlList.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlLocalLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlMath.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlNumber.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlOp.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlOpTable.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlParseError.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlParseWarn.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlParser.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlREngine.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlREngine_Stub.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlReal.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlRemoteEngine.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlRemoteLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlRestrictedClause.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlRestrictedLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlStackElement.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlStruct.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlStructArgs.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlTypeCompatibility.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlUVar.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlVar.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlVarTable.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PlainLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Preprocessor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PrologDatabase.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/PrologRemoteDatabase.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/RemoteLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/RemoteLogicModule_Stub.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/Scanner.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/ScannerTokenTypes.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/StateMemento.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/UFObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/UnionFind.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/UnionFind2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/UnionFindJLog.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/UnionObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/aip/CAutomata.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/classpath/ClassFile.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/classpath/ClassPath.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/classpath/ClassPathEntry.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/AbstractEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/AbstractMessage.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/Blackboard.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BlackboardEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BlackboardListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BlackboardMessage.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BrainletId.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BrainletProxy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/BrainletRegistry.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/CommunicationManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/CommunicationTest$QueryThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/CommunicationTest.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/EventHandlingPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/FCFSEventHandling.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageDispatcher.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageHandleThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageLock.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageSender.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MessageWaitingPool.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MobilityEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MobilityListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MovilogEventHandler.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MovilogMessage.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MovilogMessageEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MovilogMessageListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/MovilogMobilityEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/PriorityEventHandling.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/PrologMessageVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/RoleManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/RoleUpdateInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/RoleUpdatingPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/communication/SimpleRolePolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/DebugDispatcher.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/DebugEngineThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/DebugThreadState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/DebugThreadsState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/Debugger.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/EventListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/PlDebugEngine.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/ResourceLoader.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/ThreadStateEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/ThreadStateListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/AlternativesView$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/AlternativesView.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/HtmlBrowser$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/HtmlBrowser.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/HtmlPanel$PageLoader.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/dinterface/HtmlPanel.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/DebugEvent.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/EngineState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/EngineThreadState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/Events.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/HotpointChangedListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/events/SpypointState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/AboutWindow$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/AboutWindow$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/AboutWindow.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/ActionButton.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/ActionToggleButton.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/ActionToolBar.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/BreakpointPopupMenu.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/BreakpointsTreeListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebugRunner.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebugView.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$3.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$4.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$5.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$6.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI$7.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/DebuggerGUI.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/EngineThreadsTree.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/HotpointsCellRenderer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/HotpointsTree.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/ThreadsStateView.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/ThreadsTreeCellRenderer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/AboutAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/ActivateAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/AddFunctorArityPointAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/AddFunctorPointAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/AddGroupAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/CallAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/ConsultAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/DeactivateAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/EnableThreadTracingAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/FindClauseAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/FindPortAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/LeapAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/ListingAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/PrologFileFilter.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/ReconsultAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/RedoAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/RemovePointAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/SaveAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/SaveAsAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/SkipAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/StepAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/gui/actions/StopAction.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/FindClause.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/FunctorArityPoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/FunctorPoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/Hotpoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/HotpointsGroup.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/HotpointsManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/RootHotpoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/SimpleHotpoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/SkipBreakpoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/debugger/hotpoints/StepBreakpoint.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/examples/Send.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/exception/CalculationError.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/exception/DomainError.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/exception/PlRuntimeException.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/exception/SyntaxError.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/exception/TypeError.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Arithmetic.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/BuiltInExtensions.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Communication.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/ControlPredicates.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/DataBase.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Equality.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlBinaryInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlBinaryOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlFileBInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlFileBOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlFileTInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlFileTOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlRemoteBInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlRemoteBOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlRemoteTInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlRemoteTOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlTextInputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/PlTextOutputStream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/StandardErr.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/StandardIn.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/StandardOut.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/IO/Stream.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/InputOutput.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/ListOperations.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Miscellaneous.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Mobility.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/PrologException.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/Reflection.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/ServerList.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/TermComp.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/TermPredicates.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/TermTypes.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/extension/UnixCommand.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Arithmetic.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Communication.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/ControlPredicates.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/DataBase.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/DiffLists.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Equality.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Flags.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/InputOutput.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/ListOperations.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Miscellaneous.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Mobility.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/PrologException.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/Reflection.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/ServerList.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/TermComp.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/TermPredicates.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/TermType.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/init/UnixCommands.pl create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/AgentManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/BrainLet.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/BrainState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/BrainThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/BrainletTest$QueryThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/BrainletTest.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/FetchProtocol.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/GetIP.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/HostStack.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/HostStackElement.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/HttpMessage.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/LogicalNetworkInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MARlet.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MARletRegistrationListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MARletRegistrationListenerMC.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MarletMessenger.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MobileBrainEngine.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MovePolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MovilogParseException.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MovilogParser.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/MultipleEnumeration.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/Observable.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/Observer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/PNSBroadCastPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/PNSSimpleBroadCastPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/Pair.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/Protocol.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/ProtocolNameServer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/ProtocolRegistry.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/QueryExecutionThread.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/ResponsePool.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/VectorEnumerator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/VirtualHostAddressFinder.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/VisitedMovePolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/WrapperDatabase.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/services/BrainletViewingServices.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/services/MARletServices.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/services/ServiceProvider.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/services/SuspendedAgentsManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/EchoInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/EchoPacketReceiver.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/EchoRequester.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/EchoServer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/RegistrationListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ViewerResources.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/DistributionManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/EventDispatcher.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/EventListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/EventSelectionPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/FIFOPolicy.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/Peer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/RemoteEventListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/SocketEventListener.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/host/HostDistributionManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/host/HostSocketDistributionManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/viewer/SocketReceiver.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/viewer/SocketViewerDistributionManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/dispatcher/viewer/ViewerDistributionManager.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/BrainletCreated.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/BrainletEventState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/BrainletMoved.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/Event.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/EventIdentifiers.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/QueryResolved.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/events/SentFailedState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/BrainletExecutionState.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/BrainletInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Capability.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/CapabilityInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/ExtendedMarletMessenger.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Finalized.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Host.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/HostInfo.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/LogicalNetwork.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/MessengersPool.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/QueryResult.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Running.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Session.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/model/Suspended.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/resources/machines.properties create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletJTabbedPane$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletJTabbedPane$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletJTabbedPane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletPane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletPopupMenu$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletPopupMenu$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletPopupMenu.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/BrainletTreeNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/CapabilityJTabbedPane$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/CapabilityJTabbedPane$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/CapabilityJTabbedPane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/CapabilityPane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/CapabilityTreeNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostJTree.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostPropertiesView$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostPropertiesView$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostPropertiesView$3.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostPropertiesView.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostTreeNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/HostTreeNodeChild.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/LogicalNetworkTreeNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/MovilogJTree.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/MovilogNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/MovilogTreeCellRenderer.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/OrdinaryTreeNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/SentFailed.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/SessionNode.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/ShowPane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/StackTracePane.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UI$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UI$2.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UI$3.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UI$4.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UI.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/UpdatingObject.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/mobility/viewer/ui/ViewLoader.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/persistent/GenericLogicModule.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/persistent/GenericLogicModuleIterator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/ArgInvocator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/ConstructorInvocator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/DefTypeCompatibility.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/FieldInvocator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/Invocator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/MethodInvocator.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/reflection/TypeCompatibility.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/testParser.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/AbsToStringVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/CompareVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/DereferenceVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/FreezerVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/GreaterOrEqualThanVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/GreaterVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/IdenticalVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/LessOrEqualThanVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/LessThanVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/NotIdenticalVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/ToListVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/TransformerVisitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/JavaLog/visitor/Visitor.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Complete.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Copyright.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Directories.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/DirectoryChooser.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/MainFrame.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/PropDumper.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Setup$1.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Setup.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/SetupDialog.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/SetupProperties.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/Welcome.class create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/classes/setup/setup.properties create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/lib/COPYING.LIB.gnu-regexp create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/lib/RIGHTS.antlr create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/lib/antlrall.jar create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/lib/gnu-regexp-1.1.4.jar create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/lib/jgl3.1.0.jar create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/web.warContent create mode 100755 org.isistan.javalog/lib/JavaLog/web/WEB-INF/web.xml create mode 100755 org.isistan.javalog/lib/antlrall.jar create mode 100755 org.isistan.javalog/lib/gnu-regexp-1.1.4.jar create mode 100755 org.isistan.javalog/lib/javalog.jar create mode 100755 org.isistan.javalog/lib/jgl3.1.0.jar create mode 100755 org.isistan.javalog/plugin.xml diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..136ac2b5ae2b54f39e2a0773c20d18fbb791546d GIT binary patch literal 12292 zcmeHM%}yIJ5FRHSQuTt`N=-`-OAi%NC8WN=76qgpxWK(4e@#J~1cjvPaUY`()d%PU z@Bq94d^2{zo-~yK388iz*|XX8eB=FgW}Mj&k=t1eJ`lBusD;jQ{V9e&G``M#sWrlx z7myD6M8|X{eNNq_*>=JhFb0ePW55_N1|9wUuB{WX#%`sjKdVs9Vo=DY{c(aUmq)-19uAK zGaPl%hct#f#fR;Ul)YcdUOUs?2$;-@T7ToS!pmL%HJ&_Gzxo+0jIsVnxD&arbp4HU zW$$g~`k4!6D8okcMA>+gY2ySOeM28(KKoIXuDyAoa5wLY3(kVA)Pi{ZkI3ua-QNOO z3-8R7EsllQR&g&|10BH<88QBCpTdfDJC1-DH#akIrdhy?`t%jgR%Hf>gBbOFCL0R% z4$%->eVu9bFBw9-KgP_>aWk-TD)v<_7Qc@Xb8`+yYZrX0oWox3T9KE(%)D!#D^*ky z{5U~-z7p+sd{>yE^D6Rqg7Sn8XqP@xhxQ@2krM`K{IDM;8gNT%2?I_4tX8(fH7bU7z4(D OF<=ZB1IEDPVBiXwRW#KA literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.debugger/.classpath b/org.isistan.flabot.debugger/.classpath new file mode 100755 index 0000000..751c8f2 --- /dev/null +++ b/org.isistan.flabot.debugger/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.isistan.flabot.debugger/.project b/org.isistan.flabot.debugger/.project new file mode 100755 index 0000000..47e35c4 --- /dev/null +++ b/org.isistan.flabot.debugger/.project @@ -0,0 +1,30 @@ + + + org.isistan.flabot.debugger + + + org.isistan.flabot + org.isistan.flabot.engine + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.isistan.flabot.debugger/META-INF/MANIFEST.MF b/org.isistan.flabot.debugger/META-INF/MANIFEST.MF new file mode 100755 index 0000000..4c0697a --- /dev/null +++ b/org.isistan.flabot.debugger/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: FLABot Debugger Plug-in +Bundle-SymbolicName: org.isistan.flabot.debugger;singleton:=true +Bundle-Version: 0.1.1 +Bundle-ClassPath: lib/debugger.jar +Bundle-Activator: org.isistan.flabot.debugger.DebuggerPlugin +Bundle-Vendor: www.exa.unicen.edu.ar/isistan/ +Bundle-Localization: plugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.jdt.debug, + org.eclipse.core.resources, + org.eclipse.jdt.core, + org.isistan.flabot, + org.isistan.flabot.engine, + org.isistan.flabot.javamodel, + org.isistan.flabot.util, + org.isistan.flabot.javamodel.jdt, + org.isistan.flabot.mapping, + org.eclipse.debug.core, + org.eclipse.emf.common, + org.eclipse.emf.ecore +Eclipse-AutoStart: true diff --git a/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/BreakpointsInstaller.class b/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/BreakpointsInstaller.class new file mode 100644 index 0000000000000000000000000000000000000000..58fb6b2183e6027c11c1d83f3b52d5f841156c9d GIT binary patch literal 4513 zcmb7H`F9i775<(q>uDKdVlYK1w1!adh9_(;l?Vx7rr{`0?o zd<@_)?nnd#9=DyGZWXPfYZUaEypge8ecH^Fayiq{Pdlb@Wx=)zZZTD$L_Tji5Uy)AMvIuaBHIXN{|t?IhDZ zo}`)0TMI=~pPMd+uV-z?)KeqeGG@B7_H+#kT8a)|%bE+WWfzJP9RdfGxAi)_-QH$p zuPQCEU0{E`uqWu03a&M8>St)PDjUTP?3DO~z@a8s)M8OCS1pYUO+M>dc@1$qDiF(= z?s>Clmz*r|9^VKQ|0t7ZtaUbaRjjpZ46Qs?(*eCIrz+>xTGUADA_zd=w7Bo0+%oBm_G@~5znLFVs z54;kN0y22nk$JfaLcDqh3RW@V>QZ~nMtS9DgLE>*%EoIj~NRq__)IT zwK6oEDQ7sN-)t=q2s>turOs*lb-I|IFER$N zCV714C3(f19wi5(cmWZKZ25|=K(d*Gh#>=0!;C6s>I#@FGg8gZYOvIN8|VG}Ry9Zs_3DpdJ>O99Mo9!Wr2a_C3uZZB+zwyMZ;I|HNTvW+N$00 z?+0bOn4dX1r~9+XFkTnfJ?uEP(?w`p-Wgq)T4R*xdiAv!Zs1!I-y}XOw`=$|z9Z0T zs{IVD9-i_AR0r7PtYg2dx}jvxl)~(L8osaUda!7{!b5WLriLHjhfHkOKIJ&Zbym0T zOLYn=h&P#&_>sVoMs99~O)M+1x_AZp8g;D8Z{C=ddRJwWz_xkA&CU|YS}Kw{Tm3l7 zc~Ep!pH(wV>>4W424=On`TD(nKlw08Go#&o;i12WY3% zR!=H`N3hLP^k1&3o#TCX(K+6?j86(IV~;>0$d?0rw({A{XNb=}K4n}kK_3jO$Faf4 z!FVv<8V?17ErHH(XQXA9xQpYrsnPdnFTx!6(Dhz)pbw9tpRMo!-*g;e19+StbjsTq z-;1)h^am&Lq!+{ku53glCs=k*jqOC^!@X3JHZk>p$_r#gAYl zLj4yL(T@isEra1(aN^O<@L>hZzmd6#7vu6CGKp9`whXo}2~7=h9JHyy90ywt#W2H+`{&Rb{E%{@LI>$L;_t%q8m@}08S91lLYNaf^rJy z3G^fZzD#guIBOHyYXtRm!ubXPy-5JyC5(%dexJ_|x%cmQ220#|k56@sH$1Z4uO8$5 z@-b?3^T&9b$G8)Byu)juA0K#!7o<0f_=$Inhwuyhlo5pZX5#03lk{ndw%?)t%k=nN zuBaB_2!6>?8@=qsuQ=Mmm3I6Zzv1d{>4~DhuWgaqe#eD)G6EIKD$=0)J|vTqT)OE~)mDe QwX&*KR@MHE+XJ}$f65rp6951J literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/DebuggerPlugin.class b/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/DebuggerPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..a66202390bce320b44bd593782a080a8cd629e7b GIT binary patch literal 1911 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/messages/messages.properties b/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/messages/messages.properties new file mode 100755 index 0000000..e2fe6e3 --- /dev/null +++ b/org.isistan.flabot.debugger/bin/org/isistan/flabot/debugger/messages/messages.properties @@ -0,0 +1,3 @@ +org.isistan.flabot.debugger.InstallBreakpointsAction.errorOcurredWhileInstallinBreakpoint=Error occurred while installing a breakpoint for the responsibility node {0} in behavior {1}: [{2}] {3} +org.isistan.flabot.debugger.InstallBreakpointsAction.impossibleToInstallBreakpoint=Impossible to install breakpoint +org.isistan.flabot.debugger.InstallBreakpointsAction.noMappingDefined=No mapping defined for responsibility {0}. \ No newline at end of file diff --git a/org.isistan.flabot.debugger/build.properties b/org.isistan.flabot.debugger/build.properties new file mode 100755 index 0000000..c036ce6 --- /dev/null +++ b/org.isistan.flabot.debugger/build.properties @@ -0,0 +1,8 @@ +bin.includes = META-INF/,\ + plugin.xml,\ + lib/debugger.jar,\ + resource/,\ + bin/ +jars.compile.order = lib/debugger.jar +source.lib/debugger.jar = src/ +output.lib/debugger.jar = bin/ diff --git a/org.isistan.flabot.debugger/org.eclipse.jdt.ui.prefs b/org.isistan.flabot.debugger/org.eclipse.jdt.ui.prefs new file mode 100755 index 0000000..702501e --- /dev/null +++ b/org.isistan.flabot.debugger/org.eclipse.jdt.ui.prefs @@ -0,0 +1,3 @@ +#Tue Jan 24 17:07:56 ART 2006 +eclipse.preferences.version=1 +org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/org.isistan.flabot.debugger/plugin.xml b/org.isistan.flabot.debugger/plugin.xml new file mode 100755 index 0000000..edf6708 --- /dev/null +++ b/org.isistan.flabot.debugger/plugin.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/org.isistan.flabot.debugger/resource/icon/failureLocatedActionIcon.gif b/org.isistan.flabot.debugger/resource/icon/failureLocatedActionIcon.gif new file mode 100755 index 0000000000000000000000000000000000000000..5e011dd9c532aef36349b4b33b352c9363935d54 GIT binary patch literal 907 zcmZ?wbhEHb6krfw_|Cu}Z5prQU!oV@XyKo0ke*4W?CfmjEUump4Gs)Vmd-)}4;HLoViGVGvY4>oWn;ak@wY#m2?x$LhOWQG I!@*z;09hMNWB>pF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/BreakpointsInstaller.java b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/BreakpointsInstaller.java new file mode 100755 index 0000000..4dc0e20 --- /dev/null +++ b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/BreakpointsInstaller.java @@ -0,0 +1,93 @@ +/** + * $Id: BreakpointsInstaller.java,v 1.8 2006/04/05 22:03:24 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.debugger; + + +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.model.IBreakpoint; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint; +import org.eclipse.jdt.debug.core.JDIDebugModel; +import org.eclipse.jdt.internal.debug.core.breakpoints.JavaMethodBreakpoint; +import org.isistan.flabot.javamodel.JBehavior; +import org.isistan.flabot.javamodel.JSourceLocation; +import org.isistan.flabot.javamodel.jdt.JavaModelJDTUtil; + +/** + * The breakpoints installer creates eclipse breakpoints + * + * @author da Costa Cambio + * + */ +public class BreakpointsInstaller { + /** + * Creates an entry/exit behavior breakpoint in the given behavior. + * + * @param behavior + * @return + * @throws JavaModelException + * @throws CoreException + */ + public IJavaMethodBreakpoint install(JBehavior behavior, boolean register) throws JavaModelException, CoreException { + IResource resource=JavaModelJDTUtil.getResource(behavior); + String typeName=behavior.getDeclaringClass().getName(); + String behaviorName=behavior.getName(); + String signature=behavior.getJNISignature(); + + JSourceLocation sourceLocation = behavior.getSourceLocation(); + int charStart=sourceLocation.getOffset(); + int charEnd=sourceLocation.getEndOffset(); + + return JDIDebugModel.createMethodBreakpoint(resource, typeName, behaviorName, signature, true, true, false, -1, charStart, charEnd, 0, register, null); + + } + + public IJavaMethodBreakpoint[] get(JBehavior behavior) { + IBreakpoint[] breakpoints = + DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(); + String typeName=behavior.getDeclaringClass().getName(); + String behaviorName=behavior.getName(); + String behaviorSignature=behavior.getJNISignature(); + List matchingBreakpoints= + new LinkedList(); + for (IBreakpoint breakpoint : breakpoints) { + if(breakpoint instanceof IJavaMethodBreakpoint) { + IJavaMethodBreakpoint jmbreakpoint = + (IJavaMethodBreakpoint) breakpoint; + try { + String brTypeName=jmbreakpoint.getTypeName(); + String brBehaviorName=jmbreakpoint.getMethodName(); + String brBehaviorSignature=jmbreakpoint.getMethodSignature(); + if(typeName.equals(brTypeName) + && behaviorName.equals(brBehaviorName) + && behaviorSignature.equals(brBehaviorSignature)) { + matchingBreakpoints.add(jmbreakpoint); + } + } catch (CoreException e) { + DebuggerPlugin.getDefault().getLogger().error( + "Error getting breakpoints: {}", e); + } + } + } + return matchingBreakpoints.toArray( + new IJavaMethodBreakpoint[matchingBreakpoints.size()]); + } + + + public void register(IJavaMethodBreakpoint breakpoint) throws CoreException { + DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(breakpoint); + } + + public void remove(IJavaMethodBreakpoint breakpoint) throws CoreException { + breakpoint.delete(); + } +} diff --git a/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/DebuggerPlugin.java b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/DebuggerPlugin.java new file mode 100755 index 0000000..29a2c8f --- /dev/null +++ b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/DebuggerPlugin.java @@ -0,0 +1,89 @@ +package org.isistan.flabot.debugger; + +import org.eclipse.ui.plugin.*; +import org.eclipse.jface.resource.ImageDescriptor; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.util.log.DefaultLogStatusCodes; +import org.isistan.flabot.util.log.EclipsePlatformLogger; +import org.isistan.flabot.util.log.LogStatusCodes; +import org.osgi.framework.BundleContext; +import org.slf4j.Logger; + +/** + * The main plugin class to be used in the desktop. + */ +public class DebuggerPlugin extends AbstractUIPlugin { + + /** + * This plugin's id + */ + public static final String SYMBOLIC_NAME = "org.isistan.debugger"; + + + //The shared instance. + private static DebuggerPlugin plugin; + + + private Logger logger; + + /** + * The constructor. + */ + public DebuggerPlugin() { + plugin = this; + } + + /** + * This method is called upon plug-in activation + */ + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + } + + /** + * This method is called when the plug-in is stopped + */ + @Override + public void stop(BundleContext context) throws Exception { + super.stop(context); + plugin = null; + } + + /** + * Returns the shared instance. + */ + public static DebuggerPlugin getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path. + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return AbstractUIPlugin.imageDescriptorFromPlugin("org.isistan.flabot.debugger", path); + } + + /** + * Returns the plugin's logger + * @return + */ + public Logger getLogger() { + if (logger == null) { + logger = new EclipsePlatformLogger(this, FlabotPlugin.SYMBOLIC_NAME, getLogStatusCodes()); + } + return logger; + } + + /** + * Returns the plugin's LogStatusCodes + * @return + */ + public LogStatusCodes getLogStatusCodes() { + return DefaultLogStatusCodes.getInstance(); + } +} diff --git a/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/InstallBreakpointsAction.java b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/InstallBreakpointsAction.java new file mode 100755 index 0000000..9d982cb --- /dev/null +++ b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/InstallBreakpointsAction.java @@ -0,0 +1,166 @@ +/** + * $Id: InstallBreakpointsAction.java,v 1.20 2006/04/06 05:01:47 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.debugger; + + +import java.lang.reflect.Modifier; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.debug.core.IJavaMethodBreakpoint; +import org.isistan.flabot.coremodel.ComponentModel; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.debugger.messages.Messages; +import org.isistan.flabot.engine.failurelocatedaction.FailureLocatedAction; +import org.isistan.flabot.javamodel.JBehavior; +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.javamodel.JavaMetaModelException; +import org.isistan.flabot.mapping.MappingManager; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.mapping.mappingmodel.ScopeAwareMappingCreator; +import org.isistan.flabot.util.ObjectBoolean; +import org.isistan.flabot.util.problems.DefaultMessage; +import org.isistan.flabot.util.problems.MessageAccumulator; +import org.isistan.flabot.util.problems.MessageSeverity; + +import com.sun.org.apache.bcel.internal.generic.BREAKPOINT; + +/** + * + * Installs breakpoints in the mapped method of the selected responsibility node. + * @author da Costa Cambio + * + */ +public class InstallBreakpointsAction implements FailureLocatedAction { + + /** + * Installs breakpoints in the behaviors mapped from the given responsibility + * node. + */ + public void execute(ResponsibilityNode responsibilityNode, ComponentRole role, MessageAccumulator messageAccumulator) { + Responsibility responsibility= responsibilityNode.getResponsibility(); + Mapping mapping=MappingManager.getMapping(responsibility); + if(mapping==null) { + messageAccumulator.addMessage( + new DefaultMessage( + DebuggerPlugin.getDefault(), + DebuggerPlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, + Messages.getString("org.isistan.flabot.debugger.InstallBreakpointsAction.impossibleToInstallBreakpoint"), //$NON-NLS-1$ + Messages.getString("org.isistan.flabot.debugger.InstallBreakpointsAction.noMappingDefined", //$NON-NLS-1$ + responsibility.getName()) + ) + ); + return; + } + ComponentModel[] components; + if(role==null) { + EList componentsList=responsibility.getComponents(); + components= + (ComponentModel[])componentsList.toArray( + new ComponentModel[componentsList.size()]); + } else { + components=new ComponentModel[] {role.getComponent()}; + } + Mapping[] scopes=ScopeAwareMappingCreator.getScopes(components); + ObjectBoolean elementsOutsideScope=new ObjectBoolean(); + mapping=ScopeAwareMappingCreator.create(scopes, mapping, elementsOutsideScope); + JBehavior[] behaviors=map(mapping, messageAccumulator); + + install(responsibility, behaviors, elementsOutsideScope.value, scopes, messageAccumulator); + + } + + private void install(Responsibility responsibility, JBehavior[] behaviors, boolean elementsOutsideScope, Mapping[] scopes, MessageAccumulator messageAccumulator) { + BreakpointsInstaller breakpointsInstaller=new BreakpointsInstaller(); + String classNames=null; + for (JBehavior behavior : behaviors) { + try { + IJavaMethodBreakpoint breakpoint=breakpointsInstaller.install(behavior, false); + String condition=""; + if(elementsOutsideScope && scopes!=null) { + int modifiers=behavior.getModifiers(); + if(!Modifier.isStatic(modifiers)) { + if(classNames==null) { + classNames=getClassNamesList(scopes, messageAccumulator); + } + condition="\"" + classNames + "\".contains(new StringBuffer(\";\").append(this.getClass().getName()).append(';').toString())"; + breakpoint.setCondition(condition); + breakpoint.setConditionEnabled(true); + } + } + if(exists(breakpointsInstaller, behavior, condition)) { + breakpointsInstaller.remove(breakpoint); + } else { + breakpointsInstaller.register(breakpoint); + } + } catch (JavaModelException e) { + addProblem(messageAccumulator, responsibility, behavior, e); + } catch (CoreException e) { + addProblem(messageAccumulator, responsibility, behavior, e); + } catch (JavaMetaModelException e) { + addProblem(messageAccumulator, responsibility, behavior, e); + } + } + } + + public boolean exists(BreakpointsInstaller breakpointsInstaller, JBehavior behavior, String condition) throws CoreException { + IJavaMethodBreakpoint[] breakpoints = breakpointsInstaller.get(behavior); + for (IJavaMethodBreakpoint breakpoint : breakpoints) { + if(breakpoint.getHitCount()==-1) { + String brCondition=breakpoint.getCondition(); + if(brCondition==null) { + brCondition=""; + } + if(brCondition.equals(condition)) { + if(breakpoint.isConditionSuspendOnTrue()) { + if(!breakpoint.isConditionEnabled() && condition.length()>0) { + return false; + } + return true; + } + } + } + } + return false; + } + + private String getClassNamesList(Mapping[] scopes, MessageAccumulator messageAccumulator) { + StringBuffer buffer=new StringBuffer(); + buffer.append(';'); + for (Mapping scope : scopes) { + JClass[] jClasses=scope.getWorkspaceMapper().findClasses(scope, true, messageAccumulator); + for (JClass jClass : jClasses) { + buffer.append(jClass.getName()).append(';'); + } + } + return buffer.toString(); + } + + private JBehavior[] map(Mapping mapping, MessageAccumulator messageAccumulator) { + if(mapping==null) { + return new JBehavior[0]; + } + return mapping.getWorkspaceMapper().findBehaviors(mapping, messageAccumulator); + } + + + private void addProblem(MessageAccumulator messageAccumulator, Responsibility responsibility, JBehavior behavior, Throwable exception) { + messageAccumulator.addMessage( + new DefaultMessage( + DebuggerPlugin.getDefault(), + DebuggerPlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, + Messages.getString("org.isistan.flabot.debugger.InstallBreakpointsAction.impossibleToInstallBreakpoint"), //$NON-NLS-1$ + Messages.getString("org.isistan.flabot.debugger.InstallBreakpointsAction.errorOcurredWhileInstallinBreakpoint", //$NON-NLS-1$ + responsibility.getName(), behavior.getDescriptor(), + exception.getClass().getName(), exception) + , exception) + ); + } +} diff --git a/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/Messages.java b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/Messages.java new file mode 100755 index 0000000..237f768 --- /dev/null +++ b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/Messages.java @@ -0,0 +1,34 @@ +package org.isistan.flabot.debugger.messages; + +import java.util.ResourceBundle; + +import org.isistan.flabot.messages.util.MessagesUtil; + +public class Messages { + private static final String BUNDLE_NAME = "org.isistan.flabot.debugger.messages.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + + private Messages() { + } + + public static String getStringAsIs(String key) { + return MessagesUtil.getStringAsIs(RESOURCE_BUNDLE, key); + } + + public static String getString(String key) { + return MessagesUtil.getString(RESOURCE_BUNDLE, key); + } + + + public static String getStringAsIs(String key, Object... arguments) { + return MessagesUtil.getStringAsIs(RESOURCE_BUNDLE, key, arguments); + } + + + public static String getString(String key, Object... arguments) { + return MessagesUtil.getString(RESOURCE_BUNDLE, key, arguments); + } + +} diff --git a/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/messages.properties b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/messages.properties new file mode 100755 index 0000000..e2fe6e3 --- /dev/null +++ b/org.isistan.flabot.debugger/src/org/isistan/flabot/debugger/messages/messages.properties @@ -0,0 +1,3 @@ +org.isistan.flabot.debugger.InstallBreakpointsAction.errorOcurredWhileInstallinBreakpoint=Error occurred while installing a breakpoint for the responsibility node {0} in behavior {1}: [{2}] {3} +org.isistan.flabot.debugger.InstallBreakpointsAction.impossibleToInstallBreakpoint=Impossible to install breakpoint +org.isistan.flabot.debugger.InstallBreakpointsAction.noMappingDefined=No mapping defined for responsibility {0}. \ No newline at end of file diff --git a/org.isistan.flabot.engine/.classpath b/org.isistan.flabot.engine/.classpath new file mode 100755 index 0000000..751c8f2 --- /dev/null +++ b/org.isistan.flabot.engine/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.isistan.flabot.engine/.project b/org.isistan.flabot.engine/.project new file mode 100755 index 0000000..78bc6fa --- /dev/null +++ b/org.isistan.flabot.engine/.project @@ -0,0 +1,31 @@ + + + org.isistan.flabot.engine + + + org.isistan.flabot + org.isistan.flabot.util + org.isistan.javalog + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.isistan.flabot.engine/META-INF/MANIFEST.MF b/org.isistan.flabot.engine/META-INF/MANIFEST.MF new file mode 100755 index 0000000..2c4d74a --- /dev/null +++ b/org.isistan.flabot.engine/META-INF/MANIFEST.MF @@ -0,0 +1,39 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: FLABot Fault Location Engine Plug-in +Bundle-SymbolicName: org.isistan.flabot.engine;singleton:=true +Bundle-Version: 0.1.1 +Bundle-ClassPath: lib/engine.jar +Bundle-Activator: org.isistan.flabot.engine.EnginePlugin +Bundle-Vendor: www.exa.unicen.edu.ar/isistan/ +Bundle-Localization: plugin +Export-Package: org.isistan.flabot.engine, + org.isistan.flabot.engine.executionstate, + org.isistan.flabot.engine.executionstate.actions, + org.isistan.flabot.engine.executionstate.commands, + org.isistan.flabot.engine.executionstate.contextprovider, + org.isistan.flabot.engine.executionstate.dialogs, + org.isistan.flabot.engine.executionstate.impl, + org.isistan.flabot.engine.executionstate.javalogtrace, + org.isistan.flabot.engine.executionstate.javalogtrace.impl, + org.isistan.flabot.engine.executionstate.util, + org.isistan.flabot.engine.failurelocatedaction, + org.isistan.flabot.executionmodel.impl +Require-Bundle: org.eclipse.ui, + org.eclipse.ui.ide, + org.eclipse.core.runtime, + org.eclipse.emf.ecore, + org.eclipse.gef, + org.eclipse.emf.ecore.xmi, + org.isistan.flabot, + org.isistan.javalog, + org.isistan.flabot.util, + org.isistan.flabot.trace, + org.isistan.flabot.gauge, + org.isistan.flabot.launcher, + org.isistan.flabot.javamodel, + org.eclipse.debug.core, + org.eclipse.debug.ui, + org.isistan.flabot.mapping, + org.eclipse.core.resources +Eclipse-LazyStart: true diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d0d3bf4a254ffaed0a87ec2c2b78e0dc38861b26 GIT binary patch literal 1139 zcmb7D+invv5Is)P+`6=3fkL6B0TxJ7#1as^1R+5LQlzv(N|bkJzrOzf@D%$cWTjT&>r^ll?XgUPCzPR|F-3== zyx?&#<5R)#JZt!S3L}W(OR1!N#qg<-6`|8V;R_zdTusA)HBwDGy{s5%70nStp{pmN z0)|T-)=+fXriT*BRpfEmLj^v=R^x({E_$;sl{lQAj)fWWaZLU2`#R$Bh#Tqb)n>sp zo8ej3DuXt4YCYgetFu!*Plzu6|4ROHX)~}ML*C34t&QfWirc7{ut(`L6772A;SP3) zEn@~&%owTzJvWhfC*56Ze+=GZ#|bs$t%_ou5GM!19_vX74;aFXi9IyXBt{}5xE0HZ zrS^?8PfE&i+Vl(GLT{*b{DzwYuIQ?!;~4dNN(s}Ad6I|(bsC2}J;z+F=B5Lv`EEAc z4*eBW>3p5EA$hHl^jrJq@LJo2b8NI8?S4b;bLxAA)@mB#{1>=Nc0EP*aSdB!Q7o?G zM(X2Z8#n2c;TCpQ8D5ZNA?b$v{6y`|p@H;=m%mBT#*Bn!BYhiH-J JDtCDF{RU&OHO~M5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$2.class new file mode 100644 index 0000000000000000000000000000000000000000..20b968849ca489ce8cf95fbe0d46b782be5389ef GIT binary patch literal 1107 zcmb7D+invv5It@}Ze7|XP%hoFM_wlg@qz?D zghWB&fe+xL5aUfA5anept!KveoS8W@`|J0Qp8(ouma)R{(AWuAsY;#De4L1(aa@j+ zlzbD;+8I=(+@SK4I+`?_5KekdhxtLBOYnXc~ zvX*8P|99?p_l-$j2)idVm1;Y_f5EQS(smP(rZUBK>V1KJy_GQZqX2|;KM4MWzA9>T zze?I`vWq0c)}3Pnt$W8;Els5{K%7$yQ2=Y%7ZPH9r%Wx+7tYQ!xvBNrV@rfvGm3?GxN zddO@X@MEr9+%D_ezH8d$O#YvsTMZJxOcfczS!Y*7!O*Ls9UW4-pdx}!DP2?%g`yyY zeidC9U>Ha?K_~t6ZkV=sR6QyQx4=sll`g*F7~Cpy*OdFlVOX}3VXjrYi8(52SAyG) z{p`r8dPIi!StNg`%rLM#L&&Y#^i8IU3T1Rv#Wf@tqNbPK7sjF34eoYij*}{GAjzP3 z!e6%~Xu1q1cT&YpXbg{ud+7$f({*~MCB4(9=$$@A?{uAXTfFLtg5y}eSt*F8elFMW ztza7I2yQY=HDk41rh@86!t;nxp1#=-ROq1Oqh;aO$-yw$q$jDf#gXaHs+hxVh8{{$ zVk*=zG4wa{L3!U{*!o|2ubEy@R0WH;7r|YkL9@iqc`+nwRb*t7q7_-!ZC_Lvy0?99 z9B%STgJjCKQ*{lIGbIgUr&}T?i@3UO8Jnz9M{(ZpnvQMkr-Q+f9?`Gt%sd?KLZr0+SCp?T(V?*=~hhi}~!ayu82RK-1 zeCei*{#{T>ubZSD(k3koX;UZY(T2k(h-t&^Cx~m)qhHbYIj|U{uM$|&i+~pxqWyRf zX9&Z%L_6|;5nK**hA@gTx~1nlz$4>4ryEA=qE^Gi2MlUo5DV9EU5lr_VXB6iPw10p zq2O%3entmzsb9l_#1VqTF-G|SFX{UVy?9Mg-_RJpr2%?}1-uWi$?Par1KSeGVYH3J Z$isb-+pvrW!P!HsVx1&84$^{tzX1jx=t=+p literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$4.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$4.class new file mode 100644 index 0000000000000000000000000000000000000000..c1f9d003ae176b7b8982df0bb73fbd055d23351d GIT binary patch literal 1369 zcmb7E>rN9v6#j-T6v`l_$W2i|tCr=mT=hqdi8hds6hZ>&5C2WKLm6CVn%ymiS26MO z3MLj46MX<5%6Mjr!Gw6(O?J;YGv|EgGT-d?A78!!Si_SndKgws*z{DSqF89}C=hiM zd$OTo&o?>_O>m~GPYor%9vTzt?Y?$-|)rzEdawL4|2|rdwd(RWW&=()8sJKEI zswq>H8HUe9Q0xNki*_U#<`R^@WTYs56}7$1&~MF_Xj1fM+8XvLj1c>tDy`yY3|~uW z5z5sQaVES#=%#lNhe|ig|7_v^98#QC(#Cv^!Ks*r8~{U}qZfTvD{y4dZ?&5o16^&L zBZt8pGMMDxm|_?!UGKvJ4p)_yd+pP@3=c&;pcxmc#uq_Ngv#2Ni;iUh!+P536*p-5 zgGHf@K0h_>ht{hAMm26P!rI+2^M;xVJyIa~8 z*~r1gVipTjVM>zP$#N`Vj(FAz#Q8xiTa@^~v_oHRD?5<)EpbwWEk>8DPq~ZZ#3h2YKkW8_%r8r4vh(3h;UbEYBns}W9K_s%dirN zD3TFoi98wlnK=2pWfhPwSWYF97?nuk6M6K|%P~a$H%L1qo4hgYE_5*LE_E>CPB|Tn zx>LO!jJb=SG4U~px<%hy63sAidM$m2aG@FB^<35nt_vt+PLRu4R^kaVz$bv!05M_$&C Fo}YWpbp8MU literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$5.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$5.class new file mode 100644 index 0000000000000000000000000000000000000000..be12e1882fc57138377e5734b4a26f99de3c09a0 GIT binary patch literal 1369 zcmb7ETTc@~6#j-T6v`l_$W2i|tCr=mT&zCSm}mnDNg*VVKKM4>4rOtfX?CX=e~^h$ zUra0}Ci(;XQN}Y{3?{_OZnAsMnK|b>m-%MD|M>C^zy=;?(Z{f^qm~!ML2QKbjzZDU z#*@v!c)nI9(&1SkUwPG@UMIa+&cb1svtiN?gLW*vlOy3vPxvO#%6pawh5>UN#Kkqr zP)nJj!Z3O!!eS3_Uvy&0u#lkqB_l=g%c$*bhCyq#MT?@#X=~W0FhU%75~#pDW%yc3 zi%_YZh%@1ZLbbdD69uYO`DY9N=aAyGk~S9W3{F)y1rPqaI_XExz{;u$mmcsLYi@*rhO6CMHE>3V$rcIVAxDMy<(ZB zKU@?_tJkNx6BCaLR|{dtL>)!n(qi2feV3z%dknc)n(DFiU&%K7B?C=uOZlOWi442a z9P4Hl8w_5`)Eo~{W*G4!DU9shH=1!HHANG4{F!q*hgyfvMYJmvH5*mzvGX0JWK<1B z9LpH{ZaFJmzv4Ls#6UH*< zxI=QBg4bghcTdSu$89s}CO5NIF=@CLWQNBQNVm F&rh}7bxHsL literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator$1.class new file mode 100644 index 0000000000000000000000000000000000000000..761226ac9d1ed261c73ffd1d0e296b56cfca8aea GIT binary patch literal 1392 zcmbtUT~8B16g|^c7RpN3s`!Ocv1(h8v7%2a`p}>uDSiaf_vv;lLzY?GofiL=325Sj zKfs@2^e-6iEF~dki8M6X&Yj(R&fJf4=f|IK-vKpNm<{v`QjSQDP zWq1&26G!1t$$j2BvO8o~H>4i4Vkt}%SDOwB4Bn0y3LXmG=Wn|^GB6G%7%G-n2BF$Z zBv1AY-&ei9Gzo9hSyIcGVZv;yq}rq)+UJPEXP6v{uu80Z49!fcPcj%773tlmCquq= zyxk-S!6%+8t;`FCkF`wn8Oz~kf{)M2I=bFrD6}Z1DKL~=IGD87B^OgD7Lmtg7t^@H zkgr+SQd?>HX0Y3p@s{X@lA+v=0ugpZtn7aDvS7=~@G>);Gv-olQeCFEh38csAYUolUGK!)E!!cZqO9p4j1r~$ z8`5k?Jr|F#Ot8RCq_nfi@c#5hjR^gAI=9MH`2 zF^frZI&pQNLORdWa{)Qev%&|wvXwpEO*wj|;nLTOWUbOZPiv{Mc!-(C(jmOYSCl`e zj#ufwm;$H>_=#ECTOhgP8m`mIa053-RIka?l9w6>m^r{LTD&i~`!Cfm%;0xQHGAYf lqOzn9Q6sWE>O_-61BaN93Io{Y7b6-e*tn^k~RPU literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlView$MenuCreator.class new file mode 100644 index 0000000000000000000000000000000000000000..3151b223351a74687d46b6c666ca7ec39d744a8d GIT binary patch literal 3556 zcmbVO+jA3D82_C#?Y8N*l*+{@(t-t>gl4&`4OF3mw3Gs-M2pvLa!9u%o3OiS!7En0 z-*4lL|A4PLBQ3QvjxXYjFX~^QK8Tkm-yOy8+ucA~)7FxioISheeD~k^o$uR!zW5Tr zc6_KHAdo0nScN~#ssn?RaQ?L{S z1zN`Rab3&lW>z~oGA7fGf;xdstX8ITM$wkq*eN|NH9hSZ1yk#*P$00vH^Zur=~*eT zYhalku~zq-;?$|1@ZMo)Hc#mNkPLF`m zxoqj>3b@flQUbx=LPj<~V5N#is3FwgCKXLsB~a5DN%6`W6$72TS=8X$|Qk zIZA5lKq0N?Qo3dEyZ9bYzjz*4h~vaG_svjGQ(=2PnbTx>UrW5ggNeMtnFPUpkQax|RrxKv>i* zX*v|&f+;8`NuVKVWKG>ES%ifP%XVf@RfL?CX$rky<_VWM?LhgJ)05~~x-f0n#qixN z(6O{bkyIn@LbrmusS@WHIiudfa36IJ0`(r(0(AxDOAe-ndOw3*jh^D>x<) zs}`l1C05b$(zc0knMl2fiU*J+gwgr%{1DjO>7m)pp7)XPFyCJ~E+_Dy0^+ucJH*?r z;vozZwT$bzl0159o=WeYsjjjg4|5_P5m;T#3&K$^9#io+p74Dxl&mzJ3XMu$CF*p+ zl3rPpM!uMn$8=|OkN{6;8bL-ux_Yt}5>p{T(J;jg>UlCd7ioU3Lg>e+3Ik(w%=KbX zni(RNYT^7RsXho2^~e#L+q-(&Ibc&op&am#Zjp61aYlv3-qbq<&oIN#QBmUTDYkTm z=rAalpev$EX8v!J(6KFqah&6#JSlL-L-!3f9EoZrl8YR_L?p#QJ+0yyJS)(sXEMyx z(v-v#n>+g!q|Wj#Qoy`%Ud8j6q^ykU_Ml4dK!Q?__*37;B&lSrpKyQUx9P*7Yy+F?rl(pnt z7D~FO@SwrHN=qd#F=+^>eI`|`H>caSv=zL+01q$Hwo>gmAAaMCcDku+=wC}CxM`vh z+`0fQE!|Op_#@N^mZ5lckha5>>^sC(`b!uxro)D(NX|wX>4|vza}M@Y5omv zrf+L#4J01ME%f9Wn+lLh>U?~~{qz*P7X2LSE+fQ`DXeG3H5H1#Bhl|k@ei(I)f4d* zZ*=zxcJ+32(8vy-K+v@wj!t1yG#VqltEaGe8szpmHu5QLs&xHF68MSS`nkgO@HN-N z*otkWI>7A>joV%69c)TOQAgeZle1_Wj!k3d;FcNODbOAK1Tq|)!Crx{(A!-*ivz=5 zHPg7iyDnTei~ix(flC;?grRAi4A;)!QGppyy{C|EJxv3DBaD~7O`$jiJ6zY&G>h@! zXt;J7XQ%KKTX;_3%zTiKkM7_bsq!*LUxMxVLHwzo?v0o_Qs14eosS=o-j85_#U=^seDR+eiM z?Vj`w`7U{>rELPWXIdG{T_I52xMYh!Xsz92Mo^799U8&{M{Te&=Ei~kZqwOpbf-;$ z=mtAwq_-H3CExwYkh{&w2`nwENg0c&!4W<7*=COJ*eMkg*wE-PDeyq@eB0UHZDvy2 zI_ZnH;?ENtv`{kIWTx7dY?+3cn5E%pfySxaI<`v3Y|No2q}v1iC5it!*1WqgG(J9cZqX}_=aG&XR5XEV7 zYE-I}GFk3J+v%5t{^n@6(x$htErJ%Dq#;pe2WR@YClbkwYdXC~%Ir)JaAKV|t79pa z3Cy7m>vou_0oSrK$xN@^VPxn#?$w-fUMY>HFt4q&En`xYC8dPYoVhqz?&nhkvgPGZ z=8=-fc@d(QY>6#i32dnK(@-XbDTf#1=L2k%R3|T$opJPhy=a#fwlNm%hZ>^5Av5tF{ zU%NOhaC{lbp8k@gtq$iPso~`U^Gao&aY7xhzjne^C+0+NTmlY0lw z)v!_Em?G{4R606wp1=&U-fY`xG9HIvyomiJ637Xb6)KQO2C3;qfi4}J@yc;8Dpjaw zcX>Qbk^qA_d{W^u0yA;Ggzu{a&I$&N<*_I+mP|b=UCa7bXXTQNt;2%MEPKLK+?HIx z3aR!5P49Az)b({*L^eb`bvUVBSPFALpuqe_``to84CqrOSQ4l6r;{z!LQ$r8A z7l%4f7bUTdUi2xPs%=&Rr-cf!h}FTub`6(I#A%RFM;aF$!s#H3!IXuH>O$_9B;JU)q{q`wkb_+L)fWdhd`5*Tb#UAJ?K}`a|vIKoQ~Jw zGJ$C_X}FG+VPKeZE-?m;MB2#oCDbI-`h+Q|_!T-{k2eTJax7$yR)c%zOt z;mstcwDA}%B6#&U#?Z1JX2P`Xke}>eU0U=uyj`GXXq%S= z=La^MWZuV}u+2)z49ay(9Phw8HC$U1uM%qLxDM|kx@hbgZn8ed9>@^!3xYT)A;N1~ zyS-{~Y(Smj&Y4I&z9c~bYS_`ek4(JsY%1Gs zGKZ{8PXxPggUoR^3S6#?E=JiT8njJ>P|~yYFnGva!*ZwLg92@b>wyk4GvKv|wiCf_ z+$1geuz*#8C5I{6S3826af^nJ79lNASyau^@iE*gaHO}b# zaa#JU-UvR6J2dR0X_CcQkE9H9%$z;ou;eHE8F!w)QjV2nKdj?U+(kuH&TeFptRq=LP>ER0cs(<=*R zdwT@KI4IG6pTK1mpnXE>uW;LjalgRYO06h@p;JB`>oZ&eV2lf(FqKx>71rH!2tJch?*1imM5@TG`A zpgITgZ(#ubFA;h|U|r>&2n6Vd%$|OL=p+@NA5{>aQ^I(v;`nsAb~b`1@pu?NtJpNj zBw*Sv#!budlQQiYo}%cvqVnQzoGz1nxxum$!PBU#!>{pM4ZkV6iwi`$=;*2AcX*a} zT}BTxP|1SeOGdDJS8F8{>L6+Aihk6qLRZ`LMLlAUE( zsj+EOag!NX=filMyuFHu((kIU~Lw(fcuXV{;zI#PgVUh*8udIEnI>lF>3QUhXlC zsf9jMvcR!8&J#2P^QmEFZ&YK7i#N zF-ku*9?PROj}@^v-`0$PP9MPr!OmmTC}wVLiXXt1edM7`olU<0XHnJ)G+-rVt-`5T z?P)n*$r{&km9OP~=qsLfVf;On-79HnmanjS#ojhNGPKN>sYQoB8f#Nu~jQD|@V zUJ_J$K0d|^#|8$YgYO%0G|ojmFK`;rRUmxcxbS(taGh~@HP=?*H6Aa~KrJrBMZOj? zC{_G0hhBK?2)cQ{-t-V6O(WPQ*c(d2m3$SN3lZVcBXKciq1%%?TP^qHMmRSc{bVYo z5jM}s>vfAFGq8P;JAK0!k0QJE031IIO?l+vQFj=Fd0fs=TzMznlE*diL%vro=qK9@ z#n_1QT-$(4u?S9q3l@*NU@_i}_fTk!oY6s$EJ z!1WuON3nZrjKdG*@sZ}}9#5lBG)HfX?j6SMdF&s>Fc;jzc@o{*8mbRPKc|T5L)Cda z!1vptUmT--n6zK!=bHKu$-mNCQ(qH()F-bY;Wx$zA0y$n`JrA>ez&!@zBc-OpR$&e zKNzEYl9WF_MER3etzL`%)Th))`Ex}XAH~!3@GnR3t185sNAP<-0(14Xr6y}iO@>NM zY7-|9?dCzuBM1h$i!bNs3Y^Fri>0`dyX7jZ$JIEG*98~i8bnm3vT5R zY#;XELEMfmhg!gK36#m9hh?+cwzjIVWJ@WVmN43=ATKtnE t{*N90MSH5K!*hJLa%Lu1|A*Ug7vJTdVfA3|ss23XKcDoUyQ#tRzzd$FvS$DQ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewContentProvider.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewContentProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..535f8a95b8b7cae671236f0f48a3f7303395a396 GIT binary patch literal 2342 zcmb7EYf~Fl7=8{3*^q3or3EdvwxzZW;j(F!+5*KQg_asFk{HE~<1EPm7B{IZ*8KcLn+IAce@_@Td{zr=AIpR>D!Tbv3EoXei~d7t-rFE9W3^#y?I_*_Gqz=Z3q z8CJt;_@-m5+UAPu8?tKoM#Xh}&$YKK`N)_G_hs(YRyzKo=Wbb5>1l`yoY*k8Ov5&v zHDh6ALsonZ34vjSEGxEEZ%AWf)vQQEfl04n%$7VU4sCYHPD@(q3$1n`$ z&UYt0&wMP7$B00N(cG1F=~Sgtp__aZ$>ILpt^BYN_AD6G z2e_r-roiCq^S@`OV-%`3>Av*1&e}Xp$9t(P`kv*ijU{ngpzYz8DSU`Y4R;Ou@WsC&NgKR;_N!MblrOXKORs zJZ5z~*u^QC9?>Xc-DE-e)3&T}VfQwu^D&2tN)07Z^cDj&fh(N^ zZ0r_ziXB$e@h&cN6cRR~N0q`!(4?CR^_a2LggXD1Y3Tf#;c1Yo`boxqL+mGX{=j`3PVj$&&io=yh0;9E|<$kO1dY}<3c;MAU3 zBDf4q)Kfk{H+r}VyxBA!2+q7aYG>E`xig$26V3xrJN~OZgppUy4E(J(J`DacdpRWj@VCw^a zp!W&72IzGMR|IyD6WHc${t1?No1Yup!F6?igG!A*$HaHIl%TN7F@CtqR4>Q5xvw_u z;nU)Fd&}?JKcaIxAfs~87i4gRxwt_^ZsHtn@op3&7{jNy4V&Gka&#f&*$lOgkAqt1 zV?Puy$52&(I$}M4V?smzFQN&|VkQ4vGn45w8x*up3-BOzOZ-}_TgrlxS4~vX(E=IDH@G% d69KLw92Rj1Sl$PiXaXiEooW<;a`67Me*wo~B|!iH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..dc9c5b7650e71d3696a061f66b64dbb4bd7da97f GIT binary patch literal 3879 zcmbtW`BNOn75;j`%(4s!ZxEo^IN&%EEbNYCDZUoVF-SzjfTTdMB+JJz+ge7R-C57f zA}NXE9L{|>cY<@D${nT3mPA~Ya(+pw@>k?9$X}p}^YzT^!LpQ`q_%dZ=XJl=@B7}- z{f~eD`7Z$O#~(E$1g2fDXxP5(2WHv0;FxP}V90_U7?xWOJlEN<{P1?g$%6gZ$PNXxM+zBDdgFfC~)CF%J_%i=D9@!c2C&$^E5)l3Vd?2=iOv!=B! z1@e07(W%Zc!Ezhn5u9x4o z*1r@OMbE6P+m;`#%pc`mN!wozwFSgEfv#!0YzIdLI>skf1v+Qlf=rAWV|;#MwHpG%Iy5BJ=$$%xpevwuSuRyeYtmaW*BpXNFSwTJ zteT#!zGGo$ux|STM?>%b*YGK1MHz&Q2pk!YSai&C(KxwwQCdNM;&$w4xL3evmqVAO z#b~+Z63KClL@gad3h9?&{i(J&}bE?}pvIjrB3^nG&R z8;kKk$2mO3mQ5s)k1c6cud)XEI+mvehFZllRomh5lf<(EkN@AGQZQj@Slh;aw7-r5 zPBR1>rc;$C*?7+5g6iQ#fxXSyR|BxxgE81TF5>wZZhUMQae}wB>fJg*z6V*9bd=#n z39w|Am{S9^(#l0%IrV}L4?GXL%!(>|fowbPcId`D=98%MP#Vo19aa8c(s8-w|4P_+ z)D|Ds@e$=sGH@fbJvfXPb$qPm;>wi@JK4ttc$#&pWDz(N)<6s9mPWPhWMENf1>3K< zzEt)8X&s-zX9+9hpZJDr1cVm>UKkvnQaohH*XQv?4PPKfjl^%v>-ZABtj_U3dL~bO zfx&H-=3_bSyn?T3_$nJi!%l5h$Jg-OjgiX(*_=M1ETdFR>s+r@-QS{uZ3hjS+PKUQD;u^zG zb^HuJj|?`B2Z4j_bF(E*4Gm`8FYzl4R|Sr>JBZZnv1*l6XK}soGFdUbz&9EeR@~65 zIn&~bD>{CS-$YlDP}~BsR$IIG(+FY&Y=#}R#*|>XrlN~mbk>jT+T2vINfD10{_jA7 zKVHl@?&e)NffS#-p7Gg5883N!?%~%0IynLcGdIwmc?0RQ+6@f6j-gEF>)7`v&LnUb zpJ}cG?&k9z^kWozIlh|`J<`Sq<*IJp#ktV3I80BJ&P!r(@~;@%qv(L5ibGS`EzEY{$?P?{&=EqIq2s^-0vabN6Qm%6K}^y0Ebc=N1`gsu9K!qA z7M5@XtIYBO9)^QQ@B%LsFS0TeP|KKLN(|#0OW;F7+&W#syvyXg!0-q!|ijgjK z_CD6%Pn>KsG1`~;PH^s!iryApR$hNjVBsqEOm5*TLWTJ{zRB^o1zvsYU(vEx1yqhk z0Ul)D18114XPJ#>80x1O((|EXgOTyru{{{Z5AZ{7sod#C;ug{xUg@FWNBD8Fbf5Kue9)o{{X<)5v>3K literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewPage$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/controlview/ControlViewPage$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0a19d6e4d97bb12cbb986fd2cd3c639bc2da4f69 GIT binary patch literal 955 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapView.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapView.class new file mode 100644 index 0000000000000000000000000000000000000000..0de0e6779e5cfec7fd8bf7f8a6ca32949ba82922 GIT binary patch literal 3603 zcma)8T~`xV6x|olKp3i05sP0aA`l`|QEP3~ihz|0l!9WlpF?s9BVi_;nSj=Q*M9d8 z^au2zYx!Wi6tu3@WncQx-_+IBeeX<^gamwGCUZIWoPEyOXW#qJe}DW5pdUZQP$SUg zdRf!`8`9)hUnPXOdn(r9u1lpCcOy}&pFU^8&<}EKUC#=A?F;l&PocC#jNFuQhom2P?oE}6z-V^~XqIf`itEkKNGClv z!Q!RL|GlQ72bH5qnNIagH=qTrG3*fN-lz}7T?TgI1y(@SSzuSiXd@~@Du!JGy;Yl4 znyK0mM;rDS*sBT}%h-P2^|{u9Jvy8h2<$5lSC%{bfjgtmm0X3msiBZVD#2WT#s_O|XN~q>-kM?ldz!|(M(8!Lc zWo1GUj)+l>qq<}R2F_uSf|S<33B*7A9E^q8~^H_9FFh zL(Qgpfo&n9hUBcpF$iI$)-<(5!lUUgCv5THndMPYhE;DLlfF;Zs}ONWG^xixJ+2EJ zr+Hr_Lw(_;rB7-N>x-@{eZ0P?3(2?}3@lnUZx}f`$-#+Xp~^WID&s;J)HkE(z5y3` zfdpKElT_+$v*L#$wFdBhXPwj|w65HEl-A+ujm5 zub|;sy@2R6^ZP3Zchv=w_PP(N*8F?nANWX=pc-GqTGpt z%%TpR+#TY*#cWhwM;@W=YT_QcmeHeL4`8a-3XYE@h~VX9Vi~8FarO~fuJ$HZFm#uj z!rVeg{XB|~VjqqX)Nu`|J#_p8(vb*K8(KAx8UlF@7a}0H=}iIY?EMRgpRup^F%mlT z$bF0@6_#HRPbBZ7tL{$i9U9i^!tP}kfU|rKupZ~I9fR17A?7~JtS_tr()k2PX9UC` zkT=-B8cb+^qJxOu#N?`OsCKt9^{I!r!V7!v--!1<#Jd7_g(^UZAuPZoIWR>`mw7r~ z(Q$XsGq*=^<7i^qGjy(^)kFM?mKgQ84ryefkT;_ubUlK+x`J#}``%^DC7bOBm|w<+ z>_*{t++4fgc5Pchmx;CaY1o$h%D>{uL4k z#DN3Ha)jT5n00+XAUA(6ESgQFwBduOr zhW_*7pp5B}vRZ~ex#*6y4-3AN$629Oo({*_PL35K3U$D1wTIk+A{oe literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$2.class new file mode 100644 index 0000000000000000000000000000000000000000..9fb0cf11a48abda23bfa09c3e3ddb841eae5bd27 GIT binary patch literal 865 zcmb7CZEF)j5Pqgfb2grBtXki-9|Cr_s!jyu3T=9+fDMj{2+oK z`~m(barP2WC@49&otK?wW}cb-`Rn@+06pwRSR*{K)mRy4oY#f=lC$sWX!#4{y2nywutJ%> z0AHBG_?Lv^{gsdhLqapL8E=4aHO4wxZ8UH#Mubg5V?P9J4NSrBr;`y^AN43_!uG(X zIv?uF1bgXhhUN)sl?J*!X?}BVvN8L`I5;C5E=c@qWG7*S{m>mrKYMk}|Hl*B=XP49 zd};!X&R@HF`dQDka6Ku~+&WW?&)8qsEW&-l(F)6m@eq$BPg=3|oY=x^nV#(S?PXF6 z-cBWUQc6wF{ew$H(y8-yq7oVMsm(L4WMJ{TLQ*EVc8(o(WpxdCq15Sw{fV|Fe}pUI z-w^G&*um32Jo+lfH^g7+n62QeZwTx33LUXy!36JhY>On^z|CcrXJUse^atDu!StpE j?kp26fB||7J90K~y9VCDU6D=P!vj1Ptu1$9S`eT-^=0F1lCA9B$aaGISx7BN zJn#X06k^tiAmRyITF=bx*)y|e=I5{PKL9+%Lk~5EM<$zam8-lEnvWAPGzFI`=@I>ede>Xgqap9rP(E7XkVXn0pCX%6EOjRB|p)~yp zd7e{_g-9Z83N==-D3s9*-I7AaiJIk-%XG|Rlcq-V5_ZB5*U-dJf1$K0UNIc)R?1x^ z%ie&&?U|9>07El?hx69E7+?dw4+ob5G_b|s>{@8Eue3azr$d>2TI$p4n^+_RktrLm zHeD+k1Fuqcv`keL=qspUy;NVGuzES7JSoq}*}h9287At_$#I5D}>lLJ{y%_u-*3)o!t@=xO6t=2N@B_hvdj=Q9- zL+c!BVQ9q$!j_eq=D9|zfq+go$$Lq$L$=xOoZ&*ddxo(64XrOFaGU;qd4cM5_i&kF zdy(L{f~#a1u3>9M^^B1AENGt+(<#EQxc(21+d;$auJHsb9*0V{rS0GzS(jRK9}md$ JiP3V>_Zw3k=aK*b literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$4.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$4.class new file mode 100644 index 0000000000000000000000000000000000000000..05d74c84ea7fe6915b9c3c4d84ed7f97171c3be7 GIT binary patch literal 1314 zcmb7ET~8B16g|@}EL|5Uh^SSuXpw#Z3yL2}jR`c6kQ6n+G)nYgx*f~lcDLCX;MG6i z5AYZGY@$efFh2X6jPXueqe7H)lii)Ud+$AG&b@cP{rLO^z)jq>kzkmQ;-)8+RGNq0 z%YfG-?TLoeUW>Q)r8w|5dAmmM$Gj|e)B*YLi%=_XO9aB#G7483 zysbsdFsOH=$}JK~wGWsw1>TpT)DIXI^L<4YY7AB-YKRmV&bS!Bpo1iaUDz05Nal^h zXjO*d;a;mQ;wQWw2!`=$NH_Efe{X1KDT_-IYT$7>eCP{7QDo&g?h%Nz1ED09URaI7PoD;?s}S4?l3{SmIe z#qivig+t7~gEKdV*R(P?Nf?}r;bqk@WIaXNdWMX(jhyuyCF?~8H`~qK!zC1y=qA;v po9D4W*dAp`A@LnK8`Fd2zDR}ymgo;inW^z^;SQ}F3NlBa>nFl7T|oc< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$CompoundVisualSimplePathNode.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage$CompoundVisualSimplePathNode.class new file mode 100644 index 0000000000000000000000000000000000000000..ddcfa58c3e33faff2bf185c016f62c9d9c563d80 GIT binary patch literal 1675 zcmb7ETWb?h5dKcGNt$HS#@?+}Ypt53wp**Uf>MxxsH7KK3FzBNvZklq?1tShGz%o{22r)dh?5ZXl;kew? zUK_k*xtd-Pu2$pq1EIgs)_J{1a*J2>xx7`YTMe^P6i$O1JEB%M^eyi0ZdesP28AKL z#}Bw>aI>mymiF|r%P@Kn;LNa6=#^Mzx9l208kz)dCR>;GLxw~XZk^lvWLWO5ZcE*v z+yyUr!xe^BpnAwTS+-1*SP07`hp4+NoVg{2g`T+siYA!oBVh`6jbSNsuE=bWLCF*G zI2bOdNJ32@j1d(nj535X*xTxKM&=;6Q)i~IJz4&e1-?TThni#*`loMx{3&* ztzFsHojOfSl!PJNL&{n`%i8^AHIwaGUca;qsa7R&eI$vjikKvkYGrFKnY1@M_H3AP zwg={K+JJDRw_fqa`if9?TwdO%%i~XDkWliS+nCs~8g^NKBIE$m9k*;zf-|VkXm#zp z!5v3;Vpw6A?{#AWww7VK-(|%N6&$9&fe1pf^`wPl^`4}4^CT@BkWS0BC3}FL6b317 zh_r2r4w0P6&7UBhJH>GB7sg(mV&VjoZFTCHd_tI}_n^$DyhU7jhf(D{F4LJxXoP_) zxJr_dc8%T=e~qFfepKSmwowxDRQZ62^3g*WZ+iI%sW!gc{^2Sn0ugy#7$c{`Q@iA;49`O$%L*3J;_cuil% NU6Kip%01i%{sW^vbP50f literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/MapViewPage.class new file mode 100644 index 0000000000000000000000000000000000000000..931737975aeea493d72eaf9885e01d929fc1f936 GIT binary patch literal 37126 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.class new file mode 100644 index 0000000000000000000000000000000000000000..b84cea259d9adde173c29fafa153bf746bb67427 GIT binary patch literal 949 zcma))+e*YR5QhKku3KH#(|XnmQ4u_VLBR|0gos|PA}HQx+qg#CrnIU0T3!iW_y9hX zIBAOtx~>#L|4HVX$v=5}e|ZJ4i5UkahCLm(xk^-GM98mw(b9%XPZ=JF=w8VOex{Ef zrJEY1!;@_LNC$xky$d7UI|mhpjZO&5(J}v-#!%f=p)&gnyUWc^=|Son6^XVi2&Yz` zlRnP4J1bWVl_TxR8p`OaqX$)np{5GuSsJutd?{MKWN0+CEBq@FE31oO#oVZb;h=Nz z|6G5E>V0;Zcg3*Xnc3w+435marmmNAU!?1+D3QD^ueqBWpYUP=nE_4_Wmw4S{+U32 z#nRIZ<>k!0G_+zuM3D@=OWhQSISjpg-qb_wLZ`7SPn5NB;m?P#ek<+;=0RwBT%cJn zI}chNQu`>;2UJ(rp3(b6e$og76!>52Rl>KGtJ=P`&OVlWJ2q+o4P+_Kmg z#+CslzaiKsg62ZFB^e%a*i?z#8uxsPAJzkUZWjkP#VFx<19GMBD&Jz?>;rr5AOZj_|Q zw?$<~8oRzx5sv5bdDD~?*O;f%RoaLn#&EwGT=}q_2s&$9mZ5t_sfK50ot2jK9x}8f z$BPWHtX(n^XhFM%lW1k=%1g^wu5ND_&TFw@8VtR8TNh?gI8xc+X3X1^E<+~YjLSct zk|EE!V+b#JoNY>78st(7HgmFEbtw8ka@>z$=)MrV6?Gja4X%>0YQTi;nt z%mA7|584x8IHTb#&M~x=4R49mFd6zN=$6yBf|#qpwok7&3Wg|Eqyx2b^F zG>k=o;lVi4aikaq71f$-?ykpoWr-NLd``L*Q|xJ&z;%WM?PaTuV^|);NQ2tPz%q&x z*D#4G${>NC3jJN#v8z@oYn!&ia6NQ#T!lwv@~>wSxQSbF%rGSXN82}^G&S7D9fl4H zURZk-MzxZ4b#ff@rp0=cRejMZXJtoJHl^-X0Rfegi9-`tzDx1KkRp|sH zM%vaBOW#!KA8V+guwxr9X4Z>qF`4Y-N;GR!F>(W`G%SqxI$rD zXxalY`lF#rYn&`jUq;`PsROiqq@NQ=(5j9>6R3k$Ex176PO@S+^%tBbTis)g!2Sr3 zW=II^LN{GkQQs36#U}R+J?jTJolotf?+4B=r6<1NBEvog)ZeiB8%-Y~NyZI^Lrm}E zZfMVj_M`L%@)Xb>@VyVBjfPh@z4;=BX-th^hSoWZ`mBb6$RVpXs`IDF60dIR-#N^a zrxZ9 M*;(@b#%Epp1DGNI&;S4c literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..907f0610020c9d807cc34d2ab83d24c26b548f04 GIT binary patch literal 637 zcma)3$xZ@65Pi)qj_hs+58jZ29lfF)L_Lj5qT${Q4K^93Co>I(&+?*)2S31%GFA^p zNDPUWs;=d|s#pE__5K0i6#IFk7%p@);wo0L5dk0iqOT2?17-L`gfk_dlOPn4iTRBP zdz9(wNvH!Em@8_#r%E0fhVykiQ*UDVbhN_shk_w@rUGR;4C&@kk0I0516f2G8xFF_ zF_c{u$lK|pFQZ4%_a#Hk)t>NsB2qT~NoLHGiWx55b?f|JR+~n6krYNILbb0vC1bl& z#X$+V0%{BuSIqTvaSGcpFM^@rU>iFORTa=#eg79fXEjKHGXj;Uy^- z$=WhV%_doA(LjESqKwr@84K>=pGTM=2RtBSf8e8Y^7R4;RBOp;OrV E29)5Sv;Y7A literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..0d67a5a2c3214e3d0243bba507a4674fe2ffff3f GIT binary patch literal 614 zcma)3xlY4C5Ph4|m_RO$f{HGrU|WiDqWso0&JqzJI*F0XW2V5gCRP9eZ3QDlsDDLtpf@;c}o14@5Lp@^K0x5u1c} zMbsnaObIU*!8s*e6JJD*p}kCH%)Lq&PMu}*{CBGsHE?4ojGXSNedQ{d zSg0^m95K-&^TSVUP;v=%Y%o++NSE~ed6eOx;XH`3;Jyewe${`Fu4zpNl&-I$L~>6K z`MjW&9>BiQqu7-fDqVHw@5}F}s@SFOS^7{QLoYfO*&-oMo{`TtUtm2=!#3G846I|7 tZ0Re3{2HMgvERim-Y5MtPE**RG&Xaz?x<*cq`EJx;(nj;%Z{+hz=jSRO>DH)wJv?VQ7(Z>~A6S&k_?@Vb0hJob&okWbGMYXx& z@Un{xN4s3QTK>n9FV8pD9XvP;hGh{f#|nm}IqpTkvJ*Ntxalx#?phRGGgjd>39A`a z2gNsnHF%w&slc5Pim1-8qLv0lTv9F5;Wx;OHNg{LXfQmQw)vjYs)=nO;Vp(}Q2dLk z;WEgl<0FSPC1)#!gbfS_f(!z8UCFw7hAR`Kdu#uieBOvE*g0W z-3;*{(?Bmg9zozc(j^?}W!MwMR_RFGGEF)rnq_)a?lMW(%pm_4^9rM8^kGW`Td|Ff zA?>a-Hx$#+RF{!qU03za9lg>6)ErX=iS*k5Cqn3hZn z>`kxYo)A`Po)eqgk5a#g(w>C`QR_0rRd;Ptd@j0Lr)DuKiF~0$Xg}_ZOqas2nmKmHO32#;Jf(+haZQ- z!t0|9oi)gO@gd8;B3za*%rIDEsHi;xVB(vXJ7irJ0`MiA5@wEq%q5P#mj$ zhWt5>@d5?7pk*{&b8dRtrx<7gwKHI?+0N(iy+{i$-dnxQCaZTt+)-u`Sk5C3H!-^xh&^jy$RhdBzz84aO5a+`N?>! zNLQc16E{?z7spqE#<0r&o_1`_%pEFf`XslTaD`z*TroE}9bWS95SgqaYuO#{;qBmF ziXI4K3Wg|2%$G8$#~14!7ez}xf~&A8?b0nA*OdZQB+Kab_0`?ZSQrkjNhnfv^U|jX zuHy#fWU@~w1{FKYtISJcO?a1bu36M|;nuAP-p6gKq?CM~n-tN$%1mGOufmC{5Rfxd z_#lE0g>I8$c^|{b!eCfZs7@vARTaYgL_!v6M^Ud(edyL@5&x`@*z!>e9MTiqTt*tqK0);RMpXc1J$sirE-y;uMm={Wz;tG%p&}NUP6e_ zv(fGB#1eXscmvRaRzl9X)VB8Y&Y~^V*ZUAFL+G2PE{~>#)PQcHixO3@ zOV{I>l<3G9Z(yw}(TX?GPL_>C-a&nJ^iFl4Cl*>w-V3(5=o75FkLE{MKQW8WX@VPF z*hR2M!03H!k3L4+{oYUCcTE%A?ZN?qgVT?&m)iZp?7)58t};91jyp`> zhlJS?7ak*cT)?CYQv^o^Jn6zT!P5ecyYLLbvjU!T;RS*h1@t_)L@+}hsMK<5vlEXn zHPLo?7JBp-EQ!v*nnB?^G_>8E!Fw~fGmDRYrU=xzOLUi371%;+xs_tL11r%_@!N$? z?50)SgPj<_KE#l~AV%ozG!EiCp)7`A;0TI1id#5_PcV#oIF7H8#5XkZTcq$kPT&DX z@dHlcF~;yK()gVip5iS2z&ZR$On*`PjIh`u-kQ$6SkpOoB`LLFBR(dD5UE}*y?sjK zlW1*i`5WyL?zTLGRC;R>e*~XXK^~I8B${bm6Q0sf!qjux2j$-S7rhcbr~WUAGlYBp E0JxVGR{#J2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..cce12999785309fe8708359d309fce3518bfe052 GIT binary patch literal 1931 zcmb7FTT|0O6#kY*gC)pKzzd*wZ7C%R;)UV`D`>GT6_}1bZp%`FZ4;9e#y_ObzTn`4 zl?W$?w14e*l=qs)`PVv}sp#!!aC}*Y(XRFPW|` zHVjvl z=Cv>s!`XSGZn#ewBC&XpK}nk%B8mvkX*h$k3_V$+F7l09N!aVWR22;US+mTmMQ$5% zAAD5YEyE#J*;cepp)bX7-V*kvY1dZ8$A)lRhLM4CUkb@pLIdx&Ofdj$a!;Fe)hM9IW z9%7^6K4yJ|3nj;_He4aQ$TiG5L$XbU1=FazMC2hJt9Zl^Z-B6$=cBRPB@O4% zL-cI%k-G0_r}?u$>ae|bTsg(CX`|C5u;sN?^1r~L6p&lg^{Upd*V&fNVeyCRgFw31 zTweY_z`;a~u9*$HES3y8bH{>!eu0N4_>`Pt7^lXL&~FClpf?)aw5qhz>B;DMX5t$< zzk0_}TIDflXm-)6`3CgtrX9@%^w27ue?cKAU?s7K-u|J_NKfqH;!lj^CigIwr_J?! z+-8_llK%T7U7NCxyA1ny5PF|y*u%3g=$uG=!=j`Sfuu3!g&D*-3=^4)7{Vn|av2$# zd3lU_^zQo<0(wLSuke}(_TdrPEtB3M%-{{OggK5Fa^$Iyl@!_W2N{KI3$*LN+kb~q BFP{Ja literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..52477ef267ebce8f0a2a3a01f5456519192541d6 GIT binary patch literal 727 zcmb7CO;5r=6r3$c1q&!BoV^u{uJPbS7+e?GqeoT2W*Vd&^M1r>Vkt*Do^(VM5aV8Jb3=+Qkz8aM&QnV{7^^6eJd~q9ELOD)*+_(v;kdo7r)A|X z(JvTsmujla6~n3jFJ&X3lGl1D3&>!{gA0!#<2Qml7)l<1%o+v9`#HfGi3P^wm5T2@g@YbctArHw8LCL0P?jhoFjSy-}hcT?o6 z|GSZKJq#(= zt0}f``+?C=o;pUw4HTqnBZL&v<4i zj?t(o`O2PU1`MOLS;y1gG@4DjQDYd=q+=_v9fgc3hD6b>HH@I;SqyupS68)eX*Ftg z!&0mtER%L|8#0Qb9z&U4N)j#8v75f7_=kZ~^NeQQHho2Ao?4^81FN*&u!A***xdX! zLvO~dT5$|AjGQF-$nfiwXc8Pl9K%R5^sh=<0#qYMANmuxjPW?e7*^geVU7t*GEC(1 z<#a~R=5ytup4Qc}metilT4T8P#!@7371!dJVwe@l9g9-+jKk$>TaJuWu@U$jZ(*9D zui_ZyKEw6@lkozs<3=2_41*_%ky;#Y;~kQ<*`j-JcdmV^k;{=fYneZ560+Xpcuy#E zaU)&Q^xb1YL{ak`3nJT?XH|vkEsop5by(d|GbLSJk2)(H@5|C^o@F(J`!dIe!u@hC zua~<~KIXV1D81&9AsKf$?g_?tCznjAP*8JvG)#(PRfajN+kqv*tZ{rQNE02>Rzcm) z=1avWE6wphu=-t(8c5RCIaEQr+M(st9SWpwtJ*2%Lykw1d1N_`dnf{a&hdp{PMrkI zQ4`URU;bxaU>e4lF9575rTm9_(qa%=GQw%(6cT-GrDvxS2 z_o;n5dM1l*%QLMFTZlV;Qg~s$0CB!EYct6Bv5ts?F5rNqd zS_I}p6e6$`VkZKhg!r}%f0fl3^t^*XdX7;=lej{^IjVRCQ`o>YlxT2PF%2Ix_>qR< zPo&GwxPf1A2^G16kbu4(Z8f0KnfEy$7%1Xp4U$PFiY<&uJ+Jk?|;c>3NItzKszqQSOS&X1q;DgDL^7CgD=<3{64< QV1HvQ4u|mfgnQuq3s7|nRR910 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/figure/EllipseFigure.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/mapview/figure/EllipseFigure.class new file mode 100644 index 0000000000000000000000000000000000000000..ab2f4f396af7834be5dbd2a06df4da2ae652f6cc GIT binary patch literal 1793 zcmb7FZBr9h6n-uwELpGBMnp}EfK-|naa(KEHfU84nl>sGnwGwD$zC?wS+bek4aoFM z{Yh;xbm~lhK)?3?IG%fVBP3y*X_##Go_o%7p68rx#HJrv(sm4 zCE8xJyJY{RT(H(~2e4)mW zTJUXY;3UJu8xxo~g|`iyCMNxUyRPlXD6|&cu;qz8jx5eFm}FaM2Z2=VXYz#}R*HXL zSa}p@8H}0?Y|#`ZIL>jL#|4Iw`GoPU`~b-7A}q=sw=T=oU&M~EJkfNl)hKYAPPtMk z)G}arha-&!@#Io&T_nuJShof(z;7;psjnS`w%tUkl}___Izh9?}WSc`+>mW@&Hz`<3nHI8poWlvHb~tn|fbl<(`&|dUOHY$vfHAr~vY60T zP&kcX07};~h16(Y=z|{HyEjU((sl<+l(PD;q;;&66o(GJNGDwtu}3S|ri8yC6q) z7ihPGZ%bD?SUHrD(@mH~p6;hPdR`|1zfv83qbjI+PsM~^%X)?%@FU5Y!y0~~*dcoV Jnf!*Z@e1T-vtIxJ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceView.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceView.class new file mode 100644 index 0000000000000000000000000000000000000000..b5989aa0081744779c6342c6ba632a48809ad55c GIT binary patch literal 3299 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceViewPage.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/SequenceViewPage.class new file mode 100644 index 0000000000000000000000000000000000000000..3f4ca9ff92eb6e39d187a56f90eb37a2019833db GIT binary patch literal 7160 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$1.class new file mode 100644 index 0000000000000000000000000000000000000000..007c48c741cc2a028d1d83e7f0d51fdb01d77dc9 GIT binary patch literal 1040 zcmb_bU2oGc6g^H#!_tg~vhn>*K%-PMmdeykz~BDV$KTZRV|?h)=SMU$NXHHLU!%mvScp71xreVN(-b%xgO=(|#DG0Y@G z-A+}JJf!sf736Pt9y*G_PQXeD?&J80t@z zR`xlA-CBvJ|H*!Tz)k(>Mh$j-5+D+;Se#59QHlAfnTCT0Nt^Pjj>V;23Axonyr9FKB(L zfSdFVs|zI9>)<@?-9>`q0xr@_+Oe^udQ3=n7PXIv=?L*>T>gW{+eX9VCwQVIk57`F Vv|G4MbB(;agS)f}iP3S=^An!w9R&aY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$DependecyToArrowFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$DependecyToArrowFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..89cccbbc537be99336ae9131e3daa95d60139354 GIT binary patch literal 1333 zcmcIkT~8B16g{(T*=^ZcTCjZhg^JLEu=s^&n?4;a~aj zK#;`vX5w!$#yi_3U820{%TDLaz2}~L=1zb7`tlXPbre-746oX5)380;6Q*OlX_@u5 zFnGfjhR5G`xnuDioA3Ha$8?2fR0Ft1@O_F~Cv<9scevBw*4{?@p6j-ES4~T_-8~gi zhM{e9$23}|(=?vdx49)4222^`F{CQ~VOQ8KVV5(v}{Au@Hox2-my+yWVDs9Vb)lAoxdml_7 zf)q&=TQ<4=y7C|IT-x8{!XE>MnQ*H|mlp0UxHak9RUPwKpuQ-bVLF_7vLz}OkBwN5 zkLHL5fLFzyG-NpBm5+V?#FR*e5 zeRChDJ|q1J=|c=}M)z?#Gj@Q92wn!zfP^NGK`{wk>OmigN5K?*vs4qx103&K_V+ z!8aI{x$hXrj8*17&`HD>l#y*J>qsikkyc({M5+2>vb}6vqdz_%N!&MZlelluP6PXi W5fui-EYV)UZ7kC&g)`hi0ord}R!w*S literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$SequenceViewFooter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart$SequenceViewFooter.class new file mode 100644 index 0000000000000000000000000000000000000000..c6effe85fa7151d87091f3d260ad7bffe6d9a8ea GIT binary patch literal 1613 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 ZJvZ6x67AxA9pf1NJdxlC+>B3s@&cQ7p|$`3 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.class new file mode 100644 index 0000000000000000000000000000000000000000..30407a70d45e90e6b891c6ae2fafd2f44c6baba1 GIT binary patch literal 17070 zcmbtb31C#!)jsFGH)~#!$uhtIK@fp30fMNbCJ+Sz8fBAEBoSnW%#Z|!Oq>i56s=X< zT8qWjDryznVx|5{B_Wp9wl1_qOGaQj@Y?tVr@;awXLyr zl`C7D*Cb;dmG$Yy+SW*OGP2r5CeskX5NnFJws*uTqshp+DbdRMmPmVysiY~Gy$QrJDy*uw@) zwOitmw&u$ERI;_Lxw;0Eylrb%&tI_$I6CmLBGGC0;Um39?gXZS6^UdtmdqSSwm$-N zksU8e%x+C~q~^rd#^RZNro6a(XO8BKB$J7COJtgZ$^L3!GV2@W&6GxFa!k*B;L6Nd zwWrLI4g;fS*UgzTt5&{n6~^4@3oy8T{+zm6^wrK^v}hIpvvzv@sZ4IY>by0pnN%wt zwR8TXyRU0Y#gdVxRBNJbZlo>J99tc0OMzJC>PR~%<4mkv*%8A{S<7Y6+StrQJdtD? zsaMJHN5{HUB{-+OrM0P}Qjd^3S`HNH;ib!0w#MT#6RX=3ZNT4=ZZ=c6Z7ediwXHQ( zgOiqzUyP+^CZaJf8FZXQN7ED!F&%G_gPa1LXpzf?sx7i?XqrVuHgu9jr8YF(qCqw^ z)1tvPG|QqPHgt+bLv5(eqG2|4xc}y+uda&^Ig^V?$?J zG}eY1EE;D+XIT`qp=B0T2(+9cE($Y^8bG!*MKbczVbKbjh&x{qk2IYl$BtSwfhM|W zCDVx9*@si!OD(j@MXgLn96E4aYqU9*>Zk0=OmgU@x_s3t9+*$%~VS(G(?TQ zs{b{K4zV@R6INnPDvlM?)@5XW=17~KQ_|W6SMQ~5beoHAW%6mukfXINx?M=>jK|uV zQ!R49J1y#>Td;`W$*k?BA2ZDcaVMp>J;^qalQ0b%nUooqwuh7260 zFYTcFUG!6?VX|IE10O;ri*`~su2r8}TR^7411un-0Mp&fRMt=84nc=o%CApB70r#b zr*GdQ3O#*gB3w4>_y<_S7Penl^q_E>D;aB#w6>+(^eZgv6-ju=qKD}bTxT@aBo?A0 zmNm>L41n)&nxx5;>mqn*5B=6fzsWF3PM<}O36q#2a5C(77Ck{v;xb}!ZTzM~Nc|9% zoONukq1sKq#{rg3U)m8|dY-W1(-u8L&!TO0B-PXsgES0CfJQg{5r^F%viE{T`BWg# zpDZe-5;wh!E}(vuY4OtOGCIOs;e*n>{ziT#3n>Jn#tkTa3 zX?Rj_{PLV;yYr}}jb3`4{_LVRzyf`)R5I2a>#ST5Nx}TLS@b6T1;-Hbw~7{=H~`&q zsoZZi48mJXgZhMVW=kZQkr7$^9gE(j_p)Sy`*2Jy{@mf!hp#eM(>7V{r4Q&M7kxOu zG15ciHvXnHEYAD^ePYqy=~HO@=44_``(c-w_6)uB-}JeQK7+RIJAvrZ=2+6Af6^Cl zvDzcaju_g$;(qJg^e=c{6KjMg_F1%_4nPUPsgA@CWr;K=jc;`0*2%z?x*5)&fva}2 z39gh&cC!=cCgF`y1~|aYUIAo`g)wNUadAP05IG8P#+ueRd{*p(eHIsSF^IlaobUN? z9QtXP%tms!JVOx9=Tb2lyWKnpyPV)f!w`!DJQSyjw719FqW_jd4&P6;pcrm(8N-8i zrxF>RR|;>VkLa28vH6kMJbfz1IMU+Ld=zF$&;i8(f)4v?=4o{C*nwl0Igu5yxR=Lp zDO3)Rw>ZcZAWqu&!Y3QR@yR+RVxMt_F+9=YNnD9}(0J0wbYy>X)z2T()1dw^@o0;u z@G(%MSWr~ujKrF@D9$qekY&?~w>g$r9ZMzGS1v@ffiNZ>tM>45e7uW8Ok)O6{D)7l z_yhtQIpDp)6mk_$busjKK_9&#H7yoTV{yD!M>@qds;wPg>*AA{P8i6TePsZd<9c}c zB%T58;h9X;<#mny%t}A%*l_}!!^XpTKy1eMc$USp`4sFf5(UTAl-K=du13zT;5N7= zKpmXXuzea7T5~C+@pN$da$&f+7S9u%?nUI9Om&>uDvrc9USRPV((DHJXB+D+Uc}#k z>F8Lqq9bi)2Z?`q_=#M6CR0EYU)v&^*%u|wiM7EFCEbkJP>mk#<;9G^;b>mUG%lCV z)538$V&SjFe742QMYud|U@nbSt~?^wyCUuL*2%c2#WB&5`7M!-xrrpaQf#0@#x`5r z!iX9iE8_`?@XT`X0_+r@V^N;wByrNfvN8zPU*cahh-9uw>PQ$M*eD&%b1j^%*1q6U zCa%IC^l-pFgeF6OLxO%pu!r|&OaSyxN3sd33p>!^_35pmi`=p^8+1iu9VtD)XOBEJ zf?!jpD}cNaNQvrr#uAHjTYa;KLUFR$+Ef&bdVrWhh01P7K^v)G2%gH$G8~|Jy(gS-EQ$6Vs>4) z+*s%QmC&DboG8(|EdH@DxoB-sqM{PFTl^E@PG^fwDaj`O%i?=w0k>>IcvN)B4vT*( z`?W9^v5jWf4(ZrwaX0sX(&)(17#($OX{IjD`hvFL#!}UJ+{-_6@dG$$jzq^&7VqYt zW8qfGsUTAYtQiZZ=hmg$f#5;@m5YCgi|a#>>9zRRBBCyc=scWK#y)KEBm5|YQpB67 zzuioma?!lMvG}){TdCKQBCU^G{5xrtNWa#W4{3hV;-`e1Vw2`(B|t9s4;DY2jhZqs zi(JjKPu6d{LTXr_QHMPaa1bUhv^fl`1B2mw=Ju7KgP(Ag?9%W2L~8hus&cbfu!g@m4- zgSS4Gn)-joCppRmIoLA0{C}a8i+<1I_cOddU9ys*E9DYDwD=;Nrr zB9mWQ{4d^%*iD>1WSWs>p4Evw3Rps?Z{XhV;QbaK;DeALu(iSk}MW@P}=KL>*G*7 zJ5;`<3UWKr8gz&9S*l2hgDw&@Jqc^!(OOdUq)U|!oF>frc?%LSu3lB528pYFkq6Ka zO9ey~@_P9iW~t%&tJ9?*C`%nFc{4X$FMBB*3T~ac*`dlUHC`i;W2cdTA5?{DFBDkY7F`>M3mWYMN2xG!5H_E~=EpJJ(Fq`wsXY2BDJ0Q)-5QXzFbF2}wmNDtE$ zU$dhDG+uvt^v`b!W|UVB8B%AvyO|76KMx~gy+yZ0z(VWir_=QC;mDyqSExfBsKKL1 zMWCm=_*#+~me(ovGxNnbl8Qiqx)bq??_dGUGCocp&j{{_59W2>UsFg$X?7*ySqiGN{7g*{-^-bG{ zvyb|9A#iOgN>UwIt=gl$g%DU>{59GvJ3+>82Z`$wYm!Z|**ddTnn_G$lDp!6p~!>F zMzyUBZxosU6-k*1Uv9uk7Zs3|2Mhw}H%akH_aU8!){m(2K)+Gc(r=Ws^c!_4{YEWDzfp<7o1_ARXAy9r zh==DfIP_(jl0<(E?xJIZK5sXL^z($E(M?tIm>Tqr=%$*Wue6&^*6@s=yPIm|F*|5> z)2Ts6H=P!AcGH}otDELY#{%hCC~b?Rcd;N^B9BISEDipY&hDnB;BJaF^iuO~THR1Y zzqSAEqQovrcGH^vy&n{j{LA#N3l^{Mrt^cos4v<>7X-~7`c}}O>iflV6Mcu&GgO*-A zAH@HEiER2q^empQ)1&kkWVmm{>K1MQbf=r>M|d+&=uG ztmvUTx@d5)h$r|;ao~#LyL#zv!@xRnEJGh_5JZLOcR11$VD_g_NBupH^0Z!Vkc~3E z9FSvkyRcv{W?;GE62K2+w{RR}PE8154R1f`O3pu+eKiII7mY86WB^wnFm(kk}zFYxH z%DB0~3B}I=UpGA;1oG$63lT7CY~B@yLhBNnrwUFqH5a~UhMZmM^9sN7khRq78x8Jj zehGN1Tt>*801IJONL@<#+38f9;{StGoek550c__Nlf6ykP2&d+8scJQae^ zlOOOp&`|tk5AEGTmKnmo{4VNBHy_M4JEZx0c5?}{-R?{e@65F0z=Fn=ZVzYLv4*re zLY7nToSJEOW%29w$(eRf7Qb#El4;M=?H=Gqd%z3Y=(7~;=KO|$7uY`T<-%QDQo{Zo z9vtw33LgXL;bB#Uaz!sOoOz}%Hq|ol}rWXT+{=8m3qK8L?e1Hqma8bbPlXa?! z1I2r2>~0>@5GdZo>NNc%6`DUoV z=I^K|T#&I*IK9y(cvYb$38+4<$`|mZN#g5IlAPTdtaoY|0Zch$s|U~8=w!cBi_d;A zHK?;0Q=iWWL6s}uD&f<5c+M6Yn+E4^pn;x@bbc-NVbOyn54K*>qk2*Dm+y_XP6nZTE6Gkp4wWX)iU?0cxXzbODs&Ma-yRD7uOb+R7%~#tyolUDU&FdVoFjE4Juq&Zk$n zklsNV<$W%ukGKTYrBWWoepDd_A=^C|>B%8{KB_w3M_uPG9?tipJo5tbLI32D%HUC| zkVmT_e3UBVF{+%$s>wV~oy{d^6NIl2L zt5>*6eZiCw!Li1ur#Syu>Wzv&{g{H^*?; ztOkW)@pu(H9q8<|X7`#?IIcal5mdpe;kzhWXuQvD@KO}D8qab9Z3bOr{2V#zb8%N! zs)Kr*lkQiKaT0SuW3`7nFb>sgWpawwz?M9XM8{fQhx>eoU*%5p=7Huf@p?cODE|VV z2Phx(E#mV574Qr65$?Q%3Y9^><_&xS`BWk5^%nvvQbX`#f^VX?Se4TdzKFj?CF(l- z8t7ua1kfFH1aE|gRjOX0@7p_2AJN734h#c7=+Qec3Misivy37-Tkj>`D5bOXUJ8uK zbP``GJ20y0SiOeN_zvA*pVznve0CXnUB-(voiFDr$Zfn#H9QTw_ZV-{k$fe3y~Zar zn7@tvNEf~Cq7M$xIA$I+SpHXfkglWR+zB$&9*04Iw&@3vZy1o*ll#!Ia4 zhb+H0lwanz!l8oU{`_#LutElP!PXSQP4qjqP_RNi(o^pa`wKEy!a1!ye2?Fo8DoaS zA#Yl}Cdy=KpEn$?*=Vxg#F3|NJFwIC=wajVeQgilhgTyGeSei1FdyJu$mlu(jtBS` z;=nBu=plwmJW0sj!+YfM*jB362L=3uoE5eseO8zVZLsyB<5AxTShJ;AVd+iewimA0 z#lJ_xi+kt@dEw5?+o?1t7xJRn!_VM7wTGXBH^-|4Zt;2LWky@VzNxq+>pvb=&8ZbP)9%y9SyB>EU%^Gp>w7|+E0db&x2gA zhP=1)2KpvnM4KU%Tlix9#%LpK!lm>mWcXP~?JN9kdL7dGCSQdgWPF$Yn>W!ulzs;B zW>|r1cqFXBSpETQ#1Hudz77TB>rsN;!e{Ues7PLi8sm-J#@~Uqxfxnx9bd)UF!NTv zlW#-K<#tp=?%+r9^$d6M8?Y+xqF{4??^a&E7xv^nHHvqrDZEonsE_yN^`cO(ByHQ^n_xMtq1z4XT+nUKSbmk!7dCyrIe@{5pCMaQe7`A>ihs^W!O zkC~v%$bqz(CxVXO@XL6+5Fy=T>o$6YZr6IugVo?&roppg641XU&z6a(kxUo|B5{9 z8x-WXa4W8iu1t@AJ3Iaz>{E2*CFFGtg(ld>np5jslRa2HkZqauWVbFs5~x zBfzcKLghf>=1sKa&FnJvitMEY4dU0s@4C0rT6f6llktb~ddMYX_JrK>dMxDed;IRG z3DGw~d43OOOx;TIS{gzqDr24yDdJUOzZ-%CsdPvE&P`|Tye}0d$DsUpNAF-CNvFPBO9#yzol{BCY zi-ytR4)0R_s)C$GXE;!>Qw{bxqtcT*+-3K;^b}tOA`V%^!XmQMckc$r;C~zl+x+^t*vOg}h-$I8+3?RGhtM zVH+22umr78(|U%#$nOmMOXN}PFEx!_D%iy*WT%9jGHQ=J9=nx_bo*mq88h02^nz}d zuP`{v<{n`%T&x+@46P<@p)vk`I4qlex=5HTloF1Tes#2rv}GZ^T7G&!m*#)Xd#+%G zW)!F24c^co7z?0Gc~{VAT<}egm6j*=&}#j*=|W)#0+yWfRAh+YbU@8M=X3Fq_=P^(YU>HG{WMW687w3pw3Z}}d37(oz!h=AuK zgg}48@5w&K@4r5QdHXvr;7{?xlz;FgC`Mk%pW){e|Ky$gB|m`@xn8wHgno zkg-P{Z#=C|FkVn68gHvA<6V6JO-(iSs%fTI)tEjt)hyxPm}UHkS)pd?5NHkpO6cv3 z*#u;pO=XVPCQ^~l%;zMiXV4JSp^cVFUucJot|lrYi{!OV0)Ps25+En-QV1OJcG1J2gK1-bn$j6`1 zR8^-=L-@3Sj!8pZbgViZbBok=nylskDptRs5o#`=67_2us^$SIRqr9Foe#)~@Kj+w zc4~}9U_KO(+jxK))fs?18N;2X+1pu~y#uWa!_A{;@IJ8le)8LP^dK!k!b^gj9cjzz zLNQ+dPweibtlhPTqf?rfXH9puIXmS(DjE=<3zESuRbv0ce+IUfYKK#)my_ZBLZmQ3^@!3T`%7RvWK{SJI}QC=p12<25w zDD!)vul#w@e%b1=;5AZ<$*ax;A2iYt>MS}=Eu|{8jOO4yPc5gVDy-ej^X!dfH$fCWEq^>3&8sVeFKmiQc|xL!xi+P zEKs9eOE1j>H;ZeTr(HmcjQw<+czXr-`6J6OZET_$pJGfgh_~GgnUcerQ2df)u*Bz5 zXNH_*(9_{ZRimnMbEQ?>xG zQ_|4%DNGS8hxl54FHES|I`P6J;cSHRgVKlQP(j*j3>6w7Ul&~@N$V+o-z0M@`TUmJ zN-n=IWNpmnOveq>fc9IcK8S3m2RJ?xdlrR3E~-Elv`7}RZJa;91>t#xOFK~rP9-xc z-jH^y^uQSyf?(F((ncTqeSW7I-gfYUK36s!u>tGJ;gGK%GGsT?$aJ0+v?>r&XctU= ziYgE4!DOga$o<4=kXlWn)H*s!by9^|Pa$<4El}svVs!yU)rEvYDSb;_L|3S9(bei= zx(VO6tBur!Irpk7s9Rl0z3SWap!yCysjh-j-9)ddtLbgEnLbq4&=>0aP-s73hx#E8 zLXNInUC-0hjXXo$#PigTc#*o9!|E1ZsWx*`AqG-+^3|$~Z&Y{jHstp1hT@dk(LM?Y z%Vop?P+A;NU6rT`;(#`(dm8w!7w=MM12VzTH>u@_I~_ELuZ3WVIE=y?5eS|O|3Taa zwE}b9bRr^K$;WvpN;47pT>+>$-R7k$prE4|Cv~%Y6~nkZ`YBGf5|A6h@}B&sb(rxW z{YCeB=}CG{HS2MIpr;WjN*3-}dJ1%h8KGC{5l|nI8@)}t)j5C)f#XWO10R>ee8tgL zggALHZb$Mz5|f=zK2d3QR%wS0v?OEXf*!%I{Rc}!{=XpCwU@$3T2*CKYQJ$ z*l)@cx-Y9&v-u63-VlX=nuOnRJGuRiF0wyE9>F9%cZV_G(Go6$B-v2^cH!`^>XUY4 zZ2ZWC+>^|t?atx zO8dAO-lHt<0g?){sN(I~l@L|DT?KGwqKdc6&)>Bw-mW8hCrzXa?FgKvQbL`plHi|( z)Sx7v>(RHIPsk9S4z=szxj>#!$5b1WRo^SsZBrtH4%Te z(q!?^1$0O89Bc=A-a{I7jF;C%6SM8%fd<=+_F%uM13jdJunGLh5v8bnIsTqU6OwOU ziQ@1W9LN(04;|;pW(0d*zuZl>wcl93N5`(PC7ud76aMUZf&kOH=o5ievwA1KY@*3qPgl7TA^O0b?ObeUcE{8DHPzzTPsSlx&KSC+xW1gZu;S7O`|6+LgJtL1lHZ1duiSY zd#MpAG5mJamOT9M!O%iJWSE5VEyK*H&x>5@2s`N=kNyM_VE@dbK+a=lA!~3D<%ZLM?#dBS)n<-!Z56WOsqERcxBpKm^$x>{06=YJJC$?U6B5W3qp>;Z9>>_y%7w zfAFF6M+`Kd@jLzj*59yGU3BRDBL|$1pZpIz|B^%J%WqmTzdGsL|3qqHXDr9Kz@%6K5tWwfFXi z^apfxwJ#ubwaceI^fz^N^*b{I4JH`ZavtV#X77Ezef!S-``_RH1aKNZYKRG3a@?X} zd6ws!Wna&clRJD0h^#q3@4foa%gxoG5k*D4p& z0(-`|FM;{_m*TizcOpOe!6d7pmoeC$T(WC zN5^i&+p$j|L$y@oaVqpUr94e-d7O$oPBr#8<;zEY9IxSZ4GDq%MiDF*t+F&q((}xs z^o;4~MaLWH6xdyqe(0n?Pj9{Fef3Lm2)wD|EgTfkJn7F7gFt5^<#{FhwvKm{Y#U{# z3IhAG1T<4EElGFIT(YH#xRW>SdDFGjceL2*uUMYI-tYA;x(?G!y0Aq|^uA;W(x|M6fsj`v|`NYSg>;`1K*#zU(>K%Oyf zc@^7S)o}^~0s+XX>&h}Car`-u4b;+Vhci0P;sb%bG^o6NAag6ywgry8z(639ZpWa& z#H&}h<=gDH^8&e7wiO06%0bp#lC}m`$LR)nsQQ*2@{!EbM8FxoG&VC?40(%Lt)nnDA*-&q8ttPtiDMWS6YoTsfJxV^ ztXS+y6&J^i;|i|n$YMIAF4AjI&*`Wf8}US`YWr4&qvI zPLP_I&~XDffp*4Xnk>)u7<>U98F*4sf)OGfVlq%9mLzWKn8z)WmQ#^sfpfLQdVT3G zPq6e$FbvP9u<8Ux8l_pGcqyV`gX{_+3!LB4Qj-YL$bs!7zgpQO`s$8G!)>>^ry&mx zH_>h!=Me&GajRuj%Af1#MW2QxMrx-5h>&dY_>ALQ%a(K_F1f`jtw^^61uSdeiFQ~S z+MGh_8bC)8D?B_|FFDJn_=)G(v`#~br8{sJWUPB^u@{i%1y4t`0PyfuR~8J_CCS>H5^DL+ShRCw?O4E?+LW>ew4~x*o)(w z6ua>*R}O^AIKqGG>g2{?q~~xPr-j}$#tCgnJ+OYlL`~qXUdEo3PfgNYOLal z!grESB^PUbUh`CqW^7B7eH&^1LLXHGE<8nY;R#Nz;dJ60y-N)7*7^r7EVMku@WMJq za_bn)Cf6|j3|H20b-JIjGi#XpmD()<)+B8KgLG?%Z|AWO7Z`#x4)Hwh;`#}kLk~tU zfQtdDqv6gGsvgRIj0NHvVB~M(4kPdh?J2Lrf1mPA;4@s}U3vWzcT(7g7_!A||6dq* z3Ui@fVcbAoU;~!GI?4g+#QhC;F+9Wl>685}8+h0PmADXj7c&k_GI3Y9_Y{+Nm9zI0 w({&97Pt8Hh)F2*;5VzqB9^*@*F{u9)z9!;tXr~?G9}H^vmVdtIcML!L2mT`a`2YX_ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.class new file mode 100644 index 0000000000000000000000000000000000000000..36dfa701e1506a8e252629e756a0b90d6981e9fb GIT binary patch literal 5527 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.class new file mode 100644 index 0000000000000000000000000000000000000000..43239ee6d68b677a56015b09196a2adbf934d97c GIT binary patch literal 3941 zcmb_eTX!2*75NZX)J0`AbH=?qV+KyA(gfNzla6nKNRVDZwYyz~KHoR}`M!s3lLegd!j2+Vh8wmm~uEzf9G8tQF3hFS3}yXhKpjx@a~ z)2g=|IpL3KhzVqs2U)3GYpyhEa>Zy_+a|NJF8!6kdV$`#naPQ{8&ea-($$&C8xw`O z;^neHPwA$4+cfHCvu4bCj@7J<3LGpjDq(r^X1yg7hzoR$Sxw6u7dVwE?GDS3#cQ^6 zYgslct5;0N8||MLh!yOrOd^VdI=YceLf{1*hw-97+?8IjDv-)_M(&?a;E2Ek1LWGw zUQ!8aOmL1Em~x3>%B{w-bmq+Ex>Ri26|+8XI+prx55~Mz%M}>+ zdHu42VAW!4q+j5b=hR2wFfmkGb<>lRO@)Kih-Ug1RT5`(ypGfUlI9iZtk_N?5RjVe z*OA2lvrq*2`jXYl%QvYr!tcrS2fVaAt8SDi>(K)kf}tTNaL5KMT}rrq?(?%nd>OF4iws^M*csW1ub-DpZ(iapnu zk?tDBZ!KGO%ez;mj3+s#gsrfQ>KIe>Xsf1M_QS?~GZOZ6@~YT7TdR$STWi)cE4QZ2 zwRZ9Q$Yp0t^7&S#e<@5672A;w!m5WrWxnrnr|(cj0p5~TRg5GGm{ObZJ-^uVNt{Pf z$2agkvHSIGaKBrXY2})wCYvF&?F7GKdaH^ZhMX2Kp1HO&Kc$SzIfj7eZ@6@T2dphdd+lKC~ZMCApQz{K9VS1m4k56Sxo}5WgL)IW{{`!!_!5%_!NmnsnOjc%o8iHB^_fog`K; zmBdZdHQZu{Q_i-|J@<}h+_9>Zuxq?)xodUvo{k2Z0!fY)T8<-|?250p1^o=OQ59iL z$9KSnbcn{P^WB!StFq1=aq<}s{3SH^a9cx5pcs;^3=W-@;1sX(9Pnf{IL3_j(XOh( z!Jy%mY_lpI9d~e7;55-(b)~b_b;ArO#6Rvmn|D(aKnyGA-ZFHOKN{YL_L~oTc?los z_%6Q3P0M^{Y;_{$p4Vs!c7qL>HB{^AdxLg4I|a>sN7)ln}~p*?WlmF4X)a49euhH2jp zHT+WG&5!~=k1P$JaNp0`EvF)M>25aaU|8lRxqN%Z0rUgk(&V9c2l z{G%Jrouca)Ud8El2!n6Ixp?*=Ui+LM5h#}m6L7|NqX!GxZX)WE#u0_@cYLeR+3Y$p zrGX6$3X~t<$j}Cc1*Ql8hV#EiJoY*N^8$a^{C8AEi24zZGX^aQdVoL&IX1)y1IX}x zrof-@8OpY!#_<|1V4U&#$j?c9oj5OYRWBl&cmXjDLZbtX_ay#CRPPTkio^U<>|XaV zeu2WmLrhKwSo5(57)Zx_wB;cm?Mp*Xa6TVT$JcS`2}=2{!F1OK$`M>s>-;SKIXJk1 z8G*l|w1N2uo?!7$3=s3v%K5~cWm+RRh;vNiJPFG)vA2nD3}-RQ(F+8Bju)VdeyZa> z71y^@{ji7qKN*_mX9p9q=b0p#hzD-+`(N&Rx^~-H)jw))7As$e( z&CcswSiyU3cHSXuo#rbnf3@@lR>;ok^dng7um>N(Ee|c^wZ|h}(UJHAjHR_yd^jH) zSjZoEJd%u#bU(n$=>w_m;d~+;ODEEa4e%~RcD^6O{ce%!P9;Cv{MY@sNX1iKpKbnK zNj9i{mKp~pnZ^`hU&2u$I));3ph$TiAMm}ze~I!gidMEMGD*ympYj5Jg8NMQ7+3xj zpV0px4Ezi~XJ!}iqEAtRU%)(Ko0L()CuC8>FEo4#LEU@`Y?4-e_k@OzgDLe~1deZ# P?od;r_!YfJ@az8qNia(l literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/EnginePerspectiveFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/EnginePerspectiveFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a593ec001d7f872f77c66261ebe71a043e791896 GIT binary patch literal 1843 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfaceContextInfo.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfaceContextInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..07dc82a19e9b5cd849ff9566e1283799968d7de1 GIT binary patch literal 391 zcmZwD-AcnS7zW_?n|4jN)%~c*Zej&bJ<_g1V5DO$1CK^l($Y~<=rZxzJlF+zQDQ2H z1w9Ghlb`oX^6~k825^sC7d^tFZi=8hmPaFXkXLeFn?UKJ)GFZGs3w=03Ts=v8Lso% z#U){KkgqbRq%MMZe^8krFfNkxQG^j;w)$O8OjGLOf#BPWwuRZs>ZBMP!f3sTc0b1$ zJc1K#Bat!;30@eBB~N)Q7<`-A?%hPmIu;3k;wzrMFpLRzf9H21UPcU4!XT+nO{Sj9 zN)hJ&y=Kwgv`-*h*e~g04#$oJ*Qy6*?R7k`9(Fvk_B+0^9(O#ko_0L5sf6qA?3*uI CJx=NX literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfacePluginEngine.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/InterfacePluginEngine.class new file mode 100644 index 0000000000000000000000000000000000000000..641530cf35e50c8f36ad15764d429c8a8ab99964 GIT binary patch literal 1485 zcmbtUT~8B16g>llel3Dkz@n%iYD={vXcVn6Y08!~X%}LF_|{Cf)4I6bZMIXQ|4Mzp z=!5ai#NT9$cef?hP$I;anLT&!ocn!${QB}0z&ajwqGKo6v0gcxQH#G&A}a9Vu3ejrW7kk~2jZIz6gZqTXMjC@5WVfl|@ zRe6@v$}vn8T*tSj_J!S(5kwi17uD0luHP!u<@9LCZq@ti^sB&aA%O65BZx3Izxl_jIPn>Py7qEFA0 z-C?d=oZPvi;Vx1P3#KQ9lB3GN@GSLTC0x~z!9A)%r$@~-T!rG9st^PyP21{pC710c zm!|7Ut`92WkIJMBTJ5xKoS{>w`NQqwX5TnZPKUh?TS7A=2V z7e;QRtiNMIOQ5-@y*7pr@gYJ)2du0nB8m7B=D%UFocWH~kGSy}w;9U8kIWI$nfIhO z4xf9D90Yx7#6Cl;N#b25sc&np&xiZS64GdbIUbO;H9`@vpZ)+W5?&`fhKIiaGS#c! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/JavaLogEngine.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/JavaLogEngine.class new file mode 100644 index 0000000000000000000000000000000000000000..5928147a7bd9d12c966093afdffe8dceac140cd1 GIT binary patch literal 12928 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 L5K7slmn#1+XO7%V literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/Loader.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/Loader.class new file mode 100644 index 0000000000000000000000000000000000000000..eb0ecd32398b059d1caa6eaf5ac7ede9068faab6 GIT binary patch literal 14172 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager$ResultsRunnable.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager$ResultsRunnable.class new file mode 100644 index 0000000000000000000000000000000000000000..a15ae113fe394dd5f6d933a232313270ba8ff472 GIT binary patch literal 4040 zcmb_f-E$My76099;Va7;Nl=FZBpFVN1AZctZGGl*I!hoP_3s?GvKyT4$1y?bdf zWZI@b%y2r}I)CdYbJGloQKuq1z_4CJ2a+kYp-V#w_cOF*bJJ?)0Sy94h7Bc(&_um9 zC*4yj8sv1zDI3yXNtr&~@{ zFF94p)^X{1l(ms^xn8SVhVQs3WYCquBiJUem7y3TEXw=5VOn)pTI7!}D@NHj9a|p{ ziONYLjs(P#V^pN8p$9)=c-U}d+#zzGf;TI$gW-ugE3KFYS?}o~%Ek?XTA<5u#{x7S z4fX|gGCZQB$g*WFdQ$h6e0|BRRHg6fQw!3vQs`BFZbw$7F2}GV#LFES3bVQC6#6kB zu!kXgXA_(2LBk+)hNMw0Q>+z2NA3Zbxl&LgLHeFDyaiu@rl8DzRHNE_jKJtDN}Ix( zjXjww3LIe2W2|k4#8Ek~Vj1Bfg+q8;;4s6k7|tmFVZcvXb?O2d@*oVRD87*-s^4tx zE_hzcT}a{xLxxlhMlEJAY%znOst)`ZBLYt_?2R#}*^$VDDS1x1rhh@hlNe=KH#RwW zVv=EBoJDsPK(>uh13T$Dgu5PjzAP6N(33dEux-R{PKhz+#Y5M?siOT zIIWt>deb}QO2dyDi)vpp8fI~Zp_d@}tS8+mY0B?T97Tz`wS1RN?3Ex7X)gn z*MGn|O-WFfj0H!-B3_}cPYyA3XN!^b&D`WyT=P=pQzN%6brCdTaY2Pbpia#v2Eq-d zQKv>s()K4EOLk%j7X;2TjK(nCYqB)Fil5OKBhSln-KQ9T5L*NdTW)tC7HbWLCgWqz z##UGpE~iyqFKYOOsvfamcoURDfnU<(@-&TVG#pS<+5f{4=cyjIA)Nbe{=1-=k~#=|*MZZAW^SOXOHJkU--Q!Bg--g_=gizWy(9 zU*A<)?D-PuE5X4B>36-_<{5PGO<2!2qnl_OiHTU~`4BzTN~utSAIANmVEzWFQwqMj zfy~TRY%X2HmLoT?edY#w>3!FhtJpm;(Dyf_uc2=ldrx0RA)n~Kf&DYra4b_0gDrdq`gtz~_)hHOyKso_ z#t_e9nCCD`v~k{tW4s?lz6TS008@Mr&v6~Id@o)i+8lorWxgM0`9akA0W9%DxX2IV z5`P?D@I3xW&;QW-w|qEA&phRq0w1L(iT~maycwkB-}p6t6WIL^{1$IfY6q|hZ{r=Z zycn#0N2?{eAAgT`X>}22@CW>naC8Yn_!HhkJHDWEm+(I6_%mtINN#xQ13L8=qP&CT z3I!!0zywP4-L4j|oe_9_^9pt&)z}dDP>?Q0`yT=;NJG1IQ(!6F7Sx)tbA=S%ML>I# XT7~tG$Rdu9@d-UsWGf@nJ_Y{)Ewrq8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/RuntimeManager.class new file mode 100644 index 0000000000000000000000000000000000000000..1168c1c49dd591d7d4f1f90162c620d8dd304841 GIT binary patch literal 18131 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 Qy=otxa&o^G|HVoDAL{3vNdN!< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/SystemFactory$GetStateRunnable.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/SystemFactory$GetStateRunnable.class new file mode 100644 index 0000000000000000000000000000000000000000..533df2c333e01eea291b0223a73d546e9cc866fd GIT binary patch literal 1811 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 W|6S)-g2ZMWSaQ8|`d@s|@WM+Rgc-5` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..51816065a0ca7ff5bc2e03b665a604242351d30a GIT binary patch literal 1873 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..f2649db3355253fe23c742ba49512c67a1ae2788 GIT binary patch literal 2053 zcma)7ZBr9h6n<_3Zj1|P5ML0h)LQa_Y)frz8+?fYB{qbZP%NmWH=Ap+bh8_G?{={N zq+j|U+Np79XZi#BmpaqwxygzU1H)u;ckj99oaemVXaD){&%Xi8qp2anaM$%3hUHtn z(AD3^AmS;Uv^&81({2 zS}n1{9o`TgSr-pCuN=_LGMrej982C|xRE@*S!$hODDT!q98sLop+RSeCR6J%j51uD z$(3@&jm@R4@@jQ$E5BN*u2ph{(%Q^PFr3zL1_`ovcuO!Oirf4rZrI#u7**+6P9v+d z&gvM(35KyERjw4YYQkINHM?uzn%rLJo~8Doa7Z>SpCNZd3dgEG6+{y|!VDxK-5Okx z?y==MEy~|EmfmiulTz%+tg20XX~z_8NlLzk%M9a>D957PFv|AcNgP)&t>G#|^0@8N z@gc5J1sg(!4wt%<#gIv+j!6B0GL`oVuIu<%H6cMkS>}pc4{Y&JIKtz097&`#q!?xn zkL!R(9U06roH3i!M6u5!!$k7^_NLZPVGf^YFc{_sLA2H_?J4q!q+sR)P*pBMbQ>c zoe*A;m^!iDKhZHPFhrg{kK+#RX}C*0?AOte!+pAr;$^^X8s!6(Tdi#ilSXS(!y?1^ ze%t$jW!Hrl!vls%?)$=%6>4ab2tn~o$P~#q@>o`vbynr^NXIuSkI{E|RHbMur4=0| ztWq$%trF{ULqBHr{WQZcvN1enU|o=^jx~JCaN!+DMfh#H7go)(ElCA429K`kdZIS~ zRjbvuMVZTHiEbSA;0ZP~d`Ck+V0aEQ)3K?N9i})6i!nSSx=N+yRI=ae*iuI^>Gt?X zT>!4529rS#$>4DyJc>0nXq4l66q~U?;2vXo}^uwf$^jiPE1+|AFxi zKKLCUbug2m$1ZL}kj`{4-;X(o5%O}5JY2%%eV9{wm{a&1Ul0ae$N`wYQm!iZLS`4Y zh^?|6-2Mf(|3ZEvvGfKHNnBv)pqMDrLc0pXE{K4Y=qW87JYNapo$cUW{!wcF((D)yOX(A;6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..c0aebaf6f2885648f2462ef3f7d54205dc76d8da GIT binary patch literal 2640 zcmb7GU2_yg6g|CJm|+=`uzZSuph$K%AA^X3Za_n_k>F;tWJ3@TV`sP7OqiWnW_n^0 zzxB~~t9;>=XR2f=w6u7#EUV=ISeBNzX9n`Y2Jj)X(>;A}pL6c*)A{4ypMC{!9N%h4 zFbuk0-L!nmm)tS0+kDoQrf}+(Bh0GXXmF?In?nw_mzG7@_2r1T&I4NxN1rq#8FJ5& zAzshW=>?9o8e*I~ye>S7E^Zt?xn^yiVe_EnSn>=*f9CnaveOL7VYeny=)hJ38VrVx zOm%g**#d@c1KW|NV23vZL%KN67r1G2r*2lH zXF2t}TD8-_CTwQtDw1ZUpfM}FDL!k50dAGs)7-PvIG#+(Im>4_^A!Bg)}5r##G5^gI>AN{EheGLyc-0`*iMNkEnJI*xxgqU1%bLYh*lQ$Mgg%8Ca19@~m!Ms^ zfmu}PoWw?OArKyw|J3UCk6U!rfq2xktES>JqJg}mGX_WwP^2p%g&OJx=3o&{n?T69 z&^pI-+#t2M?+Z^(2DZqE1#Smis%okeG*lW{b%b;@C@ibwpMk4zHyN^RfW~Jakd|$p z|@y83}o4JZMR;b%9Do>XpL+_c^boscAX#Tv#}FW7vGGuOWMSl zs#;vD0-e5X70IhNh+OF6>Lh+@;4{@lJ69TQ#n*IvLG5<+nvSm+_N|hMZasCA#@8X) zS*qd&UR8`*>cTj<;YB+zPtJ_PBt!?@-IQD1IrP>+?;3P^ZlO_`<`eYWox6urF1_t8 zx^lgDvEvTSC9sR0X(Z{ni=MlY!X9*CFTH{O!Z@1QOC!n<<|o&|3)n~BUZlAsjrOa3 zSdsQsc^>xO$3eOnkF;>~2mJCg`Yxvj?%^0szs}IYo9VadL8C#2`*`=sse+mxd-{Aa zN>PedU7%45mGRt<*wMmtU;4uqK6-#!ssA^e=x^crE%b*t<|7<&n7uBn1?SRj(y6zF zo428dze=T!P^F`xn)}g-16amEd`I>E9*1y;D)0bD@H;a2ldc`5TrN`Lv2qU~5s*^L zC}Dy0PEhn|e1b*Fy+rG~k^Bb_H1uewCI3P~sY;!_USr&%^{UomB;PV={CTMH>5$u( zYq+)1xE(6(pj_X0;+ z4YAA}UKbvDm(O-zJ7$|_xKOYhOU^LdN}t~?v%%0^bazAoUFg%HL1*YnXEx&KXSkA@ zU70O!ZY^wAR;%mV%d?eAY2{w37Yu_sE+I+I4sQsCWOS>+&r2!@cKYxR#x;yFOm`~O;jx{g z=y(_J5k++&%lt?@i@agk2eh2doTgO8yQ$*?q^JPCkj23Bgd-1qhSR5AG8@V%qa&+= z4N|bSN+Tx?6AV{R)^0Aa>>c67G08CE3F&cDt_8M8o395LG(o9OlnAY);iqT6k zqQlkx$2va29a1OthH!R5b)F2DKb>kDK|YSpNROG!q&h3Fqo5+hr5kB1ff;OJ>DofW-%8L(JtshXvUBu#?LEL_&8H-iuqRbvALv*+RBBss^FkGqA|J%D&JcU_IDrj(qv0V@d$PPbHnBwt5YGZ` zQ+pqi>1u6HnACAwaePZ+g0@Hj=6o%{Vv%n@|>} zjvWvk*Irqy3BO5AY}G8=lEk^uxz48RiKtPlR-qmlV>W)@Qlt z*i%S*2uEq2Zj-7Tc&1pi)ZI6F=9@98xWhQrx{ID6B350W^wmY*8saqe(yT)3G5R0O zzCa?Iy!adg+1zss{Yq;w4AYoIH;tER97Y0HFo3Hxf_|YN&92dmP6*E@^6(Z$Xzx0$ zb<^zaFwV~uSK*k;;uYbbb5bdJ~?c)gT_k@;=YAUfOXD9Fqd&KHZ^wSMo fKnhF9yoR}Sgt^qlTsVfg2kakmVR%Xj#9;piZ`d~U literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/Command.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/Command.class new file mode 100644 index 0000000000000000000000000000000000000000..94bb13308337781d6f71b15ad03bc0a91f44edd7 GIT binary patch literal 835 zcmZ{i%T60H6o!9Kh76=r?xi7Mc0*1CJQm#r>TA}&RO!STAQm0Bwo|rrr z`lRHY>JTAhm_HTgf@eaf{IGv26Uz{4kxPcf?xU+`3#HRthA1)G${|HQ=-KTPDA>#>Zm!m#w62G}(zKgu3F z5nhqQk53u??eM|Duy8i8M}^5u+LJU%oe<1yD(wNyeDp31%dL&4!=C}eyBJfblXfZX z_;8(nJw}9Sg6x?=k;t#g4KN<*ZaJW^NnthmFabiRMW@i^&^|>TdIMUY(T&s2oV9(8 z_<{}rW@)W^<09th99IFD#{#L)kHHdImVH!!7kEjw*W)&dc!RgJ{#)b{tG~yJtUfJ5 rY45$DOWq@-z!htMy29EcV#8b4sh_4-SgE2aOb_S!b=@_6#Sec0;`g`k literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..074d8968608d2ada7054dc7501863db2a7c22e14 GIT binary patch literal 2817 zcma)8ZBrXn6n<`aNg7t#QYiM-zLO9jwXI@FMJY`!GzCghYOS>{$!%EN?53Md1>frX z`}oOEe(?wR$r+mtI^#HgZ2yzvb9VzFu%N@tvUl%u&U4Ol&p9_w{`vh+0B7)h7$Jf4 zwo^$-G@E=~khVOh3@gs_x1$t1xLB*0}#Yj8=jE|6yLo z3v@bF%QZ^!nr`Vu>Cif}wfSrlHYLz*+Im4*9oxn#<6#u~f?*l%sK9h=8~6s2ZIE@x z@i~Fkal0U+Xu&fYcA!(BB^IBHV3)w2zVzH!=EhhqeRpztV(RYL)TO>15a`md2i>%^ z^pfNtYS)`_G)NDyLx+8Ll_Z(of)3PRJAlOot!>zdZu<>H|KQ6 zQ0w}~R(HXu2&A?N|3A)>f`#Rh%vW7<3(ZtoxWMBdP|C)Kl)q68uPEY(Yy0IH#TdrJxF`?{2){lq zntMsZC8Py*sU!1?Ani>RDiEw)-Afag*}aB|Fs=ynZB5){qG1wO1+;oKU$07s=M~>t zkg98#$t!wg!BrhaF|M&sl@?J<<9Zk~tJT^J)G&)ITc7y}oLcXGdVW#n*$?aVu73*S z28UohT=vA6YnP(9iCba3E^uV)4E^Dw;SJmtI6%s#dNgE371_mQRV2NuMbaEDmCRu@ zjJE_%2Jkd0P-U*XsRnvmgN}LntZZOh&e;kla5`{QG`wwS1HUf|8l>v4ZYDD0$fjJD z6>m|)g5upz-c10XTEP}IyrW>RaB@Gr1vk3JI^;qWkxbOEsyCW-A zlhxYeSLTKSVIYg%neNIoS19j>h}uzA!9ENMqH*9VNpIo_>@HV%dbVj7vz(yP%F{ZU zwX05EUN+QSb|Cn7#n2+>1&;C>Y~k;e5dU~9dT+cF`M-rbI}qiwgR4CE6|SfMF|_`! zosY1)KkA2f3mvk5G7TiZVp1 zL&S%O2SW+b;+P^Aw`r+Dd-?}X-0C{@7_r0(5&|oDUZ95It`r|NynLOc*b zrv|$+HB9}5+(;`w_tr4CueF9Zy>E9$+7hcS?uMY=^UB>lzVB;Wff0gom8ik=C~cqe zzR%`vX1nRZ9uTI?mweoE04~w>{t7+}p&{7_I+@yWCVPU#c@o1og{$b}yoyovID4<3 zO_IP5-2DlI%y$TX^X7bl)1IuOzBFsHKE=oQgi;>CFZh(=hiLaRKEvk}aTq`13w+7r rxk}Vm_?kx`@J*2Dyc1PbQ2j=z?F0j7J=(qg<{GW2(+Yg+8GiRKk4FR~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..5d5340a636b47e72975687eb7330a1e7ec2017f7 GIT binary patch literal 2414 zcmb7F>r&fB7(I&(GDckDKqyT@lP2H`#%f7gC{ELY<20nk5DZR9uR?5$h%6a-Md_bD zNZ+C}#hJ7-o&N6Q^Z_#cR+hOK1MO%=((Zn@bH2;|{r2}i0nFe>1zij?j$6^px>*;x zt-ZALEk|hFu9!C045wPv?d`gj-`6cq7d+S8P!MKF{Rh23o}qtN-`5LHCGQ(%NEXi5 zetJ?g%g`rv*F0O8Rn8Ek>e$An|CHZdbIDa80|Cl~UJKbfZW9 zy`w@wgki8iIVgJ7E$*)CTb8ft7`j!~T~n@u&9K-p>kRiV2>rY~5=ja_;D#s2_-tpE z{A1IxtAy6l@~vggu?0U6S;<5+e_-&MAfdW~+YDEO3~H;^(TRdPbl@X59c^jl#K8o^ zXgei~o@s4!H-b1ZW9&FiowwCsB8t06O6pS#BZ;%5Cd++DBcovYoEmRI>5NQ;h7TA9 zDqQ3|*X6b-30`9uP9)FzlCjLFxQF{xc6zPG?QMqXPC=c~4UlFd_?UsEWz2IbKEXT{ z!m;l)Uat|o=9X!h;wJ`;qUg{;hU4-koRV3sS$tI&J4H%dwhs^RP{F4RQ~yIv#b=U( zZi-{+Q3MMNy=jWXvqUl@A?H*)k^&LoG%GoZ$9SUP3u@C2Zi1;2R7Z0Zs93^N1~n+d zXC8M6Uh;hEJYibe6TQA8WDgK+1){teR1`(5Dp+Y1+G$Z0&#*>aN?;f!PdZrH+T{k7 z@`>C8TME{x1dhvjK{(YYO2|d~{#|aIebf;==zl8#@WTC$#bmP^s zUJGX6m6|73UB_}NC2CY|8$1G+;ksV0b62c+7EkcgS6CtfDuYlmnW6bray-}Ik4-sa zhuh{%M&=Z^X)cH8((Iy##N;q+UZ!#Rd;?B{g+O%k&{e zfA!VI=zWch0PiA<>!f-EgOs0PjMENqt7(8vZqSNM`3{-?CtY@tE6OH)-=n=A`rg9( zzVm-bQ--$t2kvghCSM~l^#)T64SX2;h+edsWq1Q3P;PxruLc&EQ@>#(-9WxL9s9C@ z<-bsx508Z#*oc)I`05wjB!STezVr8dfzW*SSoc%|+Y(U-645x_S)e#FxPw_54U3q- z3MPq=I7}pcWDlFs9UF=hKAD);qM~NdnCO}HW!h=D_F#kL0VPV#DYT}2Eg9J zRIsU_s8A;|)H-tUGue=dnDe>VyNru^8yC-yb2Z@GnWiW+6rXk?M{`F==8lj=10)O{ IdGEshzqy}$&j0`b literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..f9f81db04a0345bd290b2c3fa7e858910ba4cb6b GIT binary patch literal 2227 zcmb7FTUQ%Z6#h=2Od6)44ZR>}OIwxP$|zQ$rdDYPmNr02fLd?$BpkxvWG2p>VNoA^ z^4S;rN4l1!3th|Qv%kh);BudtAwika`f@U7-_EzceaWAH|N1+CDL5Ju3^yFNWtg7n zNp2gP7H>Gx5O&M7h0%1{ZEkOPMrDUvK9^!nY;xa{W^($8F!VHiVnRRfcn- z+bSJlZwR|-3NM?&INnn9zfBg|qlD(x2a!cyLylo8t|bmKiBC*N0YxfYOUSbCy26(8 zylq;KsY==0(bp83NgW2>p|0W`g_Gf09IPY0QL3dRrWjaJp}wx;eSE+$(tCYHcpc)` zY?ziQ357u@VzO#Ft_TyVo9&JzYFutDQRPa5n8Ak{ZZH)7hntR)V&MegSeR2GKGJau zA5)GbS>zpx_A(r6o+xuqkTGGHRTyqFOdN}$=aR%6L%LYmA^wX*0WFGvpm`miDq!gz zL3JrQNh~lVa+9hW_jFX1Nm4rDh$XQ^xWgbR)UcxAems(BRYhGKE*2eitTO1)xZL-J zOI4VOsqm2kmk#&Ka${RGWl00gO}aNHRoay)tl^$2|3e+0tF}Jtb(?QaM6Lf=8GNbZ zD`hZ523-veMT(ZlBOTvhl;KRrmo?Y1oK~I4qoJV@*P7wfGF*>qo-nr;&pI{2cVXTG zZcq!FkLtg3pe}APjB(Esu3Yggkv$mRXkllQFlk@rRFP`hI)A{E} z|=sq57#p9(m}WP81^xJRCH6xKRI4r4ntHzt2=bt z!`;RFFBmRn7Wc6H2iBGfBzv%r&k~5fzDOWn*u&SoY)1o*F2cekd`~0vBQf|BuHa`} z4YJOMIdrpr0*(gdY*9-#iK_&8jbZ~L;F-EGhKV0Yr)n}2FtHgj5dn{3V(V}&d)R)^ jLz@obOkk2;pGGb~I3C9CBAkg3PEz$kgbZzZJpub4QSM3w literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2f49718718cdf095801e13a2ea828269e536b6d9 GIT binary patch literal 2289 zcmb7FTXWk)6#mvpBiB)r*6Agrv`tzdzBPhSNWi7wI!=?;aojjbDYqcYTSq~bjI_$M zJn+ObFZ7QvL(>V&Fg){X_yr7SCB+Uz4eg7hJ$v@-_kHK0KmY#qcL1|+6eJiH9k;ES zp6LnQ)*e}U(-9iC+osJm!|8N%yX9$>UET6^!B_Nd*RRKi)=H^fU#{KRD%BRY%B!`;`dVqZwmy9l45w9`L7L*&dWSQl ztCE9e>2_Od2$!TOO0TmjPGE>(v`Q-0{7#d*>w41)4mgHxZR)Nm*O75hY?~g#(lJb4 zB@-l%!XIDV2T!_q1TOUkO?k3~^Rm8v{8cvp~G-YYdmT*X4$(TL-nZz`NXTaoaGtmq}p~Z^{(C z#c(cjRORgEFfzy~$TG~vmCXU8c!DbOC{Q-rT$Fv+<+fPVJErx7QkTgdy-lK-QK8{& zsyu1|!pU$w4%U&g5#?eMvka^tQQuJU9^Pjd@87;gVvx>e)3i)MC^SM5!^&`69ujJp zovy{}y4bE!28+X($A=0&V93A1F%?Cr!U@8$ydXn-q~aDnCXQsGR;OtHhhxLzW!;l= zfiRRLhT9C&$71LoNn(Lvq)^!<{Ru#vt%4Z*ufEHfmsGcp_ZR8*x) zQaEAXB~c^XVUQH+SW|F69!WIYqG}F@kBSD?8Puq4?)%)OEX>Db_(+0_hwEjvxx)=n zR6zYR((jil4c8Pla8IWHp^DFBS)cWK#n&tSC(_{y6< zy1uBpj^(r)Bpx*lwYp-2-OF$zu6ROjFYb9Ngl|LMLvD}@>W}KbIZze187}Ic$6c}J zTRg*~A44?MGf9{)%=oqQy3)9k;bZ=Y8c}SBh)o^^*;ESf5mYIXu zaLj*aMh+QFkv0SLQ=|!)Px53}Zi&ErE0N zOkT6kfw9CUBlC=fiWfGfpdt5X7fmCZ7q~yGXVndcTg#!A*bB%`(!{-!Sx1>aFW{Xh!-h^zPs*8Vzu;S6OjM99#g+Y_+=0VMEY!vFvP literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..be33b918606d88ab8d3b81f59b9f5969affbdfa6 GIT binary patch literal 2853 zcma)8TUQ%Z7~Lmal7_Jt3dLUSorC~sD@uimQkq(5N+?NFtJXS%(=a%hNhgyE^-}Nm z+lx;=`Qp1Sn=W+e@>SpL4|2KBOt=IFmMd!|Gw1B@+vnTg<>c>wfBgf%8GIW?NZ_pP z6q829sJOb7ylv_;wwshz(XeE)V3$g|HCsuh?&@Y$cV)(zunlX>Uk;;Lpyz*B*YN_| zovP&;C3!`+^rCcVo!;Dhx&b>Z&}!QHtg`4bNbR z6|a}e(wY_M3({nRZC%>o2+lG6y-L}5zw$St;Wyhs?#+oCOf*d3vVc~v=BridFkkV_1*y7* znY^S|=3LcK6yplpRA~`K23NzFTCUbcpoVE=+4zi4;N)8OnVET6U_Y$UyS^00HIBgg zaoH22u3d`aI&OsVqQK$JBlJg)hL`ZNzseSsv_xHE|SLMQpp@f!gy8S zL;%lf1**uEH`PF|Y0xo4pOtlti#c221WpBxidApx+Q9G2Sq)P4R|f-`a%4j+i;B0X zVNUVxBku-)Ppx3{8eUhhjv$xRJg*A+js^#ZSfcvu?8-FD zy0RPrQ`)6hD$;SMtEP-uoNx6jET;V4)$oSukL?VgJ|KKMR@(mF)f-?clg+JM1Mzr& z1aC5^HIAi!t8)G;IqCZ*1|oQeW#ysY5tZSDQA-lHVPhWw7 zpn2ps!R9lYv*nK8Agzw9R87X+>6h)g>fu4=y@c;fHY(CBr5SI>c%V|S5M*rUwa>*>nG1_FTeND39ui{I6%{b*nvanz!TWV z)x*96?jGP9U3rAUds37kQXM2dL_Bzu5G{@>a&eoM>S&LC!|@yKCm$k~SVBTz38w{W z7;GQrR}Ifz>G=hnH9X&2!^O$I_H+%Ce%MuL!HZ8#nL3vEnQ1+NBK6BM4UD!x^-GkjDOnG_B$GshZOSIo#!h0dCDmOx{ zfMbmLI7{>d25}OX(an(-qxf;QXAgTUfqUHj4t@9m{rH`i>t8s9e{kAUc*Iv}Md3&I z5Fb(1!}u8=GY=u!{)kWTDfJx0_xKE-GgFtj@&&$RHUz#3(w|qSDi9`O^|-AB0|OrI R9)EL%R@7+)zV-~i`42dr3^@P* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2ce7c450763d1c7b40a574b9f77ce6790c6aed6a GIT binary patch literal 3750 zcmb7G`+F4C8Gg?uFw15L7!+ur8dPL2Nfs%h&8irZjV6X9upv}y#mVNd49?E1GqWk! zR%>g$w_01`owkPx`TaVvS#GdJLx%=kpe>!5NupC=`<~*=;P|n@>Eem0$%Mkr;T|dZy9zaU-Dhkt`yX&t97iydVx*jgl(c;ot5siF>3`IoU&of7_O=QqrrCn zl<5f^yi5jH06o#rDW~!Z{>?izeA4g%QJpK0h218Da)GAMV^Kq z3Tzo;hT~2pKV>b?Xt<6OLF%THADvt=u}fgvYD^B*O>0iNN!%c?)0Mt!l>MW1OQvPS zqlgUY6nd~*)#E0CYtpUQW@b8&Mpi>cU|$?dmJ*83Pe%^DWL!o1Lv`1cwqNpPjpa&b zT79L^kG&f50#`Ni86{36sg9emPas({Tu*Xrjc7+x*pCAmZXs_PHbS20xD~gtVhRB{ zc~V&zjg6uQ13C)0om@9+HEGWUTwiUj(7HE5y^sXkL-Z=-?$R-cLrjWG!zAL-(#DOyHyp|F^19MBu3eK znM}Vb{k=NI)l|}VLXc9Jz?6nbfpm<6NR^s3LB|msCEm0?7817@h!e3~mnK%-MT&w%0mA}XEPWeg+Sf%>~cEmIXHAU%b zI*A8ZIM4Jcyll=9$BmRXt;+DAjuUu@{_A%KrJXmOIwfUyl(Q^bX3dj%Sv?u3xMSx7 z|HX0YJnJ}%ISpljT`JqlF4iGIwzd)97S2x2o|a{w;0c`4VdAtv2iK8lQ8L5=G;$KZW@(nR zbyzCVkapRW9;uSXZ*=@tb(w0BNCroYs%f27lfTpPl=8p5G1(l0BHJ@Mp2c$no{J6} z6wozVt5Mivo*Xhfp7Ax3?FA(ozmIRNxGhP%NYU;s&Qq|X%J(MmM}b79U&Eg`7j+_! zD8=U#UdFvDnZM}xt2#;)N>QfEXaw1w({Wxc*u(|PGsH#n#B9+hU3`$=WC9yzPLOaQLH)`1U8m@ zqx>-I9b9pe_=w_Wc%F3Q4}M-dN>1G^%MnxElCE3(g4utXs*YVOP#Z6;ke0C#+9oU4O*vgTu;XZ7` zcK*>qV4nvl*LHJm2gla)y%X0ePl+5Y(2}_L1$yr5y8biVm|MgifzQ#`{?O<6(E@(l zbq60DJt(kYJzEB7T`bkk#X1q)#-(^yCUW zB8Y;ar`7oLtxH#q|A8^kNtEPEaS?rqmnU+43;6RQUSUY#*WVJz<`(ex1`!6($&&Wq z07-QS*RvyTfQ=jR4R#Aq9CSL_jQLL|;IdY*_v!!ibA_4Hrn4 z1L7=RC(RPv)s27RUnHzhha#VfqR;YQQFI{p72Y_H6kl(h<13)ZCB9ghMZ6Z0qOO-K2tBYA9|rINK4c6RxnmvLI@haSqSCc; z8&A-@>as#m!%NF-TOtXgT3N$5PB(Dw3{2h0TlGQ4a90ppPiTHQwnBtmKQ@NgF|_|O IfCN7N4h_o*Q~&?~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2731592a9fba67527a48a2cab778447a099f3c47 GIT binary patch literal 3247 zcma)8>30)V6#u=nkdQtogsm2oO=y<3fr5Yr(YBl@(iL4a@FVN+ne<bs2z5k?&v zID+5|biqGb5eD>9Oo!Zg{M}Gn?%j=pD-qk94)H0K;mIHHeT4T`3BN zNan0Er6e^)FC=reN%=@gt#usBu$-YWL+KkR7srJ;tc+`pfst3VQN>i{zqeR#PpTF} z_bqmDnFf7<;fchz^FRU$)!^Tu6P6eYl6HNKw7I zq#ZSegnx3pHeR4iJl%r>90w(vBUD>8-)~HmHPI_{VJcb}_u)_wM5vafaV_x3aX+XT z*W@Ru8$^vqhV{|Ked4C@L5@yowSK-dHI_ki6Bitg)wEbwS=Aa^){6Xf%=cNO6(7FoRruj4tB+~C3v?Fr1%uaqf#t+ zkk%*Wg&{o75NahlmNnb)becnv;H9e906j`k)n-D-GX!Go61dk(G3v-4c=2uWRA7xwBl1CM5(v}m>=|7F5C_S&E@EK+9=x`y(tr#37$%57M zESMLX999*)cj#2Xm#OzmVVg?c9wO>S^KNsy;;8ie1jn>AUO}O&R!`EvkHy+Uc$#=8 zyd&+1kkt};UKN&O`7FnCGQCanIa}D^l13LeF5(3$HYpLdB|C7QR3nz?RxCR4N|c(H zBoANqZ!tfU5MHH2vo$?M6RftruXDU1ce!dFYt9y>5Z)qaE)Qfe-{|##^*!?T^S8#8FUbA>0fIrZ6GIHb^dPwuA)O?7cg5!}9deG8| z#Y>OWEIsCGjkz}C^jE<|zZa>sg2D-j;GDG33C%3dGyH|P6V!HtPPw)-KDLh9Q?8m9 z!h`ip4TjpK=jHl~3wGeB)~>(eVt&mZbL7nmF8zti1Btc@-kZhy1l#@kh*FrS;EF6= zom09lDheq599yVJTd|Yq(2ngiS$5zO-G{Ew%D32s>uA9Zx=8G&TJ$2pj-!>GLK{0x z+OpJfw{X=`GX0zy;Ejv`jfE z{N7EWx8vG;dByfi{yalhIj%Yg>|UBh`y9wyUH4VUNO_RkvC@T1(0(KU0sQnoD)@g~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand$GetStateRunnable.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand$GetStateRunnable.class new file mode 100644 index 0000000000000000000000000000000000000000..6668323c505cdb6b543ccb43b2aad83999be429e GIT binary patch literal 2394 zcmd5-eRC5<82@cvdJs<ymN zpGRk!){z-MfM3AB{3?#m?uCN&Qad=#_($?QyZgNSp4a>JkDq@5a043-G7OJ{u*+4X zqF89Y<%?DjbE&&ZOWqFpeW5!MUwJP4fr#Zs5XFt~QJ{1!d74?3aWkfuCj+fT%a;yv z48>>Sx!}IgUEXLtlkM2S1jE$p+gH*IIURH)!+bpjMLP&(pPqf*RQ+vVZiu+IPUkAa zDfyjj4`LN)>z(0Fnt@Rm2eK4mEcwb`RLNN0V7NY_Hy9>cq0sGKQ~Cs*Trixqn#(Vq z$Y?vzk!mSl#V_c-Zet=KK7S~pUTji87ANAKie|1cEFA&spR;Q$Eh??zC5GS2|ISpJ z_Sgjfhr($It87vu)Tjt2!Enw+5vL2t;=GF~OfzK5l}+>VfeQyG4EK?XcM|TB3pe3D zc5w=mRJ}U2?)sqLlHs?e9MpLApe_7O5h`;YUFJ-Q7#eAzzJ2>s#j@c*J18^UN@?kl z<&F}5(2cm6q(;~r&Cq>&>%gM`jjn9_YCDoV+KKs&>U3os@n%o@egPGnFW?I1O@^*A zTuz!}tU|T2X~eI&xDIOYBAGgvf;GJrF#ML+~am&FM47bOZ<46-O zZexMLp`5LYKDE=CawQpiyWpB}sC2h#{Cw%6ibd)G5~aOb{<~D=t>Z9VzvSX13Z{@> zx%e8()Y;@|`S7yhgfAu5v9&a&@4I*xCn!phG$F%6nvG+$FHOMIK|bwrPO^6T&7QOO z4Apd`$6VWmW-tib@_{llesSz4>Z;i|4DOoNGOYO`ie%(qonbL0Nynai8lu%hpFWf* zky-lXX-#F!s-mxK#+1xbT3D9Sy0Vn=Z7D4+pjb3ZkIp&LpTc|ee}+!qll}zJk~cfV zS#KZjdvilv@aBj3(3{Q;anYO34^jHjTDnaC7p#1Tyh>V!TV$z=Y4mUj3ZKyXO+rWZ zFoREt8qVO%Sk55KTFzk1S@|V_c2$W^>zu_E&nxHH6EZ*~v&hN!*9dd_0;$wQy;XmA8HYugrQDe*DFIY|p|1rG?p z4CQ5&GMXX&A=XBiI8jD;^W^vL55#0(k}+W~BWuu21V#p#nIF0_Nq$qgc362QMLB~< R*2Ood6D^P#nszjh`4bB&p3(pS literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..ee4219a74d609ede65ae4901c09f9dc5d74464a7 GIT binary patch literal 5664 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 Xw>Kk)ny-Ti)o literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..7268869306f3ac3feb3c9fd6595fabc2bfb3a4d5 GIT binary patch literal 2945 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/SituationCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/commands/SituationCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..01cb50321d3a4cff8530ec5468f08960fa67415b GIT binary patch literal 2166 zcma)7*-{%v6g@4Lk;P!J2r=;zV@!f1Fq2?Akccb>L=0v#!eE@utx+Qyk7ksa9v99- z9`X(LLp~!_F)os-d_cY_N#*v8%pwHkm!9dn^*yKWz5VxpfBXet3{?XOhFhLrv1A|v z#a(O5;U!O5!mUVGShiQKa2r7P7J3?rGh_R6j^v`%|vkwObPOc*d3S~A)7B+fH*3>D|r9^PG>TV5JE z2ZnAF7my|omsbTtdO>GvIoz#SMdeGklGj%6m}o;gL)QY4vlLcK!e8ShCvxy??yPfP z>U~|4Av8(c$fmC7F7Bziw zfq|;2J3+z|ynkmX9c|GhA$BVk(qQS@=oZAfAGTy6DfO(2ox^-5)aa zW=`^$UGG2!IRjaSv1TRk21avKCWbM>&{q*^I`noxp&hAl8E!Y77-u&I4UD!Q;~VHC{_LleeKdy*Y*Q&T7H1MW z3|Dv%2tTI2v6C}2Jc?fE+hSJg3D?{B1dQsCxK8x9&|^Y%rDr4kwa~wTB(3LYw?gs+ zeYr7t$iT=&>z-tT+?_-EzA2%8Ha4S7d3yD6Bca!ms9u=*-OUoXn z7jwU(XJikv8&QyjILK0L^PtftH@t@;MWi`PD_QO1aRR@h_qgmy0vj4`O9Xd-r~$5G zlF}~V8lF%uN}|!l0Di#@yue@tzdr_Z0RJUylnMMKHX(?#1hyy+(fkiy7^skjTA&Fn zKi6rQh!DwRi0X_SCFumn!;3l}Wt5?DnZ-DbVSPz)mJq5DvAnJShX$6f`1{_cvDMKQ{)0eqIc8nSO&KL*qw(hj zOcae5K7bEpJhR!cS-BaP)Md>8YMwxLix zsYKY7Jk~uEzSL6fCHuneTW-aRR2pm*kY^|z@e>}#T=l}e&XI_00aFZRhbf|19vcyw zQyZSjZckVfw#ki9B4L=ahtdR_u ziBOhdb(q(Al}t72)dLULaJ_&zkWSHhrBuv_oH{(|`P5r!Z8@k`obq~uZ z7qG&xG>RdqqK{ixW$=u!P30=wr7l(8x@?yb__&Qb3_dZcWktWC2d-Ass+N1M_^6^r zbCFMe-??0@2N-_Wd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d42a8faff08d9b46e499f35d300bb7aad09be25d GIT binary patch literal 1235 zcmbVL-A)rh6#j-53d;%=6-5OqU9~OBBL0L}<4uL6rpQGNiQY}OV;S7eG&@sx8(+bo zh{g*az=txPS@x3Nbd%YcIdjf;{=W0~-|s&Fw(z`w35IQ*^g?N*v0R0pV&2g<6sjkc z2)mNUx@W?-TB`k|Eo|FzE8e8iV5@*UL-B|o^DySB7w&hCL}Uw?VkkLG5yf&~L}*TI zcp|$!VNKW~H$sVoVags#6KsSH=aY9x&t^x+`YDaK%Rf(;jk| z_c4PaL$2Z!=37*acf)>1B=31A77Pn59r5^pC(_+BVcw<0@N&#pf-OpE_K>S?EOw5C zvJ7h%d0ke?RHI%!@Nf&a3s_=!Fg+`(OjX&yzwq#gM%el^q7FAKM!`yE~Pu!2$n zs|?Gd7?LXbxQ8_c&j`DtT!p*TrOHQ_?Fs@P_wj(iCq^}`=r{Dx)rwlxbk7wZRn&+a zM#RKNXV`R2oD>%|T^$+YMM;SUMDytL9v@_V_1b!vL}FLE&M#dy3>$6=h$lNLinWod zw{7La?G<9T}$sN_0$Y@tcZLq}&Qd>%sox;; j0|Z#dBl7e(wPa;7-=O0JLTu8WC*vo0Mkkk)3z5G6(_u=4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ca2c42584af6acf02abc5ef754f99b2e0309c5bd GIT binary patch literal 1159 zcmbVLT~8B16g@)=g|b3Lt)e0otF}d1BZ(o_n3xKQrb=QBiM~yDuVu(ELv{xET_%dg z#IIL>l=05e#25O~O*T7o_uez--gD;9-)}zvJVac=gusT)2C;I=d1>MgTK27v$qbaC zI8{>Hfs0>SWwx^(`JR`ap6Ai}dI?2=%AP!uv6f~KZ};~o@g+OV)1OVrk!Djp(>j#iicrUGfwCjNX~N`FRIx;dEkL-Lr>T zLR%^bxpy#P1BEM_X2={PbU@pmsuR+Hewz6lzw??bP-5fB2r*?BB zuK<);&EiKd4Bw58md=qwjU8FwcM_sf3C840JHhV^${d~L)dufFq}*EljHvYmb071Z z^C6c13Dw`R!25`6Li7SI@>k#zsza1FLzHUk6QZxUe1fIns&Imp|A=$U2KdPszqtB$ lj#|x6sSZ)Wn0IiOaSLd0?gW}>@wdnxUBw!&0`tIwpMS~sJ7fR= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$4.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog$4.class new file mode 100644 index 0000000000000000000000000000000000000000..14c23c34be6041402ac1e37afcad09d403db7b21 GIT binary patch literal 2020 zcmbVNU2hXd6g^`nY+?oopCu)Pl$z9bfGug71PqkoB(1^uD25=Cr}27XZ`jO6yW_wQ z=%3)RPkly$H0lH54XLUMD*PNoduP`u2HAP=N~@iF_wJo@@40jKuMdB|05Fbw77`58 zeo(XB&<(Xv_L?UuzP6>Rxk}nqS9pFcv~T&YS`5lkm$lGxCi12yEc7r8tcxvSdqUOh z#mc&Lw1s^PBPOSGJa;pccKAr!kKAfa>d-FHHd4ueVV|zMVftIzztkOoJmt9RDpy}; z$Y;7ul3ix#Dfm^{4~7FA7Wz_1;t)qa1{jhV6L6?R-B@UBRAg{hR6NOWq~troTNZ(9 z?54BFl*DkQODyRLDrtXRsH!Jtx1`bxXXCosbux;`XO~kri7zb-GE8>YM~+h%V(1f& zBf~I#iD9+-ZmvePx5In0p|!8_DGX!8!Wo9)PBRima(soe44lTMEIk@5*H;lAD<(yn z;~YjAEP6d7v|u=v$(BB!#k_?K!&K+K$j8!Yn9MZ%TH3Q8&1lX|XLB55IKSJSaR%LW zclMZzJ%Kb?zQ|#N4$McUX!)RPEZL4k75t5gPdtr-PWX2Wr#tZ!1#*0kNruC%G!<1< zK90C5rZ9~w7A}7x6lEQ_s>YGWRbp^Ucn!I@#&A4SY^5-cihx`Q39~s8lurXx|Y0x&R_?jordO|A2AUTikyC{^|wfg|T!BUpp&H2k7DFeGoY z%4|xU%u8MOs~mSwW;o~sl1@dzS0ve*gl#VFN4wKav#?1Sw9M}{SV{-JMTuO%+Zwv%I2RlH_xe*M7%X?iu(Fz8D(c#_1;*G-iwI>zDXu2iac}Y^dpd z@!Nl|cY`j(-V58fw1cT_TziQdJGg1Q+nBp=;3Z+;4O2nDKLqbJ0eXWRtuNzWtl%vw zco#t)iD5M%6F?Mki$EtZh1)36bDnbaA^9G?ES;d}1+o)Z#1cJwXn23YU0RuTnd0gC EA8}_#(f|Me literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..12d8530d28a4fd84ac66bbe16d8964a4fb051d39 GIT binary patch literal 10386 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 eB2OwIl~`-1zy$P5$8fbcK+UUF8>eUv6XxP literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a03c20bb91975c9f9952e13b9f44d9d3e834fb54 GIT binary patch literal 1617 zcmb_dTTc@~6#k|yER+>0f?Sn~RobE~#S383L~fC!Xd(s^eVT5^GPuk(-6`m+@lW`u zFFuGOoVYwBE+Ze$pLkD+V z5rj7>TZQ}M5T&DPS*&U8t9%@1k+d+zaJCuK>XtUnVVuDx@@)u@=t(3FZ|;$Ck+N|C z7a1%%UgnxJ^rbU}e;J*(kY<=|j+yw?9@J1;IDdDGK|O0@5|@5sm1B6(BCL+#)3Iqa z_%LO|F#xr>o*xi*+eDpCV@+?M&L##XX{}LT&`fZjuJcNR=ec%IiXJ`6V0kxWUlvRs~_YV3aJ!&6& zP0<`$@^}!407>fbD6KZIM8Y&WjmrqFPQ*#uMY}nYjV7L*`~W-q5#8@Xo0CQtp3v8< zAH5{o^o`M;LLa>u`frN9v6#hmkrFDgh0^UWfTncs(?^aE)79}ZYXa(_yX4nqPm}RHg89*OPBJuLW z2k@bcXS!=NRW30!X?M=qGw1T1@0@=B@%0;kNtDt!#4xQQ-<4Ww!$Wr^;LFOmBJ^b_ z+=k?V^0hlJbW?>|F3Uig_my|TTQ^dLHN%Z~+_K3}rjcS8w!VZH$fg#q-XupGA~f2q zi9mSv%2b0ljffaJ&8pP-2?}35i1;Oj?hPK~4fpjUv7#cukgLAs8{DN-1Gh@$kxl1) z8A|hzVQJ)G!nTJPU0_I+RYPRJaMZzJblOvogEYFb=)f@t8T2xAj9Am2D#1LrzP2o) zI$sVb>E5dHc(A}DY2`$jvS2YhJ&>I9lNPK^+3-_;lu{Q48D3NR#f16AnEAz+`Nf3!#l4wd)T?TfYDs7p7gLue5LsM8K8?!^V>{!t zCbXuywL6;}99+Q=L&kQ;L^AXlhDKtV1w8cKSXmnVTb02G3Tcco^!+A&Sp~`HX$NEI zV#rozpVyb(RA*}SBh<;O4vKI|z0zuit%RZSkBIG5ZfhePq7-Us zJ@N#x!d}}4^tMbIqDtrmN)uGG!mO%B8n+l8?+kg;+kI>`2X}Cn;PfI9Z#q9z+DPw7 zq}H3Xy8fP-c&xNrR%=a4$%s-rOzpB=1I|nsil`iLt%b%QEsPFY(1&t4yFY+juiYM2 zL*ERt^!^B)9*}J9dJ1FPa0=tw=q`Lh?nBG)IQ?c@7YJAO0w+jz=pvb;5B>CH7{JNI z)iVlYoeyl`RPTk)xLEjz?kxK3vH4!d T4SJ?<6Sr}XPBwR&1bu!2!tnC+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..f8ada1dc55a86ada1b92940bd187a2fd83204121 GIT binary patch literal 1669 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 Qb^2mHrd5H?d_DC02?6VNLI3~& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..b107b0bd9f4d40fbf333569c6dc001eea4462c01 GIT binary patch literal 1354 zcmbtUT~8B16g@)=D`k;d5dl9yC{oJDqE%lo#_$zQswP5s@NK#s+abe_*_jsgU-(l@ zC?-Dm1N>3OJ5v%(T#UpfyLYB@@40vGId{MR`1%dNeLM;we4 zO)(6HDg>Se;0J**R*6)L)gMHDBn~##s_t-5r%fj~CKzVUWvPD! z(&(PAyz_A25ZF9(|&ZaE4A;SjGzB=deo116V^u SHjj1sVm_o*fzDh#^!o`J?{;Va literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$4.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$4.class new file mode 100644 index 0000000000000000000000000000000000000000..4a6affb5bcedc33d532b9ab643ead172075dd981 GIT binary patch literal 1312 zcmb_c+iuf96r4>$)3_!{1C(;<1sZ6Qmbxu{3m~8uQ7Q01QC`v3UXn$N9eFn?`~VV{ zpFwJ&;(-s~qY!7EpjPGfkVdk7Y|qX)J2TGrA78%#SjAcvDTaqp-14NB+VIeOq4;iO zJQ22JD7-*&6}7bYROqfUTbxdf$mb@CHxs}{^1e(w8HRbwBYY)0T6lVoNO~eP+S?II z_(n$IgMfF8h#5vqTk7&MwQdaCyUsA)(8GeZWbgMQQGV4(wa$q>?;tWP?RdA8TsDm`dUF1+=NLMVh&>-!fbYJa? zc(9$4Rb4fCEbaCN4>MLphK-@eFRzgv`MyAXvqZp9>+5n{!;^+?T7&D=ri074n#C1{ z`@{O_VhRq!DEED#DI+PFIXIUAXov0i8VoTaY&;9!wTzbiS zoT9TC`YO^gY&{mH9R)5{u*xvz$ATM?48<^6X;`$^HBxzxxNaMpD)N!R-3~($uPd&# z(4;y=lKv@D#iGqDP%PQR+9!16;L!Uqs_xRg#T9A`2XJeP2gujHp!g{Po};sqETA3X zEzZ-uOA85(3z(oQ!$nLEsGbwjlF!ukiD@7CLtL_DarOYywm8J~&$xL+T|$Q7?`V$q rMEwEN_?Wbq=+g{Z5Fr+@NKMkXMfen!;L$ZhAzH?5s_b6uQ1tr=G>L17 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$5.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog$5.class new file mode 100644 index 0000000000000000000000000000000000000000..5a6f3298a5ae12fce06a7392760196d3310df474 GIT binary patch literal 1478 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 + + executionstate.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionmodel.ecore b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionmodel.ecore new file mode 100755 index 0000000..11fd95f --- /dev/null +++ b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionmodel.ecore @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate.ecore b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate.ecore new file mode 100755 index 0000000..3744d7f --- /dev/null +++ b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate.ecore @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..8ecd91272eac43d1d729e1137961575534b2073e GIT binary patch literal 235 zcma)%Jqp4=5QX2ypH(Xl;29i9Ya$q$PyCK<#XS47C9!eZ*5iDlr!GrH( zp0E1@K#93UVX#e|r_hH!bEHedRmvpMhbSaBaYGI%YL|s}+y{5ywhhs1mh(O|Svrfc y!LsHnQ^V2Iv8u&oi>blpZ}vCVU~x)A=R_@Hu=-(Nf5fUX80k#(G3d3r3(VfIJ4s0Z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ContextCreationException.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ContextCreationException.class new file mode 100644 index 0000000000000000000000000000000000000000..0f8d2623626f89caa95a7efa553d3d459078223c GIT binary patch literal 964 zcmbtS+iuf95IvKob>zAilD6SiXtG5Mk!A3Y6X4LcQ_d-PQkW3!nCt-;t4x^SEf?0?%%ovDZ43ZS7zcml)oYy6%gZ+bNuaPnAqgik-glz|RjBJ}_ze(qAkncHIPTc!pKWfVt%B+6% zUsrU?i~=Qwn=%)TXFQD=J}tH~$nnbrnB}j-o*lL`e9lxijxqNs$ywm9op>#-&0&%4 zl{5=ykY|hYQNR*o@b%?biuIZqiDRX&D88=_ac+pqpKBb5Qb;*;}De(1+DBXpm7r|u`vO)&{&YzFUznQa<@zF7NUR6!XMy|GS03T zh%}N|+`X5(nP=a7XFfjP-T~keP7^2zxN^CXR8ZlSmE%+motJ10S(NyKdgjSl{^n8k zNEz!2Pdb5Z0riQRE14>5K7;cO=aL_xyD;cQ9x}u2SQIDa?odQ~XFTu$ds72eF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionState.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionState.class new file mode 100644 index 0000000000000000000000000000000000000000..0fa3b6ec972132a228ef9ca65cab53036105a1a5 GIT binary patch literal 3547 zcmbtWU2q#$75=VdOR~In+>H|_HZ(tNiXB3frax(7w?UERR;errNmipIL|w^iTaLWz zu2!y-1`0H^CHxg=3vKx;lwpPk#wasw28KNF$neGtGd#gdXBc>5h6iRS4d1xtufy1h#k0 zv2n^N&J`BE}oh$oewK7o-oLnp0m^D@?~iYmjy9oBfVo6}8a!`^yy_ZZnyk}k8elZaMTy2P#y(aBJk>LjmI zn=Uifeu&IwdAjUo@mQg*b+rAAr$}9L&(1S3}K+nTS+0OX32 zhEK^AhCsNz!f=-)Q_*l(GNv3T>e-aJ?k3GOv!;A6YKTa_DzKx)ZwBV_XpV~hqJ|@K z(F()MICj}6*Dkdd%PnjT_e=H}IR>nX>A3Av)iq9Q5)D2!%k)-PYi8VWY)9?$B+fYY%B-=v$^uEZ&uMrN_sRc#PQycZIE?4<#UQ@G<=xv6bsXao_xTcDU=fYF zye$F;#?N_bo-Qw&6?bxC>!k|g%Xle>7kToo!K`;INDj`!OTzcqv>zN{1el^fhhX*srT^Mb)1r*N1s+;MuJ}b2?b6|5YUqfq$CLH83nQu zg!H@u1qp@%`Wc1JDiqYuD|A7jkp8qnWrh0md4(1f3hPS>Ei2To*A%i8()3k@9EApS zSD`h92K9A?E)Q+{E%)~~aVl5rX<{Z<>}}$7t{7+{l`96D$mWWnCJH&m*u+^X+AdJh zSf=W0Vu32$#4=TX6Bd=$ghMsZ#2VFL6PI(>aixhXH}LrzxOyGee#J!k@HPHk!+!oQ z@y0sL{}opJMGn?i5XGBF;T@dEFR_dpSjX?k`~k1xPxuM`iVgf7H}Nl8{)<22L;M-H z@D~BRF9iM}eE6sE&&7hy3W`o$5Ui3jn4I3{+87<=IB zDk`wMzJYJHs?H(oQ(bt#KlO9$<{8G0&K`OfuN-_AufBoaLmO9x7^C^-+qd2q8+71T z#~S5@hPazw#C!Mwx)(deKI|gCN8GEn+1ql;L%yXp-G}e17U*Xpe!$D!T$kW z=sp$FkJ=Y;keVmOwb5Vj7kEki@-vnCNlKcMqdY}9M=4P%lts!#icP6go~1lTd7knD zZ@>oYPdQCVQL>Z*)@i1!Q7*@q2aK&+~ixapaCi(81!d3AoUKS@+jVTn1J-Af`P92=Xq;&gTPa8=2OiDvFN|e@f)T GJO2aVW*rXz literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionStateManager.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionStateManager.class new file mode 100644 index 0000000000000000000000000000000000000000..88c2e3d76e041bac9dcb52be18c1e08a2d1a5fa8 GIT binary patch literal 7307 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..c0035a3a2956c86fc4d478750b6c4a0878ec9541 GIT binary patch literal 1936 zcmb_dT~8B16g`7Tp%kd!dkU;51)9jqi%+5J?&fb~(`_GSG0A9e$pif}M*uYaw)r_R}4nkQokw-dE znmqbKek)Q&^ISyU`kC&A^dn=BGw2t{AIc-?g;EDzrFKYul)-?&Ow3Gvs2WY?svq!w zW0|JCQecQm+tuB-+iU9rZ_57`$7_MXW!BOvS`oNXSlAQjUo-oZ!HB?S&*ZA!2+!YX ziD$CNVJwF{vH}CkPHYGQ*K^2VP++Xgwr#iSHL|<1781{tjW5GJX;s{B4;Fk&Y-lxh zwMY@!y3#WCxf)p>3XVTez~93j3sedVy&H2mA-go6h;K>VlHtWG1h&#hUq;8mi;3{A zl|HS?Chd0U({zDqB85m{%K zNt(IuUD5|+N&9?^l0%bnm))p3f{7RZMX(zc3+5ABi%JICG$Z8;yh>wXXCaeKCuDrg zl;2KscjQizt(b=S0v47T4=6fY6?UZmSq6OZt)@{pmxKAURnxLQan#H>dG@V#68RnjcK5l{GpU8dsj?r(p_LaMRxWR4KO-?c13vvp8_&2+IRaM**ml9a=;m6k-^^7P zF33hS0#^#Skvz*r%Uf=vuch<&I|$K@vJ|jMnp#B{u%q0wuScQhH%|!Il8^iKqj|Tr zB1hpW0ay12Bw$3Eb!W~pM&W7!cRw9P%lGASxnT!16UQT9oV?U5y=a^rh3x{S(ZP(G zk(thn%yedCCKXmeu9sAeR6?M&?vvllu&WyX=C}1bX zY~-D_^a2i~H+I7xpi+(nOlA4%4FI2GhOlo0m;wbuE1A{0ZR7<^_P}v^zYWb4a6^x= zO|R!Iqh=dbY}v(Iv_iq4YOU-PG+Ps}ows7f*qAUAtS%AH?pT5y;PbB-rbfP;x^1Cd z=^Q;8TwaH>G>&8G^;*@e8?#2)u+Is&HB+AG|3F1E=P>vz8v%C?p}IVf+lR4A#4~|I z&+Cq17IjO<)z&u`W4QLy+MNMIm`XKFM6g#you(IXa)4q`C`Sg_CnKsGm0DSM(juZX z*@R&YkPQrLkbNSogIPI)Sy?hLkK-I35s({7OgYps!<-w=A`#SdXOeJ3z-=|l15Mhf zfaAmJFHi5;;Z4(?TsNNw$Lk~pdc1$xJ9ag5xU^k6x~U$>IA+Uw?H%Wgj=RhQ>$jiR z%5%6Y7T4_|F%|oCOf))7aSrs;+PvmeXHV;SyMN4ht(Y1pRD+uyLa0WO8!SzPtCm91 zs#dy(=%7s9j1%6`3~hFK!k+xE9uk3%RV{XB*n-!&ZUsBrclA|PW(~7@!Kvf1+G|aC zpQu??I@Gb4HwwCi>D)U7@zyt$)}CA$d(}Rcrl*y^Rltz}vZUKxCEe65JSuxPkG>GM z2{@D?NxIvwy3a77K=GD(Y_QUyS);h})dHRqctsR&bO^J=BiO2+)$?=e3W7Hf3SftT z(fjdg?|acH0UM_e%?r39A1umocm|e6pe3L*^mW)5y3itg#adX2$i?n{7uw>YNA_;3;6|>1Yx+u2WemqV0uFK9jBXNpPtj{+7%FxLzz4Hyi z4)oLbS)=noqZb=xf0m*X1tmnLO7(XHb@7Z8!(d5ec=`+pxC-^va5c|q8(AeMA1p24 zW~R2Kc4vR6g+VK5;@^wjq6~X$ueUFqFS;yUP zXE(mMC-pIFhQ46oOF5o}_4Q6n~H5X}JN$kvB8mg1nXSHe@`IP&*0N!gXD{ z>yd9@Jb^sPcqh^>#=DXCFuoCaFJrR5DZ%>~lfV6p$=?CS>!>Ipjwf zll^0iA4h(IF||L**g<}ZF}1sl7myo_seO?##U~k`$JH|mO?Vntyoam*HZ1Ai$RBXw zcUb-ne{O&f|Bhn`mbp^g%d+mH5N(MO8irmtuY%UWm&V6~CnTWu<#Xm9MJu zHKlu9m2ar}H&ywTs()MYJBr^`{GQ_X6@Q@kL&YB{{#cctsQOP;T%W1(b5;L^D!)|v iuM~f+%5PNptt!7$_TR$~@wk74pKy)@{2b5JFaH9tIb`4f literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..35119cb69d2fad83d2d98719cde2e9e0eb3e72b9 GIT binary patch literal 282 zcmZ{fyNW_F5QhJF+2a+qu(j95fUT8?Ya_TIY#)zfh{TNKMA28O6@@8Bt6kxWWP;v#v*DyESQkjsh4NE!9ONyLUQnQD{F3dL^NHd* zMTzY-LrvjxZ_Y-06Rcis_LQd#9}4{vPPuo-LU4zj^c+dgUn2@#OX)kZXFKC9Df9-z zU zW2~_3_{!wi8#*Cva`+0>$9dc}CZ=EQte$`nIO-i=HsLZ6ijIwpX3bPNQ CkX0Q3 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..2bc9b8415ae8ea25ebaaa34e55aaa6b2f82c0c02 GIT binary patch literal 249 zcma)1I|>3Z6r8M|sFhdn0tUQ*m4by>tQUA2-i9pU1+rPut66ve4<*K4#A0TOf%!aN z_XmIt<{Fj4E+%Ju@B2(*+CWXrhQ)bd!&kOL_ECzL*&Im*3g<+Y57KgCv0Ud=EO*lw zD=a&@kO?HtoSKep)|e`6|1S6*t+1%$kSyu};G<6h-eVg+M4!CjJ1m3zmSburM$cF(9$K?u&7i+EwBpzKwwo;G+<)Nm?P1 z0S5a%%YN6#zMo(39{?_KnxIFRgu*IUx-x37vRuzXRP3$utoV&h6*~cVb1vmXCfBm4~y&3za7TUgn?j8gWXWwbc5u&^5%sLmDTTWrQz9j3(-J`wrj#| zC)3}|)^O=ls0zaZ$Aq)rIb5tGkWVM<$k>&1`w~ooeJKbBNNYXBpw=TC%L&4X%smXh E0eOt1hX4Qo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/OrFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/OrFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..deeb905b1e1bd828c887bedaa12dc37ebe6165c8 GIT binary patch literal 253 zcmZvXL2d#u3`M_zb|_V)s&}A*O|7zJS-}d41t-X)o+v1jRGEM{8;c&GheCLSx?^F> zvi1Le{=1xi0W9!bVLc+RIEIDf;NNcG7TK zLH=DgFC4@Qfp8 z8|KM9`yiZ4$!fZf0v*Eb#_p{NHahdN-f$%aE(uTnuJ~&?Vc=L6Ifdk=>6Mp!5W;Xg zng15*AwIfCjn=2p(fBkuSrK|=+U1HBg$Z}(3GbUO#UZqHF7$^jMJ~`qgMNjcDunAs G$ITDJ&~A7D literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..4f23b790823cd71d2b879f1b1b579648e947eecf GIT binary patch literal 249 zcma)1yA8rH6g-EIfr=Ga081=D1uaOKzzGlQMUIUeCxX=|7=WP=j~*e4yDLt*&+~PE z0N7xzQ7G(Ua)vwZvJK|!Z56Yj;5d+>E7g7G7{tqDN^UQnjw$-+ga3Z6r8M|sFhdn0zU8pRti=Y>jkpmZHUA~vRToqS$F^sB|du*i5u`OalK>}553f;TG1f$eJi39u=D{^y zB1~nT8?qk}3j0bcb3j<$Zhr#LujA-m^g`LJbqTq{=u#FjhUrNZF+rGVbH8V4zbE5! zt0I)zkoJc7W>{8v$U0%R^>piv zohK~*gjKm{D}z-BvJaTcCMyi#(hTcl*vb(5t;N-!)NO9D_DhQcDq)?;4mREaHqfu_ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..8204b30874d182f06d8f250db7408ce857575cda GIT binary patch literal 702 zcmb7C%TB{E5L}m*l(s<24D{*(+#kjb3+nu6){jq=mAs2wEl#I_FD? zc_m8(T?V6?N&hO~2Ni<>Z9m5KwHWZYcF1-8)(dF3LGhL4VY!y5)Yd57|zbj-C? z3^w8t>{j4~Hsk=3Vd55EBBk_nN8fwnxO^8f0x!l@gbR%;{Q@a)gGp7m);z-W8x5XV Ay8r+H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..c2fcf9638e2a568dc39c862549e137776e7970ee GIT binary patch literal 281 zcmb7=Jr2S!4256#3ovmKB5?&!H^h(=q?L(MwN90$2(HG!0XP)GWoGH%XIXyo`{eiM z`2ujjMq{R6WAY~Sq0f%ZwQ*(4hS&!tLwBl%93smuld+=~DYj?Vb%FhFK2fIB26m&* z<|G#X&{!z!YIk#{aqP{dtf|TxD~02!$?*aFfV^;PFj4QClU|ndT zj=o^OCuGW?B+-zO!HHq;sNV1$1SzZ#c^KB{sz)Rgph$AbF2U`qUj-zf7rx@)7 zt!^_M1~sB%C4Q?1n4k{vx2U9@o1NQ*8-!Tb(vv-O>aOrl<)E>fYuZvO7r08SZDy#5 z6!)pbh{S3TNvfG~f()MhW$@g^B2R*fB`4hG3j*;nt!xrMo`Sa#au6x1+6?El{cAcH zngv4^jHzPFF-cHSCrwNAYkgiomp<++xuX4lv@p(@QLj@UtoVW8$Xr|8tzX2qXn`XiA<>rHt1{+#v{yYnZZl<;o|kd zVDp%dg=X;74LTH~5#6+WIu7GLD!!9161P$ikCQNCMt$C}SJFS8j>p+mLGJ{EGxVLM zuLd5h(6~y^)e@ATL~qMFlxbyyR+eepq?HO(X~N(AVVFx=r{jaLpv112V*5sddzhFVcSvy(S(-n_oPJ--0J2^<8FV{mF?#dV?+Ck!8iqGugPqqISe6O?18t)YJo`E4vD zUYY^MXe4%BOi48jV41<@P&^7A3ZwXSZ-~+bu)?5{LZb|Iln~fxK;Je--ux(GP*CW) zDKvwpYAb_BT0XLU40#8Wh2F2z? zV&ta`pv2%TgGV-u*P~@sTNt4*p5p|t#-Q@+pHQdh&EB^5o?J3KXqUv;sLOLYZ>wumRrZu;tHf Q*zxCXdQ$Zsy>qbt4*Gc;)c^nh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..39aa6019ad4f60599424bf9fda22aa3eb6ce7c0c GIT binary patch literal 5048 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManager.class new file mode 100644 index 0000000000000000000000000000000000000000..f2b0b6b74ffbb721e4e8dcc97943031ef96bbf47 GIT binary patch literal 1894 zcmbtUYje{^6g}%0%T^R8r7kq3E;OXUc2Y#34~Pwg=Fz5gN~dAc;iD`sih__bdKB`n z`XbOW)340*M|C*67EapHbULX&c(uEC&pr3t$De=w{s(}o=o=^rT#sVU_7guzozQ*| zID;s)W$5{#wB-}&W~m>Ayi28hFLqqnkGw4>bUYawC=1N&IX^gd;Dnxicd#ejRG{iB z`_PpFEB%v#cLhv0i(?t4^eAwt2q{&B>>%>S)cC9(M9xqSHCbK>RC<2sr?&(qTJ0Ty z@@h1cCMHm~U}92Wy3bg@$sP@4e9svKq6(1tWC26% zwc16z{*!#&8U)_5a0(TZUv+`0?bLA}ZaMq8$2wiDjx}H;?P7O@GMMX6T)D54XW(6d zJ15P=7)SAa&w_!f;(Niu`$qr5pJBiL^7{ z-W*?dC$Wrc2CfRsDmH~i7Cyqqd1?8{e&8G&k$U|gd7Rph{UKc^_S(pZq&~$B1K0CN z|Hah83fLRf_^)3pG^P8F_ABUkfyf9uZfUpzby! zmWfQ$)Wj;*4XpibL~I`viI@HJO8 J80Wb1_X;-O$;1Ev literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManagerException.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/TraceLogManagerException.class new file mode 100644 index 0000000000000000000000000000000000000000..cfa113f2c5bed65cd6d863c630348993d9f31704 GIT binary patch literal 510 zcmbtQO-sW-5PcKdM*5+(wG{*p-uwUqUMmHu3QF|S+WR(+aV6czW+VMuo&*p60DqJ? ziJ}Mbwr#23BrZcBZaGR)E>H;>gHXQJRqulA#NX~IE zu`1#)jW3l^G27Ec#1BQ*M}^S6SC1-4l!=4y1fiX=)hd~?&4hS;enOxNLTgm^G;XSr zoU5XyctofjX`|hc(Ax=r8jhXSCLZig36)WL!*wiSrHMKkgw;@#Ugh%{+liVbOz4DZ zBqNm!7W@^gxI3K@M&ZA=9T5CEXPKO!nDt8~p*~J?8}XSg)NK8AwS%G(+aOs+cE={F zsEPLld03X8bV5UHQzAo&dE#q(`_E`Sm7GjGK`l^~OT^T0k)&8{s}9K_3=T8t%tXcB@9j@$ zpZn-bUl7{0y7Z}Q^|?RC)z$CJgj)!0S65$>nKS$B{eAm*Wp0xBS3#j5*t!bpt~>dCQT8d?d5Qz;Yda3#4IY!)Iem2Gi0naM_x*Y%5rraC0)P zOol=W4KaaEC8|jA<&pwFdvwPZ8~`)9e9?L9}uV;31KXaqOu@gTOKRZ}GM;Z*geW5~e2(BGs`U z2Lv=<1{wJ%5IESr9el@(vOT2Zu(GY8Z89gYH^r1s6c=ZumoaB;sd&3t)1EOsOTCvC zW5K-T3#3C1|Ld_asj&k23pD>jf&>}}EL*gBCL&` zVsy;v<10E&;Z;)0%OFyL%uUWNPz~hN*xnH(i<+~I6cstJ2kq$8&>>JCYGD0~jxH5M zv;4$jAy`s&JvvUqAPL`k%w6Fy(kl0SnBhQP<&`=I% zEWc>l;YP9_z#AF{1uGS4AQ^`hwnRhjLvA2v-%zMq?-e7r3-zs{hS7 zsv=M|EpWDypPjI(lT%HJT`+rp+$@B}s$r7Q%OO&UUeO8l$v%+ATN*Od<%YaRT)WgB zeH}BnDNrkw#_5)M-BKf58i?Z--qCQI%qyH% z;QOdkmUWrG&B3OFQs64(ummaPnmOqWRIZGQ^JmmD^N#CN$0U6hriOd$Rf_bQko|{& z@zBbVfp3gje!(`Ebj%_v5a-%R(etFkCUCM${}r}{5u}bexf5;yK=?%}w6#C3d_7dY9+kN$4dR_$sGW~>e1H$B zslbiw1rDqUc=I@q<70fP;S+(j&BwVgXJ)0rq}guXH^!y!Q>Rn`Uv+$j&p9+*vP(K@ z$e8MKB5-xRg%TS{45r zJG-8uuCsCPGWK;g)-L1VPoe!w>Kpd}$LXh;`&zJ%-kZ2`DB6i5ILbF=_cD&rZ;ZCh zCI1Hh1;5pFK1ItDK2$-uRDi%SuiWU7LCH;(x*2eV;6xp*YiKdsxr~#mXk)iQP4yG? zmg-tXH$(lX7P_ieai$96-OthcgIef*hTe&uWt?9{zrb@`30Kz_p5aP=tSPpNVS(S2 zeM}*%4v}5LUOpR)e+Kn9%e&e+lIkU<^Jv2bULP*NRt|P^yjWh01)YQK~gNF9-cj5&OYUq7| zCXMa|rf?%l4gO#Vm73`&8Bqerdc1p$HAznNtYBKK;O+j{3hpc;*Es(R7H&1#PvP{0 z?3Yn!43_brDaNN|EUn<9jdMSbIz|{{oNH(x*kgowoG@DnxQ(O?;<-pfLsZdqK2LD% u2B(!e)F=hhr4-a~*B4<58kizQyo%oX@FhJ~(^nV1!q=fPzv130eES!It9o7l literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..69a8e95b0c6a6f1335a44fbb3c91cc7f288b3c73 GIT binary patch literal 1874 zcmb_cTTj$L7(KHWb}5C$m5VMQ3treQND(BOtU(h3zAU~V5Ph5N4z=2CN!#`Mmv}J| zBqsXEgFnjnOe>XvW$0eAFmn>XA* z7mjH;LKh!}(GD!vp}j!phTCd!r|Ih(J58ED7mo0_U3bk@%MOIM9(c5Bep-&ga>y{0 zCActbYsVM5DYj2A;wXkfl#?*Tn%fjM!(u&&Qqv+{^m4tH4AWObs>jD_3_Xtca72P( zIT0nXuuhdoOxJFnV0JyR94lC2_)h|-DJotlL89T=u@Gfz>uy~H@m@b zO+^-6^6R>a9P$bVF`UB?!%~u@iJ4c9n!YZZzQ!GH3Qxri++-LrMbJqshR>H1rFsRb z$dX4?bR(a~7{g@b(6Sj>v~0U(c{?;|*^gbS(1~#sWlS*SeG$}oLwawpQh&?ebKT~S zsZ--E$E-=o3w62>FWRk!@LuwUEf|V**WmUh_bfS&7c;>d%V&6X{*o?ssmPIv!JVi_ zM1mUsnxU6kWxQMCJ28tKg={!YmmwEjVKNKDjEeixEE!KUUFi&6#T*`xa8!QhuKv7S zSI@6Nr_{BpFb0*|4wX>W-L_{4`M+S$&h-bIl}^9}NtdSoWg01Yx#%k;uU0sc-)QWj z2n9X#R%zzazKkE!zN1&0-b24OvxlNKeSm>Il(gdLK5l&tk5AIO6han}!2sEJ5PcY; zXBeY&<8IS_IRe8S+@%@8h9p?{C26E6?LADz$yaEUdqwRViic2X=s!d@vzy+f)ih*A zNf#Io(bXtAMz4f1te+OEiIAl;A*arU)KDN`DbWIrl0#P8$MlI53KawBB*ok*q-;!% xN%zJ8wXkfEzEqzq^#HS5{{lUtT#ruy^&SJwcLXXW0X-$4XNf=y#5aY9e*r%f=STnm literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..bc2473f760c349455c3c77ad2ba119eeaf184fcf GIT binary patch literal 1824 zcmbtUTTj$L6#ix}>{80bm5Zz(i;C=)OA$1htU(RIr^T2ckoeYZhg$8V%$duX?|kQ+Z~E)^kDmaR@i>PR!_dJIOn_)nE?$@=BQw|x1l7i;8 z?=@T8bouT%LhQvbU`ye6D#rRA7a_w!ErE|M1KyAh_szAx+^YB{_FRq_WMBS)-&iq%ojF!yrStT-ojg!wnr-^r+cQ z9XaGRj9@H>QHIro@+HSzKke?O>h6XmESCp5Zeg5Z+~r|%ff$*z&3 zk4c7^j{Hho38vJHRH#fO!%{2Op+=Xcbd)g7kZ30uMx6(5t-8+{3N>k4{KB(;Eq&sFm){9A+?f{zpRx9-L>-SStkdq zUSA88U^~iP+m!9V=C3@}tMV28NQF<|DO1&VOrPTY0ED4Nk4|!!A2xlG*dKE6!rmTfp0#N@M(DJ1~#U!BT1oR>iXodKu@aPX5MAy^+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..da031aa7b4d29bd9628ae8d15f34b1aa76fc7acc GIT binary patch literal 1877 zcmb`IOH3`|7Ft5MSOv9$6uhOk9cC19MyI$C!BJPI=^-9XlTMPV{3kZf z2%-y@Ec{W9-$}~NNf|oBCg=9$`EKt?{`~#*8^8kYXOUuf>-n}R0~v(eH8&kz^FmX& zwseIlz6z@qO3$UUP?(n2XmGb4nCs0tt=H7%QxOWkAziM_)82fb=` zQAZXz4I{Xm#VEs4LK%~NuN-tbs>mvLxh;GhS8$bK+!kTyLNSEh6{LJF6;bJ4)6s`q z4&w|9u_TKpl~fFrM2q#~8l}Bhq#6+>bQCekkPAduz~$$Q#ppxU_?UkssT|^>5MZQ}irE$T4Jaodi9BK@#OCIUU0k zZqRu#hT$e|(TcE95G9+3p literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c5f16bb818fdad8786e44dd3d8cfbe770415eb4c GIT binary patch literal 1830 zcmcIl>vG#f6#h0gQQ`<{45Tg4qP8ZDlQ!FwTfwD3a{kB-H7jQqRcRJ$o+SIeWgNzyAL1PXO2Pje`k>jU)}Z(n=c< z^Fbu~iQzI1RV=wYkbY)V64RNH+)rX756mb{_EaEKzMd zl0Z&_;Z+w7rfR6*l#6N987lKu;Z&Du`faw`m+3~4b)%d3BH9$Gvink4wWVO#d}qAJ5p;A%GG>Z!&$uJ;BAJvlka9N@0fd0 zMvdd*U7Ta6h0?6bfyg4murS|xPC`em+cw^NE<9XdaLLD3l0NLq*dH>SE4@5Lohjb= z_qaWSOL*Twli}>q)Q%~+n8W1~o6@65{J?POKVJ2|;rl9}(3-CnN(8EfMF$HE%`rtF zl0@8^^|m&?qqTN%1y>9By<}JRhBAs6ZWqn>6#ck3MU}>Bwnu`PUq;m4Dq7r?rQv@X1~^ZP!UNtlY!Q2Cm7cB#4A&suaIjFGiAEsoDzv~iPI zmW*VaGpa-XK@>6^FWGY%nVP@WOS06Lc4jf0KXHI9*<^^ZYq1|Cno4pQWgTscW;0Bj$xcp&>(NFz9vywlC^k5mUL%u-<|bi4In9KTFzX-$Kh zG zxV~L!eAufz#>d^oNBDH>FwRnrBtaD;it{~rPsz8&X&9VAh6~ukMI^-UeJtW2$1+>Q kE3wRB5})H1p{d{t!ZCp_@fE$RxQ$hOO)HzPMNhwf0H!_|5&!@I literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$2.class new file mode 100644 index 0000000000000000000000000000000000000000..b1531815e22b95964af64bbd23110df177be1a0f GIT binary patch literal 1811 zcmcIl+j1L45ItiFuPrY`2yhZ0!AXQ;*})UcEuauWd;wJ{mx_#Ct~`xaqt!U;S=G+0 z6N)M-+{5SaKrW=<1NbP4o?QjYAm@cdRjZxp?&&_=)2H{(zkd4zz!E<9FvhSRCm~lx z87nmJMxq^CE_JB1y6ed(!Kv)}kFrhH=|drh1mpG@m}4I{81Zw6Yf%Hs_v2fZ7H_ zaXIeDNiaO`!^1=g1sw7*i84cB&KVqPQcbUpaUh}%ktnwx2#c;13>(h? zXLX56QAkql;V{E#S7{kUs&6FU?utP2juKHE8h%+CBSN{7ZA&JPB8f7V>3=}wxtew495mu9-~eb zZ~UXKPvI2a^iX9uI-J@*BOkLkJ;0_+KN4RuocfnnbIbBuszad-U&)OKR1FIr<{7FZ zia;cZxI5O`T>paB#>W}FmBVkvJF?Z2QN(a5Z@$OqN5#pjG|D3LQJ(;3n9i9u(@X4io(c?a>`*7w|9hfwV}z`>;c$H9qmJ`Lskkq7MxO@#ccPGCe|?_NwbbdQ zR-7h*bOVav_<_@E(IrFlT-8Ao8!E|VX?t z>3I&UTy}$sJ_Td+Ork{6DO#PQy_1yY7k-65e;+UWlG(iIWSPdD{u&k9`*g-hU&71u zW_ShVftS1F%XvBT2-8~+aO572Kg3Cf2bilYvdUSn_&b)i3YB+Th5LBFxo{63Ztlfd z%#hqc5#LapZ^`?2@^$Fx_cvI_5#ay; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider$3.class new file mode 100644 index 0000000000000000000000000000000000000000..1435cd3792dbe58f3e4c21cbc3940c354c52bdc4 GIT binary patch literal 1934 zcmb_d>v9Z16#hCJ8QBb3K@h}kk=>vX_f1G_62b;$BMQHIXFIzslbO_9f+~;T1w4at zE#g+?0X&mZPR|UB8vKZ@n(glCbNS9W-#PR7>xWMOj^eU`HijA3YjEW&KM)R|vqjAf zxO5uIkzC%FRv0MPp}RnG%XI>IKUnnKB~_OmpNxbjl`YHh&9&qvKV+btA$M0S32qCg z!LQctN-HqX!O+usdp&dWV_A zKi6B(Vm}2Ksga$IVdbdcEW@LLR0}K1TPfA%zfcus8QRMPxDyQBCJe0ByLBcykEW{7F}hr9Xky4Gwet)6_fOu9TKBW?8GjHY(oa) za!!PHz_4eakQU<4Y9;MqkBL0?GMJ=%)AiVc zZ~p1=QVoPPKP?uM=E+vw(6gi-jST&*5PzGKhx90;S7coWg6O9re)Zn*%Em>XG!Uj!xPx7gX2#Mn)I;R?;Cv+Q@3U|`-6?npmz7HhH z6Wf#)bINg~SGI-kOP_j=YC+E`wB>SoN&&eZJ)`Jj)J9JiOuAh|yAe8PXzeZzzQNk! zfj7t%-=gPbB)F0OvylQd4W6Kv&RUVgu?d@LrEbH9#MDDFq>UFpqVLu_Y+J_e_t?kq z4hP=iXl1bY8o6a0A6&-i$1rFa(OxppUU~^C@RZhP=*M&H#S0YhD)QJHTTMLnlD~5p lC7)xYu^Q})Zu>s6bDqv^C}W(~c1+*`F3~Pak{U7nz5$LFK2!hz literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..da826ed14e5eab30aac3a4d34bc61646f7a5399d GIT binary patch literal 9478 zcmcIq3w&GEdH;X5>?_NckT`LO^0G)m62BsnkO#I&V{8XR{0O#_-~df!`Pxw;OGdiN zgI7ySTiTMo_9AR$rE43uc3q$}iO9yQZ77A&b!`W2pDl4-81M*Y?++gg2V>#* zSg>z+zZJ0!R0`IYSS=P#$0PeVp}Rn^XgYy8(7vl{Z{Lo=P+#wW;NosQH&u%Td%_c~ zf~tY&SUhZ}la^pZVQ-uBRVy-JC!_JP)~PL9IEOcBr4s36gj3XaD>bc1EIN^*8^%ZZ zIgzx2S&3l3E2@UIQ7j&{w+PBt*Y6T|Iuaw67jxLv)!Wh68S1^pi@Ad8&_G}F=FJV7{Ps(v*%wEJi;mf16kUKkZIY-I!%3;xv<%ta{gp+ow4=b_Sz$(GY5=e7# z-KF8ZBbFx0P1K`7;G+Va)@V2#vjq*Soi$3EnLk>u*JPp@Yq(pSV|OBXVAvv@1xwsn zvM^Gb=DJ&}aXHo*SS#@7W352Q#ClvIn43TE?r3}@afmyyVs-tE1u!ib>WFcbjo55p zlb~+eRUAW>GVzF%+Lj z69#qDDy9Xv_k!z8Y)7}i;NTr$o7=v2^^{%7o3+)A&U`xZp%*(0^pST;n5kJVM?7kc zo#Z_e*Q1}&J03n@4ID|?)_D7HDiKTD+_RM>gJzPB-8k}L5W5WQETC$q&%|!rAgHu% zNrz*^T5bM}S(@3SVr`F!8*vi}nD%!k#>OlL?L60Sso3Zh`-4tvs~7L&CUhl}iDZCe zA2~o~3xsvZ2S#~>RO4M3HV~#Z$_e>nO++w4209c@##M0Uk>FH9AKaHr98y%)T2JFf z89kGR=lVF=gx;*0sdG_*L)jqC1>3TjLygcb8pr6F0)-p_xB<$D%Z*a7CF-UhqXbBn zm6pqni>HWAf|_zZN6vwzaO&DTYjeJ!;6(#=IC6kTjHZ7B`wbi_!5HeK&x3L`4&sQ3 zTXCBMf7PvNsX(iOb2AkTDJgQs9eB5aI|YIKuq-8O;yt*FhbQs1Egg$F#w;s}OlM#^ zZb!$hU`WYuiTC0C2JRLtow`K6q=^sUgFLJ4gaalAzmuSGA!gu1C0wGGDsag?_=sYJ zySz9mAU{+@9WGf?;FQTj%V846kBR}8cc!AI$n)H?K*4+^?B|pdRBqZSi!|qy%EfNx z#gHE=q_GieI6cM$jY&|bTjy&O9gU8qlVO#xw7O?e(TQm%!x5b~QZk#>aV1~Z;fOV% z6CDG`1Z^c~Z>FR$H-&-Ubr1XOL0jOB4yv4!_2N@RC|6tKD!Rr=c-J_If%{E)yBfcb z2Mv5$(3lUO8QfsvGx!515oouWYYuBZ-h6(>asgKIU>L;bOnhG9)5Gb;6=gqU;t%mh zWPuo!RtFBV&X5;h6fAIZCrzh;c)|{(ER|1MBZ^zUWa3Y7f`GIX1s73zR)t+&Ji>%z zx_Q?4a33C33E>HK_MJ4b94pijd)h<>kC6tVsm^H9KBAS{Y15Xr1VCs+^JQN)vZd1X|Xlf!BCLh(~ zDZ%n0f+!)`YT&EPXG=iO0mECaepamY;c0wbx#_H6w-ZN2f${%bf@hm@$u~?qi*GX0 z!>J?jNEfR$!6o@%>rcnyxwG*3x5wIbK0Jr7`|vG%+rVEG?T{*+B8lC@XU!MEf$q3*4S87+hp-rKyoGK;vRm_ttqp?U!quxj!(pL72AMihxpxx?;=o* zm+%7v-)B;hALJ#b$kuxtZQ_S`nW+p>mu=m~JSLGm(r=BiicS*!ZAI`q&x|YF!7H+( zd2;;-e`DaU1)DEWt0{As_%Z&Lgg_m;4%=2dMT#CwxGU*Wat<||tUTGo1nuty(qP~x z+>Fu-A0CeewKH$%2^HDy`1Dof(|^Qk2L6dVTrj_hf5z+N1)W(JFyc&wY~B?Dee)9j z)x^Ik>r}qpod}QgIVXu1{~?&)-__CA-??{Z@Alrl-MxFab+r%f?C+|=f8xIl{Fh+P z#o{}Ze$K@=L&YHw9m7fvS9@eyK~2jf92 zXQA1XjzQI$4M$oA?#(DV_%exxvQQy77E0%53 z8XTC}eR^-Tuf5X5Fz!-&oxcT!@CN4XIL+7lq**TKb_nlk?tNQM^OA8lgG+S^AhO<+ zD`W#VOxM%|>jd%F9v|VkN(SN)Qd;2)n|zZgo8?OKmJ994>LC0Ur*+EcB8n+lB^bg& z!KvM&iD0NNm&3Ew$qNe#5J7W6vM@uUu8I&RepLcO)Tfit;&QzdNihtw%*<3k&{VMK zc{q#GT(is~hTJN=&?SVWy2CET?lbLLwXBkBO$o_$P7R`JA9uoOt~6Dtc^9c-fAgLhfLX{0$`pF0H<(J(`vhwz)hyy ztS+$46f2G_;aAI`>^0?G66U!PWu%1lb@TiJMM7>nX*431A?j$DR3_VN%BYM{p*Vx2 z`0l{vO*KAh%6?rU?F*-RwP=NQe6@^A!Vq3;mAbGl;Zaj2)N!CZS-dZXFyeK+S`=ZE z(-aIj;uBjA8j^lX*#s|*Y^x_6XEKpA<&Yfa4KS6`&7Br~Hy-6H8Kxb~<|#SGyx5)r zHig>puC!DXlzcZe{i@u(Tjh2`ZW9pW7x=1c`sqx$L!&95Z`BI#Hsw94quRltOTSgh z^KJ;vU^|s_BuNEcmJzPYx_&J_U>GIygP42a@Z|*pg-)C;_n7h_ohGSBB7qL*4Amjf zrIV58o)X!YfooLAF#JOCxRvaPg;OajWynVb!Qzx;ns;p3>W0?~ZUsXJWveC6rM!qJ z=l>Nb!$S3vi=V6bdb12ZcvOnW&px(ZgjwvlnBRizQ~#=KX4ll5#=I|M;lun|hQ<8r z)14dnT#qHXRo&w84Onh4izK#JG@L@+t zi8tc_EW8u@^s`(WzeW3}jXt{yb=ZPcd}Y&wt=NEeT+RRb(ZSpPPL8^Yqpn2^AtZ4f zuYkAXcJye6_0!k1(6wHD8si$=f9ypR`?+=igWP8Fdzm74Wvo!>MwqQ&a!h9FLQcSw>6uC_*%wsJ1=8M&zz#I z@hKcUhDD7};$RQmLBh)5c7gKudj%)hea|t>XZJm-`@@qxHTRz2c*jXAHN38;(n{3< zzNj6fNxS$iWH%ad1J+@PuhMSR&e(!VwQkNCZTKiYrkybtAIB%C91&CmNK*DSV~3`7GAb1E&PXu-X+qqlHi7&(7fK zAwvCYC-ICPdPWUxeg<=N-*c+(&)LT%Uuf~1!FPvF;jdaM{1q9zsJ#0MkIcV2gIC%7 z4;lQl9J^K5zp(Y+AHmPEEobm^3j892H_Fug<1;94@K^Xfo{UtM<16B8cvO6+#mvaX zWjKyyEtQUzbEVc_nUPD%wN-P)@2@;1i=I%@8CgPF$jGH-cv4oiRQfBQ!Q$+w`kW`` zN~5wz*&@wD4QhOl*6_ngS*QPQJVDpLjGy8)X>kGY0C5YVS>3A6#xPkYf&fO?YGEyr z+d`aQLxlGb!Gpy2FykY}7akLgg*$N+cM}9h34>#Vz-Rb;h}-@!H~vvRALAx}gPZ#T zxA$dy3a{Y-yw0oWpW)MZ6Ay|HpOwYDVqS{R$#Q&N>Tz7w;vs3n7o?l6>L(#6+R{-d zLs{U-khIBFw4|Cz-4^Ot#&^ASI^xQy&-dgVvXwwPisz+Wt|p{j#}es~PX1zJDaofx zwh?p+jLTuXfwc_4H%L$Dobx9741CMLOE($PvQ%}+Dvw814HWjM(u9jD(oJwlMZ3!y z8Z&YY?~Y|VKk$`jMh1jNdK(%~$_)*too}yu2r9ofQ2F`b8 z%NmGfT1jRYdbBLz;!F$O#lJ{lMF3l~OY&7@?{PFVXJl9uKzbUQvRd&&zE(}tiekKG zzyI8KCRJOg1N&JL(sT65^W66r_@@0?GTXPcdI6fi^>XTMb=C9JuLtN&htuYP%ylt5 zin(MJ42gg=;!&x$tNEAsR8H7L&11@0)V#%W9CdyMht~a;-saPiB3}v5bpGW#HPxpT zex+F97qJN6Cs=>LWqwF%f00VRq7`n?4%(Dcc$3^E@8#kFnDRckn+h-DFIwI&AE05% z$F)lJ*{IN}kHgV@5r0p_T-((>!a-`w7pQ)bjl0603t25}-c4rH|fxd!o zVWN?E;REm?Kg z%11#zka3_R`Kon9p)KK}z@qa{VXS&7$@G|=_etAS?wYphylXNp(v%2Xw1+CKK4HMk z^GCeN{+=tX>l`Yto9Akui$h>}5U#&wbjzi8bM?T(4csc>rars6%btf)j!~$;f_J2aW`?K!?(LZZ`dB*p2?Ds z9B~P(|2K=RJNn`t+|preQl+C^vWKSaLxNdpK1_&7a%63f36AMcVCif_9IJLj%yA9V z?Xf9K+z$f&j%KE7#6g-;iVE{UfyV`ia@o-VbM^#}DR?Zs#H(k#cM`9*_62_JE2cl? zcdj^De&Vzf%<|r69VfktYdi~F$K2408d|B;KC=-Xr!|a}J;=f1?-!U> B3EKbw literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ff2ab8b59413f1ad016366699e7e77f313b4117d GIT binary patch literal 1292 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..dd813c3e95a2c132222cf6c1df1fafa2001b39fd GIT binary patch literal 360 zcmaKoO-sW-5Qg8Wn#9&GdefWWISXDrsWeasRIG|O*~aO*CG5&(xAeDp@CW###7(2v ziyohOXNG6yI~kUU3z?wkBqtMP-fWm49`1 zsh`=2QU+7KTw62ODmd9TMril=CdD@4Xd#zU)Y2$1nJu{TgyiOSRE!@9!}2$rdZ&%L zAngClKgc?8hF!u*)XTs1@=h=B^m4+WC@-%jcTdH*9A(%eoc-P1%@(?5LVs$5tGI*H i|L(|J%Y;DKia+b&7&}NJrEAI}_cwSDtMQ6;cJKwBDQ98; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..bcf70e09daf37b9bf193330d02bf99e19f6eb4e2 GIT binary patch literal 3328 zcmbVOTUQfT7~KZ~CxKB>5lvgKRSXx61??rFSVXMafEK9MTkRw{34_T@Ix{F(?X!=4 zZQr|mZC}*b)h_$mA62@~WYmCzM%T)k%$)Om`@8RR{{8Ri-vCDNlSG@q4aY5~Ezk0N z(@vKvX5R7B$}U^BN~>j6Sn@5$=AN(81;_T)vR`wZ+g4Gz>6}xZ(;KIiuiUC-n_6_T zA#^bml86b+zO#ulfj?)gidu&&&^cz=mOn1go*K9$5Sw(0stfH%80bK!z?K|Cm|3dk zl{;_dD@tHn&MBCcOQvh-?{G2ZFIb+y&D=Zt*h(6*^oOZ)&4M2WLYrnP(rD3Q0r+s- zDnqKIU*=$1e`g1-MX71*phP9BoDOYdCAJFmE}FN^H0xMNGbOiFF~?eWp$Ca>^rBB< zhrno5^lxy)z)tKEFv^NCxhil@U@$ch@5!lW2y*jsZY#?8iR|NdXwtQKR zwcceT%N_02##Wh?;{wwy$2YIL{gmmc;>MWW7{$j1KEbB~TfKEH!#IzdFpLq}S#9sEfpa)7kYI3RHMUHnhjm%JO6mBbrhKkaIENXD zX@QBBOBQm{q^p8+VrsddYWl!1Z~+%Nc)r6HwCwWwv1zPw>}D}9F(=To-W>zqK%W42 zOxM;iH>ERFZd#dNaGg7v|FZ)uXg|I+a0OQd9dSMDE>90G zpOg4r;BZ99QKi-xc>@Ko#?p5tT-RjRrBc_Lya_phlpb(Na|=k67)JxbUQjx4Xa zKpWq9Bji)^E6snw|Bk`Oi2o66ck!vWfnDh4(`X3re-poA*o-Y)p|W^NNG<*IpXj;r z7~7_Y>ewz&M^a$sNF93xG93?bIoVOiA%SNY%EXefCpePnOm_Z*(O)o@?0kmNj7-X8 ztd0|HNXj}sqgs488L#8>He7y)oteZFOgzGu$;2akl}yy}bvrcXWr1H;e;XdI-FbnwOtcm5&7ysk&U8u$iC&3){1K`jSf%&z=4FW? YZb;mfJe?_>TgCP$Mf!e^$Zfd)KeoQ>+5i9m literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..c2a9622ca26cdba9cd5b4d474a1ce4403fa7c983 GIT binary patch literal 1697 zcmb_d+fEZf82+ZGrR`D>5v_o7)V3TJYdukdAvGq(QZGsx~1K&2}8!lpaCbu(k{K-oD*1T)oht+m3>e!0@hoEj3eG zb?sSoSFgDWA_5Q31@qUmK-|Z-od!{gEf~6IYDGGq7l@XPx+UGFqYIRK*lWdq#Lur2 zA+lyzhPy6sG1X%~pRNd0da3^d)iWF_*xPyxK@6*iz)no!jigrz!73mn>y+aJSI|g&NdA?-yuQ}5)){XUM-^YvkC8I-+dXtmy=Y{LY zny#64UE7lNe7ZNw0&jcG^v!X%ne}r(oylw*len(nnn0qv8&ynUT3~?F;YinZn4{Fm zV4ig7`8Z}VuV9V^`)k4HsuhlDO(wT2QfwB>`neHcBle zHp&YD)piU{v^1Gi)<5Bwg_BH*z|85TV9&|sfk4dH^@7^yr+50}Q8<1u*gUzO8lNfg z0)u5&)?RJO{Z?x$xF;~xXT-Z2f!>$xrc=`&8{UYF_iyNBuMn8#bOpJ>Tmf&$ct-hb z1`y-oYXp^Nn=*(5InQ|y@Qh`?U?{Wj86zKg3u2Uef+sMJ5GJTIiA%hVwWWDp=8bwC zlq>vJiO{CR_$9ph9;1!7(0`f$s>fhLWMB#Y3cm zD0$S3z`LVgOCP8eYI!xr=)krKV2*yxv)ksd!rk*O*WzW5y~|>`l>_g`p;5|TO!}d~e6)$>->KTPjDXJLEBnBMc*=Kq#10aF;v7o&_-l?o%Rw2Y&#hKFve` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..a63542e14c2fa28272d92734d40e038d27142405 GIT binary patch literal 2562 zcmbVOT~iZR7=BK6lMQhVGzx7H1*~GebQLKYf+&WMriGw@pZ#(PE3U?k-7Fov>W!EE z1A5nSrrvl#J9QY^nNEA@9r;ufA<4` zZkQSZ0+%Z8oMBh(s%JXJ?Xo#j@eIqEvmMK@7Oc{|XIC8Fd6rSCxUN+;CBev>AoPRxAYpMm5`?ez>3UX&I2!#4= z$MyyUf{8*Qc~wBoS7xmU6hw7I&`7>S@@fMF-q4{TEO+~KG$1U{IL080^Y>>gciNmO zTLQ7MO35r=HC2$F2%Yj=i4q|DULwK*MTIX?!R#<|mCAFB@Y_Yi=uxo@uraCL-T`Nd|H{X451cn!0=Qmf&h!2b0iI`^zu8E6D;i0(lL z4r}NXh_2_UdOF_55rMGnS+40-T!EIv`nU@#^xPhFA)(-evR)mt4&qzDhkTJY$` zs)lt4&1uL8bZk-O4LOexK__$=I7v(qEgRcFU^KCFj(6rr7GyrUb(}^IF>KDx3N)`& zbG^^Wn=K)YjBi++Ga{Y?SA;@a$FvrMcI!cG50OLP^0Y-%zI9NyVCX3_KY zDSWUnvnwNjh1u9Y47Q()WX&qO<=@+)E(|26UBwCK{CM87Ab==f&L*Sqc zz$%sP2USk~`?tBTxRxPUe@A?2j(uFnGCy*tNbbSIj z^wZfeMsbcbg*uL4fHalz2XLM@AzUD53%MkJ7K4+DN~X~fjbGKGkA}B75-CrpQ}m>$1uj*pdWS&!B+^1zxe&Y zm?M!tv6oUDNh{$#;YmU*^9{yX_Nf3KlYKEg{tPXdWn2>&&-{e+V}vurz#>EZL&(C` zBkUsjKworv5vBbmTHeQ!wz9=LS%@y4Q7lY*JI@RZ{+3#+kasVW^L-Tm3trbwu_&17KeXV1_ooz955QzIV!Ddtwxxrnht9A E3E4(~^8f$< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..dbcce3fb23864edba2e660abb05c651e21654278 GIT binary patch literal 1879 zcmb_c&ucdhlL zf)oEhrCvDE-Z@pGCrB$*oH+1DHT~8~C% zAF7{}<0-%5+}(VrOGY9gaQ&m=bf5(i3$E{)MS;F-?w)|P6qI!eeHgGIkrWsz@Y2Pd z>ZT6Y)uyKfh6_PSdG}Q4M(38$GFxt4p!mNgo)_qE^TWW)*+PQ^vgbJka+^Oanh8}& zJ6=$6)>S2+JLp2lHMim`vl9~X=Yx<7y&)GrBJ2mj#-Hppe*-vojs4u|Z9ZC#FvFNIkQL_A-%@dd63$SqYbHYjB)ZKUueu1U-h zxZ}MPcph6fYJMAEVV=dPt2OgD!sAo5U!qgs0(KC(oEyqxHM7Bv{A=z$Irb)>W_xn=9*{-hjE18cGCcZ z7~+W(;ut}O8@8WBAmSHTNbwws;s{3Otn<4_3(U*sxSNr?7!!Dnsrf`Eap4s{n@gsX zY3u1T49#Q`yEqra56>~3PWC_j6_X9sZy5axv-e-(V)30xIyq-WSeFEz?fpLU2Jx8} zuW7Bp?PU0-aSY+eWox&=c_Inbsfhjzoev7^5(ZXl1L|NXV z7c*#O8GYrk(8xT**H|QO3^iP*tdEx4_y*rH@&xxA)Fy~@4NH_Iu}qvat(zDt#Atf1 y(DNpx3f3O!lM+JWxWp7!i)O0`sR3xY#{(~3$3ad)=v){$8w$6L{N=)<%p zBn~_P4~6>eCJ{&rkjJ^T^ekoPBh&=iL-j*RtFlyn9t?F7BGd);7sB781?syd zGht7l+UcGN)cWqLZlH>%O+MUaW-{e=O_26{ykihoC2@7n_cIxNFv|BrK5gwUmiRtx#VZ?08(ObHt$;qBNuArvV*$3{u5U=v%EU(jP5r?9=GP2g2Q#OuF= Cf(o(# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..57197025eb704fd6e0cd5b105dc39712b3bf5354 GIT binary patch literal 2066 zcmbVN&2k$>5dKD5X=8cgIR3+OjAI-^B*)4UV<1RE!8mqeq9{elNs8RY@*rF%$myY=V4zy1zj9uIBA z1nvi6-SwJYGm^ghWkaq9k*oZ==POseP_@9(BF@7OxQ>Z4D73Dse?x|se`vL z!{_(ai%4LkYvDk>6>PjMFx}&Q52ZW>fp;8SLq@=99;j!5yP1=-d$LCMsZPbLgX@@M z)yjCOP2q+E7w-z#o3dFk*jVRJ8Cno}>_*vOm9TCH|6eBq-O^)YQb}Ou zZ><3k+olT z8{%_KJYoYmDB(7%X0=jXTdXWC3oINDucsB(Q~`?)KE;y2WL-te-PzWiVpU&mH8%s+ z)XFJdKYM%(1YkTaJ6O>k`{=Pf4BLsn+1}zxCVYadT8cfma|yMxrvBw}#5CJl24=Se$l1q|Q!Rv^BSbtKY%NrLA3L zV|b#)If3u@{?7eG3zqRdVXTca$TTiv0$EOqdD2Dpg^p;!04a4MqF>ykT*D~gJxXJ| z`2pT1FV6eJq!(!UL(0b}YwO>lep~AnwLT(u062<@k literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..d4ce536b0dbc74984f6ee1427869932f3eba8c73 GIT binary patch literal 1918 zcmbVM!EzHv5Pc)9w0N}`Ft)LrU=cfjWNa23Cn1(2LJTGjLKG#36x_zrATNkrvKpn} z7gG6wgLN5EPM>&ihA85cGV2^=Xi z<4XI{hKknZMpFrll*5{A-jR`S_Fbi=H~p5tjq-sK8icwiFx0CIqh8II;|j2DO|Q(V z76*mWk*q1N88*Ci*(ervUZKmX-w32`M|An)PM6DjyDS|b?7rOE7!w%nhZsCmbpzDF zC^8vLVA4ibV7T9=rCq#-_XQ65T18Tak-&JqANN{UU(8?%r)=cdz_%WHr!GFgG`k$;OhRg!j^LrO}Z;Qe`Q;1m?=P*ag%6eU3 ztlP%^WR2Yv&b#n%LBQUWtxAlHB)=!%hLO)flueR^q&@n7nhf`t$C;#&!1Ug^v3xrA zm*m1WygMdOANNLOaYwj)(L>;HRmhVtZ=RxN_XBZfz^Gqy0CjdX3P0E^}N_w z7T84{zl&6KCF-1N*p6yy)i)1QcF;3&-jJQ_CR_MV@qsogpEiDnxbwIQuBq8AIKNX! zz~wg`D@SmcvfDAhFph9XzTg+D0LPZ_V+%z|XIq&;LdbRvdjY_BO#Jv&dl*1rGTFVDGaAyjc`vXe^`b7d2N^`NaWD(gfNLkO4&uEg2;S6&H zuR8=XhS@#{xi=7UxXL6AgdDEL5FFaBQc7}la6N`#(#$~ohm&!7GraH>RSB%U27So! AzW@LL literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.class new file mode 100644 index 0000000000000000000000000000000000000000..4aea6c872f09433c542599a1cc949c29c6e75472 GIT binary patch literal 2101 zcmbVN-%}e^6#j0qWJy?lNNJR|K&Z4$LSb8s(h{U1*cJ?dnlzQZU6M83cG<;c1 zee9Et&ptV$j`I#d(yuh^Fy6sw~wPRHqf$h1x3oNth`M%{y#W2hErbX`N)}rMEa-n(S`8qU# zzQ^(lX*$xao2wg-t!khnCUEOij`mFpbZpx0Vjv)v6)krZ9hM2xtpl z%}OAO9s>#V3PjVHN*n@j7|_wFs51uQ=oIKJFw0_NbHnn>a>KC%`U_rFIu+^L>fB^% z!6SQHV6||n1pcp5d4YJVqV&9&E`(KMy&bc_Zsd=07x=PjnT}UC%d(!&99E&pl3jOY z(C}&UtHUN|k2g7Y3b!XRt7AxDpgl$RiB(gHCU5~gT}a`gj!}W0cA4$Kz}pxT=(GdN zmx1RCB-8DAFE#o3E?h=h#}zhl-$LuwKn7W2!?kvZnSqvtHi+hRTop(i(c%L&PY^zn z225Ndpz2m|u)6|x(#O~Mc!|uis>hUpcaS51WvwP~w%N`0m@^Mm*6$gZ#ti}ek=!nZ z2@>)T1q{!(Imgl=R*2ue|DvU*1wf88g#<1h9~-L}g!ZD`1R^ySGp_Cpyf@(hP^9zZatqs5o;T$`Zsz|57 zIc7Kc;Hj!#-`l46+68=oc?@@+6D6pXXG@6EnIcXs4C`m&?X(f?zpFu=7R8rNa2BQ%gg4~?HCCq+f7 zA&ED+D@wT$A*CECH*aB(ZqJby!FlD5*IF3F+V8lq{sP0r@m-7v%yfK*++fEpE(!dJ z@fmGUyZS38ren!i_Gk1x`v%F7>VNhvjEO;Q7uO?rpcLK}`1<8v6F<<01{Lox;{dME zOPUd9NM(`7IGdYhLng!6=MbaJ+N;>ta1%3O>}!;rWwf2Ri}%Tk(#9psk*Cqp5N`1% zh7YKnq?EF86Z6#Elb@&jhvc3^pRkbK z#Zm;nU}c^MR%P!nttGXTrRwlKPRkZ Zhwd{%)q^-Hq%`V8o4E))plk%6{tKUH5cmK9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.class new file mode 100644 index 0000000000000000000000000000000000000000..55407207d5000306110962b3f5112398db90a3d5 GIT binary patch literal 826 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 WX}v^N0?Skc`cCLwp;lN)5B~wnL7rs* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1afc49af25373e244502da48b764822446f987d0 GIT binary patch literal 3431 zcmcguZF3V<6n<`-c4@kl@FEB*B1UOS%ThoEQmascRN7M8n3m$(c5|C-+3v>OZOeAB)jLnoO7RZpXZ!EAN=|o zfMd9+p+O+;`31uc>>xBXrGGB6B}d1yt4-Y+VgiY2bIvpz(=8a6Ca0wpYG@WXuKY{Ou}gt8rl(9x z8gsUsmwsUMk4lHr=&!HHRWd)oD5WcXf#$Gi2gz=RKk)eDPt#wI?b>0lK%spz9Hw#t zu|6*^TOhDihlVY2G-8{M79<23+tq|^15DD;?98O}v*x5D1$GR0mg(e7-&XGxV@yFM zFtrJBC%Xw%B3P9*ffHrWYG-+Mk~4GC4b!Py98Y4OhP?vD`d6gpVjWN6X#u?;!{u>- z_V!c+LG382cP-tD{WzfES%KvGj;r%^JcokV_Pc>yrko0yg~qMik}&J zl%?IgW7Q@76+3U#DWo-=CPUYb>gd6%q`NDxg#x=C?yy29x%4%G>;_~s>q|LES#gqM zzF8_szZJbWqvI_41X{?KVbdr31jZ|5`JaVhjXy$>!5bRR3$#_CP_XK_fPRw4%;yE3 zXfMOK5`@%*g7Kn`frxHJGZ-RbDiK3EE@7Au2KEiAAl0#7xfzO+griC_v&>{=$0(P| zUqxYZI>r?I>hPo9tZzvTBwiint25=I3Z>X~MaMgMx5@&Rq^~!H1@*;jt+G%X#__(6 z4`5OngGZ#Xqn+NO^^JliZ1i)5LlCr*4d&KCs|## z2T^sA`4PKN3{@goaaM3HN-b%$!n907iu8Q>+6&|&*BgGlDFKhx;OnJ_b-1`9Bo$@P zEvg5cxAWvrVDx!2CGHW*biM0Y-Hfs7{VqGYKF16K8EBXjxU>O6x3VLp z>aOicHLy}|Xa;z@Dx!)5?AjXnZGuQ7RP)AuyMf;p#A$8i(@DN7OT6RoFVH&{&~_)9 zvt8Mu5w+UI4!-MLqpUlzi~kfy>@M#j3W%YZwjU1P#hyhxBXA3C9X~_=3D4g{>W(u1 z4&xR+RZmMW2JfT$@&b+zbuQwB!0Fg+9NZgQ#7TiA^qy|o+q8(+1^$5Er5?{UU`!3a zDe&FDe{szq`Ib-Lj^oWh&`BR|8xy0++bb3$y)dk3&F=2!6&%FcZtt9>vR5ofp768zQ;S|pDHosPcKh%qq*fjJ{BP6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..1d2674c5ac37504c1711709a72af4e46e743bca1 GIT binary patch literal 2389 zcmcIm+fEZv6kUf_M#`YIB8XSOs--F;c(>jwsIf>)2|Sw9>81=BW|}iY@k@-ipD+%#$zBf~-{Z58EZbL#T&Xv#sv}*$W(6CewIFM=jvJDC80}@tOAFh#rVS(o(yOu| zEmwLqYre8dc4(kiU{u>D+jZ&zMfx_JYK_9cDzQuCkrL<)SDYX_#lDvQzq18_eGTbm zLq)Xc(1v#4Ok}t14wLHSPqK;|OGzlxC;7iv26n ztGYDPATJacZoQ8m@s6i^Ac~vEq!f9MEF$qgxAfT|* zRRSZqQp8wHfv(j#Xytv%WC~?pJo5YerG)|VY1}!9wgFf&8$E=qj@zNnN|5OL=S%lu#a!;=h*{Z zCwUyqpW8$_e|{60{Dn@V<|S^o_(c*_>vVGQphOQTI~ElaEymvEVF u^D%+3tOb!xe#7<2 zrkCU_M{eNrSwyxIC`F#s8+P55UeK_^mB_Bj#$(ruNIi=8tjb(<1X`{a0TGo)DGid%0`6xwBWiF{H5z0rajT9??@^8a_XB(SF?Ju6Z~ zvo5V@2hPNHJ5DanONZ=Md=}c(-}hK@NK3jpU%o>V!BSHy83n9iJ_*k|rYeErbX!xK z?63#Dw_V?j?h5=UBw=!g%9j2uF-dr`bMT|H0_lmMP8kU7HDO@4p6xS{K~~T9o9Kg? zMG6N@^y8pFs-T4i%8d5s%S$yCH;z>h;=YTEj4*QtpsfYn)5jw;=tx zN0Tk`BY}~2Jv$)Oo!9A<_(o}THj8157&s|l{n=Do;nl<`SOOXDwl<;!iiOc_D%x&` z_T7?!GXgIX=*RVi&7y#!fzf1$X}#{hbc~5}8V9DL7O9YCRGm~7r*Xl=7;J(5kfJ~P z_)wu7vl!E&XLk?Ql7Go$T4i;HqIpH(f`DK!omiLB&4uHp4dad$s3hMh45Vx&SXK@( z=GdFT4dgtg)&S2Q@;c4q zVDa24a>etj$QLiH^71o=KE$^V@ozSk(h{$5nAavtvkZ>lD31ciaC}W)lW(SYZ>0DU z`A<0U4X3AhI`|1^&$mZC@X5ul_96Bcc+LF(26?CiW s0IuR%Z0$Nr_uvL@@|eag+{QiaK|H_D5o!;MUFN4dxLps(?dz1=`vBM z)i|R(l8z{`S zsC>r7y?K(KobXppQlC1`NH_%7aGk@8xWNPk+{7(jOFVh&xXV_Ju{s*K&$dg?*B>x2 Be*FLd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$5.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog$5.class new file mode 100644 index 0000000000000000000000000000000000000000..47566b4766eeb817079311a672477e7e919740cf GIT binary patch literal 2728 zcmcguZBrXn6n<`AxR5R_MM9;vijYc@Lf0bDN)V;ISSl}-#2~F!Z#I{(xa?+jH(kc2aC}|bCDWF={8Snh-*jwx=S$siTvu8`3G|{VET^P1q`P&M9~yO7_AyOPBVm)O5w~Lm0+Q=QIKv< z6fDWmKIa(1$_v+2&%45iN)^NE3B;Wkrc|BYGK(eYS8FDV4C!jhj;ials&gil=jdd3 zZe45&onU3@6Rs=n&k^!sh@&-zF1)~To}uvUi>~1UE;2L=!;qer7-abTWJ({@X)jsp ztHO}_rYX0i>*+aH%6zcS#PAYc=ICZf)RX3E`WkxB%fP8H$_PVuGS%Qn@w8gFsvB}} z34I)|FkGm2a8OS}5-Ca(8J_j!1_A9-GIjSz(@KxbU&a7OKSgqsd8Mo23Ur26a&cR@ z1QaEtbN|Z;_T607sFl4|J^YmL1w#jI4M1iIyQD7`)~UN>IEERPj{#UJ!SlpjD?wdu z*%jrobWh$U;dp~#pgv2DRnGcu#qcYxEbjNo z7{>6XY8G!1opy}|giTb zjsrvVib58Rg=yQc9M7~%^U_~)iW-*jKFtQhl{BMgOj}qtD!xxMo8e|-vFph_>1>qA ziZ3%yZxl5hg3+vPOLx)|o+mwyy9|rRz@_@{20FvxF9(i$498k7%5sgj=%xW2rjH@k z)~2Q~twQwYXeN0Jt*+CvlEl)NzoE+xw66l4GfEb`Aw=URw9&IhdzADn+UZWrL`T&M zBOH@O;NC;TS9Wl2KK(Uf-{Sdgyts|T!obQXe>Bn*9*KU5L>G@o2S+1ak!_^EM|;0o zy!seJ-(e(#<o4fUuSnxJ>XE-= zg4XZg4}6F}gNTPHc8Y2@Vzrva48`1xJl@7lI$tMUXK{;il*T#QJ4YVoX^%Qu{6q1*sKJ?W#;|L7c4Q)zyIJniLkFLu8?(0a~2Li$LaX2hD1oDfq zPeTwm;i4Y{1>`X7!a-3WH=S-6S!D{Iwzis-)KxPifw9%tQ(;3TI-Pfn`7~7m>&Fmx zX@OH!+|_gj@%ER~)dH@eECXDhw0)5ZVI?&k8$o&fpRzH-7&B1hsul#2rk^It{_v* z=@R;gtjsqj(D zT2?KAC*6^zuG{r%f_tNAlrv{bdTq$rBIo9&ySCA-(-76Qd_pd)q-yr<+;meQtL^K@mt^& z#ycp>9h73_9SWat`YkSez|~%)?-<693~3@mE_RTBBBn6SSUHp#xepc0@H@{9e+!aF PV{DtiZT{<|ezWTrgeL&T literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog$SWTTagFilterDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..276db4897af608185f3d745a2862dd4832dfe5a6 GIT binary patch literal 11234 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 CsXg2P literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..5c96f40c22e9a5a21bab77df2e97b73d6e859b41 GIT binary patch literal 1476 zcmb_c+iuf95IvhKbpmZe5*jXrLMcfLtb}+XRbL87NTF3p6hz-P$=0}XY_#5R`3(Mq zzJLT0AHYW;j-3J`iA1IL!QP$OnKL_QX7sSAi>c zdxyGj^T-LjI8CUDFwa$>Tx|q$n_l4AErE2s(G|#ShXd^(jY1K5oD-ODF_oRsu%}H& z^?WT*YK48}ca`yC`B<5;uf0fMuXUO`&Y+_y;2b3MFaZX5Qg8j`rfrQExXrPKO#8CM zI!wv?jY$iExwhv9%8m>ZI{H86=B&J|QGG4rI`VGKt;x72@|n8ZiM;Zt2=vaF>ecqk z&P10uDC1Jx2ulK;`YaAk)9TGeHx6*Qh$~oR1Da95YL7=_M-7u!n<_S2)Fz#@XZCUqI{=+uDJ^;H)#4K^Ysi`tN{zc=LNm9!^~OM71U*?QmrJny&;Y zDNmH>e$0?S@mUaPv+b)W(j1f0bS<$0^1v_4*DJ-9J+`U)Hd`9gP57Gny9J)a) z!4b6tcx&u*3`}=i#kC|@1&GURP)tH)N$So>qYM*9@* R@HB-w8eAQsmies%zW`_-s6+q& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..102508e9e74ec0626d826697bb0030843b4daec1 GIT binary patch literal 5007 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$TagWrapper.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$TagWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d4ef2de39eb9e735587cb6ddda6ccd3467b44b1a GIT binary patch literal 3807 zcmcguU2_vv7=BKgWZQHplu{skXu*O_+7d;q&>#v0q|z2_YM}*`ZMrR6(rnypp+)fn z%7@P2jWcrL3=TIkUWqf-T01g~7hX7e;k6h30dM#N*5{mTn>0km>4-DQp0nrUeV_BZ z&-G!yxli+SEZMk~{ZZtd|7Z0DTl%K`4M0y4MZ4^ofWvJ1y z9IMDwL!`F?0;_c_LzV2U)uEwW_SWgBgf4p>3*#Fr6M_AZ1F9?WB?F zH5^O6dxL)WjFlDWD}`z4^ybw~hAW3nw{0PkeGQSv6w6A~W2=TO0(B*1y@+5PPoqIV zBQiqe`Rf}ZiUBj3vNBm_^ym=NcyyE*%*0N`4s;rsxO5QJ(I~er1%ldNbozF0oRK+!n1k?OVy!8sT(h3!`mcX zB_$gx7-m-`bnfnXR3fr6g)$2nOzBD0nuEkh;j<*HC{U|XFU6H#KQAr{s$kvxC~XUi ze~MR^c;?6Haee>N9T{&=r%k6VWn{BvR>Nh1QleTi6ke@GS4s^{mZPhRh;<%O?WehjeHxQ+?HXEoo( zxX#Zu9G%9>sF*@+v~db+qD@mAYM#RSuhrI#e6B-~&lH!B(DW#crBMSLYbmHFI1|ko z!jq`u8%-)8LiHpBpXy0a66z*w&Oz{16RrgMAo>kze?qxz?((sI22U|0xn4w|GukwR zCV@uvJpBU#L_3S^eH_>!FpZsE&9jL2P2z#VK0`)BZ~z|SaBv1aJ~=auKs-x zJ?k)z9hl%vc>$ex2mQFn8u=~*@E)$S|0yov7B1sUOkxUG@FT9`7hJ<19QzX=s*qez zk$>QYWHo-rAWYI;hu<*7o{!eQ!Z6MdM?Y@DVrcz1gC@)KC`k)6(XNS`g6ZxHCx6X=qlzlNt_F6wx{E(Tc`%Q#*-^ zw}Ge7eqxgft(rxquW=eqSM#?Rlic|fcOfOL8}#^bfefn_WLTvzN*Puuj503*#5kd3 z$TH~piLsTd0t`(!Z$797KT)Rj+yc+EU|{~$=9?uqzs;EDaZsyxk#P1- literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$Wrapper.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel$Wrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a85cff92d1cd7efb72be18eae33c2c19ab56a5e4 GIT binary patch literal 525 zcmcIh%Sr?>5UgHx;>`N|2M@a!171BY2!i5*11g?+XWE!0BukQ2zs-Xm;75rW@!$uz zm+q#zp{lDszurFpoZ(PmL})`a+9sPad;R2i5waFmpF5rk|c$F!oNx(s9(z~0%5BJ d3yg~SJE$;(ps+h2sDEmMap_IDEXr_D)!)R5r@H_E literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.class new file mode 100644 index 0000000000000000000000000000000000000000..8e19dd5865321502afccfd5b185e1fcd0dc4d86c GIT binary patch literal 2031 zcmcIlTT>KA6#g0(29^;OFA+gRgt!-Ff}p62Xo9y*mP=(R)Fdy>(hg(B8LFpOG0%C; zAIKl@RjW)HlhVpl9`YCBZ&AOQ-Bp%sRV)i1wtLR$)8{+qJLmNN^ZJjM08V4cLYqJ- z)UM-2USwq8-0|gVXdD%|UZ5PcsVY_Dg#piuaw?(L%9pXiS@WbHx=!@KILp#q)=JHX zYs$Bf64-NB-j|Lq1J_wxy{jrlAZ4T*@uZX-(Wmc}h*%KlE_-euO;sy_scpwItzt7; zR+JNi6Sy!-7hRQg&tKCj5V-k$t1BO!&ge}oH#U?eNau_fcxF~$UuIjBh3tyJ^mgqB z#U9^G&5^h?+Ofw*5B3VQXR<5ZAdrm?bPDV)u@(!}d#g$>%T=E|^_9Yk^jD(Mfkg|W0?Rwu+Kpa_gZSLW31rxLo>5wwP?M%ic1vFr>-s_uayV%r&!W8#xp8Xa z6vi2Lpf))p`x_p%OisbV7XrgA@@N_Z3#ZxpEv!Di^Eq7g=1*e^XDys*8tk&sUf|l8 z#yJ7&zVxeV@s7ZOOtDTwl0?m_kj4Zq#NEwy`X#fY4ce$mp+^2z)K)l6tZ{JT@?5kr zi%ZO6T}BH@CD=gU33PbDn%Wc)MV2ToG)vT~#B4aeZUQ6!4=Av!Y-HufdAX5Ht%bBe zx*S$@MP2ja(cVkm-@T^eamxtU#UN06&X-Z7A`2yfA9l3VOFHBmXCBt;%@^lCn)Lg2 zAW?Ng4jpsnUr8H(e5xo}iPXiFhnx5nppZO#5$`_dNYga9`klocm&D F_gfLSF!TTb literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$InstanceComparator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$InstanceComparator.class new file mode 100644 index 0000000000000000000000000000000000000000..3b11b00c8647ca69af8ff0cf7a259f14f4f893a9 GIT binary patch literal 2704 zcmcImTUQ%Z6#h~$@IhTliw{2f;7@Y7)bC6Z0yGOIdk@zy}!NpxA)2KfBo_+fDzo)5D>`Q zPQkET%k|8Xu~sx!ZO@RUf>n}+d?<4j&$3IDdD6()jw6ev+A#8#S+om=yXhHAW?{*Z za@mrbS=;fX)0a{&lyY*)zE?IK)3Y57A%V4{w?x}3j#(~Cr(sJVa>XiH-c^BMqJLQ+ zG-c;y96`i%gb@)qo~C!1%Dq+TESalCDbSj>b7pbbbS(8;+YEW@mP^>_qsRSZgeC=I zdAsTb0sWjfDy#E!zS!3Y)a3uBxIY!gNu1KqDsW=Md|(v z>f$MeL*RmPJ0UREloWf<*BmdJrGk<59IK>MbRwx^0D}Tr&aX)_>_RPSyH8f*xO=BR z#VYbPFACghhV?LwVt-i3d|DV0h~{cpCNru?_NGtZSk^OhcjwKrU!gIKVobw}0wV{8 z(K8G8E7JKu#dA?DZjzQdE@PZFQ-5Z)%(A;~lkKzrDSHQcq6ncZUe)o6vKXVqh1Ct2^VIHj9j_{yoZ8u)mTu0m$}F5H zrUekiEU7*m#~fbQz|>aDbXUT4yn!?etZ2Hdu)KV@uqM#nget1o=aA8{fH%qMBAMW= z`yJO8+|ZH55)rzURoADXKu02#YC=yUVsv^Aj=u6-@#KC*;H2%lT#qb8v{T*l*Ij$% zjUcE#@As5l4pVDL(M%w0DSwG3rQwdixqr(9n_1SbI5|0MsVk&|w)ftH!^##rO{!Gl z{ltj6($&DD&0IZnB@qTK*KR=#%)w$4!f! zgrmkMgEKjZaPkqNKX4I1oTCy0WwdbAs|PqAYTrs0-C5-wpcqT75k(wR+TFK`%Ca+sUf_nr&Lb5Qcp` zGnr1^$Bk@1$x;{HZRCPDR0wQJuZ5**XI!|nWSVSWpXJQewV2Yb@@;6oz) zh&Vq+J3hf#d`cfaBZALy316@keTfvl@_o8d#j@j58aJ^_q#>5>3Ox)^at&{BFGyXN zaf_=EH4fo6-e&50(T{hyicoV0-o<;2f%3fvfxl@eszGRYU&E+Baxup*)AcXmv8|V=OE{eQ0yOx2l{dV literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagComparator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagComparator.class new file mode 100644 index 0000000000000000000000000000000000000000..ad660ca65b77d6daa078b45c202fbcccfa30d394 GIT binary patch literal 1577 zcmcIlTTc@~6#k}NSi2Ot6spA=B1&7Ji^!8TzL1zS7K~|Af)ASMc34-Joo03b{V6{B z?u&^+qKQAi|D^FuTeB#yZL*nj=A1d_JGYtr`TN@s0Grsdkz#lymG1^|5NjT}2O)1u z?TW|`BH@a6!aLG|j7X=2>q(_V$c@151U!_!8=q*m$^E7hq7{gfhE!UpWs+>m!!B1` zOJ&1iI2Z}Yp5ooEPze^p_@f{S^kar}vD9L)wq-{+NF$TQ7{(c<>Xg{-(P3MtCU1v= zVYV(k9=5m&%zhxW^y?sI;PsKjodjHE$aG|XPqBP04hwLH@(xWS1~saV%yFq^V}@bo z4L{~?$RppaMOyemImlt&#vH@mkgE89Qd#72g?jD_{ZzbXm@Ag*Nf-^Sg2=Brm`1^L ze}Q4Xcu`+!Wx#MfiyOGfkX7PXs8~Ex9ibT53uC^R#ceE6tGwP+i>74ApLaFLxLT^w z;OUe54ErOicMoBcA$3eJxpVpa4Z^5MKiSaSd%MHCgOPR`@<@5&NnnOPf8o+rOyMa1 zS`^WZ3V9rh*hYn6sEIH*$xPay44w~ZHj?LuQvc@xqPa*gldDH9rBc#E2&9Ok*MU}> zb}msybgX=aOP_mchgPEoUSfjQZ2th!N!l@7#uTl__#?R-BU<^6>HXDH%%0)uuHo1E z{6nk!1=l{nDOl^LxbQOdX&97z&zh6xHVW{thz?e8&_mtodmf+?2JT?F7fA(o ziA#}Y3HRuHnr!D$B+f#KyiS1q!itS)`si4hL@BIdjpza$&S9OhHrHT-ehV3rY~X>F F`2$^6%x(Yx literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagWrapperComparator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter$TagWrapperComparator.class new file mode 100644 index 0000000000000000000000000000000000000000..669ca2b7f624f920b997daef4c7153384ba7e5f7 GIT binary patch literal 2871 zcmcImU2_yg6g|DWW|Cz>NWefe%2$BwE--?kU_vAW11lQ>CN6?sOlCWq!OcvnXO{SA z75)hyed5IztITToVEOEy@fRqb?in+ikK(}!wKdbzJ-zpybMEbX=g)tB`yIeVNDDcE zkcyA;Nb44Qr*9r=y)+OZ!7d>2c{3zd>BS1&jX-))6WCt8o4MYp-A zq^$dLeIZn_RAXGZuiUjYsb<2}HCMTDs4Nr&4m@_BxK7Irn$G;vW9h{fdIS!cRXS=p z*?s|A$tO}pa$Ys05)cmsdc3gJUJV4sY8tilTK-xj4T^QY(UfuIXecvg*MvZy8+kHl z_(4jLF&T921qPdZ9QVO#OR zpu9nZ%3q_PHr~LS0{cBB8Jt-auFm=`DR6JRmZ?0`a-(RXYhfW)RAZvFMT{3an$Yl$ z**K090{aqo28+On@vVk*I&4!_3pHkAAM9S778pr1$b{Y$L2n$l(GOc-pvLsO(_USY zYSCTNtcGf#=eFvu^7TAjEW|5*B(P%0y!;f_2^GmW$u5C2<6A`3+;>UBQe6{!%SIoH z0)tAfhEL>tydss+Fe>70T(a;E#q5s#?$&I)i}#3vnSR$*GKiVhyM&+{2BUWc6BgbV z7=4ig8~I#r^#YvFm+3=dPtmVtJ+p(ZogqXb%!)jIE>(+6pF1`#U_d|JwQ&zM#;Fk|wUWH@@%jaU2QLkS@o>>3d{$YK`rTbx(v?!x z!hM1JyHv#g(^j@CqD6RMA$dD=Qr{uxdO7i;;e&oEFK?clQLVCuV^7_D@0{fFm& zX+L>nsIO6%yItOv`4bMSju`DZ9-IWy-8$(xk@R+mhJsY7l25OOt!=Q$sR4pWXdmREi3c-P^2 zN|2g#h2fe@JPm68yiStzGwe@iXE-ZY&UP^WBe!?6zs;D{_+>DM5zJ$Zg-ypSVPDx) zyn>IhK&NztMLs3$3&@QW`9;ZM2ppIuuuoE8=Tcz(<;owZpXJrTr`mPS2;XB&@k`6B fXh09m(`WeHj9=hOjzipC$5(I}Zh<8<3Vr_qrQHSo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeViewSorter.class new file mode 100644 index 0000000000000000000000000000000000000000..587bb4b8d289e0c545e412bb4a0fdc35aaebcaaf GIT binary patch literal 2303 zcmcIlTTc@~6#k~SrKR-Ux5?NXvFx>BbE4b5pMGMl%BG+SrmnW|mF`q){p&kAlGdc@lPi z{rR%ei*ngxmIL#FBfTZ5U9(P%ndqq-3N(9_YnOE9XvIttd#=_2_#6F=m_$$dE&IXp znsTCDEMs#P4ht;yl-Y#Vew1;fh@+_Tbz3T0kXreXz~kCjuh@xS^4BxwA#l8iEOHi3 z2t4ZPrMl(PkCPa-a7v)OTP+tcfYSn_wg2Ovl^3^-!0CU#sX$7No6_qbZ+}~}GeNP* z?WMip*F+~osToP<**)1#O1>1TsN2c{)#T=X_PA-QX!pInY;6Nu`Mp(NwSTp1p&6`e zN8NQzLsxbTx=V&;f#RI+D?RJUFjS$1s{%bGm?N@VUF`Cto-N!ISm{v_cjw5+oSF8% zqqe`B{XL3rIxhPt%>m#z_EQ#P2OPjbuGqIYL}?CxWUw6d^o7qTPi8I} znXP6%pd#=UwQ4r`8mhm=u`f7cR5kM%gVij>2Mne0I{lgf(lDSEW(u5Q$YFw>!6-)1 zz}Zd`Gciz-1R=RU(n)NZ9_M&7V;kj{N$Cb^7(<3p#!=^27U#L&5Ahuh3uXRz^a3vO zSWL^M&V3fRHi2^W^Y3uXun{L#=vYmddMBAm?6s9lE}_`wiI^>8=_5u8muX8ejS1>H et%JCNYkYt*_4QnysS4cUdXjpIdYbxnCjS$nucS%< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.class new file mode 100644 index 0000000000000000000000000000000000000000..e890ac621e1e5f76d16b912622c47d8daa6a69a9 GIT binary patch literal 183 zcmY*TI|{-;6r2}7iB^J_(8dQ|z(TOpLa^V&m-U5Z7m|&5HVY5np~MYVHp4JK=KXoT z0BkYKkr8&GwXB_X(Ri+%DMMuOR=u!1r0SyvpS&o1RpWx~cz-kA$}vQ(RoWb5!lE&E z!!GH3DjTUHp$PsLB#c(;3t@f^eOt*voe-A)Bb%W=C8TV+22k3ZU^+152{RO56tgkz literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..acb86a8b8923b9f01eab4b88d39fd1298dc1026a GIT binary patch literal 3942 zcmb_fZC4vb6n+K*fe>G=B8TEIKxoRD5~1FY6|)8O@{0}VKJ=a+6EPL@)W~B(d5KO4K{;4;pe|- zn7l%;HD#S!`^2m$2u;|Bskq;2|2S;OXe@D?n-!s}GCs9kQ@yx^D`8w_m~Z)TnKM!L zVj0C%yu;ATv-yq9#e6!$u+Ta}Uze#q0(U)%ckv#>m`hiU(4Ye`tWLDS%-h^ioWfk= z6|UP1(|+d(j1NOsp(?Zz!#{3dc~KMl7FVnTTR9M=GPf-yZB+IROV~WsmT$ksZHK;f zC$&0G?@^WVykU!7!Oc{BJB(3=5t%skhtt$UqiQSb#zD?`ieLnN5!}RB7`GTk8`n3H z5ydzrD3>g5yB-*B1as&vanMXM#Dcu%)B@Kch+|3?|1`sRu*=i1WaHaCP#9EloAg94 z>55*`WjuLS^pYM~$y#bPie6GT(uTe(%2oP>N^zb4P!%RGMQ|H;!??qckVo(r*b28S zwaiIUy@x1fagV5?Y@(VLdYLL^B6ljO?j(st)0Cv*<0$Uq0p&O`y~$rtj$iRJCh25F zih+|c^^tChoYXb*j7~B1Sf21RWLnR;b2Lk8r;~{}>OoxRCc|RujsudJnt{uq)1&fg zg_^--l9DFgda%T>{r{yyjU9K(egd)1?W(D79_|x_OJ^XYHPy0+Z$kq)tW95n!-y$7KoB@$E?jOGApVUb*((U z3}cPqwok2`Zyd!}SZ9bVWtJDWa+^=rRv7O35q7>CibDS`-7c&>uK_Ydg|%o|GBVCp z;*oDZZ(FA0j|nVg1!+=6)v2A_^eC$pVwvwMMfXRip~zK)?o1`SH>*_qaTw&T^~+Uo z6-L1DT@;(xV)&^QC9SI@4~@@^Pc;1r3#ek*lAii2Xi%e;2T`LK#s>}3S>vo3rZg!< zF^G#4nhm3B7WuM}x5rp5`I|&v$_T^X&A$9H@BAZ^q&pgQdXM(4_n`Co-ZcDo430j@ z0!E32PWp7we}gEEbfc#4UV2k#WHfe79wYKAJ#^3lpxc?ehJJdM2DAVJxIiQQ3&2JC zmd2mb*g<3OOAP&nYYe~8OTB|($H7&1k>`Mx<9)=)l*veXt_~1#(8Ut3F|u=v507x; zHR3yo&SNBolCLmxgpW?~4bX9bTj;|WIU9GjnROkUY!kyLNRfNcW^?qBNMnR~-m#70 zGc3@i)R6GG2V#asxxRZSO&c~IX1b1z?h`gLSSHU8$*Kd799E`1FP%f#Mi;YnE;>(K ztRUwBNP4EBmsoAIyr;!INpSy&gKkv&Qq+TMwe(x9O836dO^Wm=QMa KY`^P;x%?mR&TSt6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bbefaeaa3f489e935eae97498b5630bdfd6f99dc GIT binary patch literal 1957 zcmcIlYflqF6g^WarDZLp3Mzu2R%r{ef^Qd0Oa;@VXad?8zHN7hWyp57*U%+t>6?oWv@p;3|$Fy zpjSa0X@-uhbnPk8H9lLbR=D>n| z|HrCxn6$PeHO@%Yqes%FwUiiQ%i+B;%$`K;M<_7#AIzwFZ8xiS{>KK>tw0Rd<5emG zwz|Om8kJ{J5w-~GS}W()wfy)Ru05h`O)R==p26pYtQq;^o%a>|38`KxIkS#oyS{L& zc^<5|rUFgYqom<+dLjz06L_vo#YQPQ4)+SS?)%)QOd_GvqZCP{WK9E7X<5s(o z(0n)bX2_O)J^8V1DEaYiB=cX8`p|GZL*GPW0UZEaI7_xd3&|aQ=%<$99L_hP>I5XA zhCbp#{u7d)F}#Co5&Xc|JlV>4^eb*i;0{ROG@|r qGV)2_7H$)rJG4&H2uJQVPH>OLBDjwS)J7@y9%7n$@|2P;{eA-_=~_Yn literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.class new file mode 100644 index 0000000000000000000000000000000000000000..511357d687207630245f19b00cc9e5fce4a33440 GIT binary patch literal 10764 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 Je}PZ_`#+X~;@kiL literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..d68dbd6b66953983072ee5ead3c024d2742e56ae GIT binary patch literal 5799 zcmcIo`&$&(8Ga874lDx_j2PR{XoBI+k{C4!hKMUDEf>Qr!L%{Ma#%)pcgW1Fh`rx0 z>AmU2v`z1|7uy({fW+tNV}EI%wtqo?>t9m)o|#$L%dA3EpGTS7Ip6nw-}io(v;X+d zyMG4oINsGzAuws#$(ZSwj%#FM3n^pHa$_=+G&3?LFUmyLHLVQ4xiU6y8YwI3#3t3# zkZq+$jin_slbm#IzDTZ|oE{!B60T*hXs8ruIA>fiVksk&jE&EolL=SD4uSappsrZF zK)o%UCE_yY%#`V_2y~Bx$W2(bOk49Z6`Lqn-Y2l*sF^X{et}3^`;0(koXet!piV~( zq5?Zd=zy_odQRF?##~AYG>%vaBQ;~#rg{!uR=SI(BQPDN{k=MoDC-lpq-%2y7I53b zG?lfpJ#2M2E-$Djq$};TnK4w*b6Wdqup4_cGzs*FI5}M0U;%XkTIhHHdj)Fb@Yv+k zz*u}x;Mmp?hKlT~CAjzNco5A3y*YOk^OMh^rU^XXwp||;5Wk#Y!g>h%HSF6C;me0W z$HRC;;66vXg-oW++hoK{4FnG8&`>QzRB%yP{IQ`&v)Ga5Pt z_Nh$BH!fwYSXnnVVJ(k%cTsepE{Y!XYKRH!FJ52b3>}Z*aV7_2>`M@Mq`VLPB_5h5 z1e(i9A2H@+DvEhU~Z zkRipjyC-ACt;~X%%<>DX%!GU;Yua)?iatD};iy2TGA6tsrKRH-N$JE!gBu#4h(pSnU13Hc)E}+rpQ}UuKusdus`-4a@8XkA@V_p(NuVfeS zMPT4PQ;yxpw~y5(xiV&?*^TaJ-6}D&8XppP`CbGqS0{Ysb%Zk^-K?FNT3I5PT?Js` zDZ_E-iJD0>$xf2Bx#C>uilbZiODU_$*4_R-4bN?7sM)&g9L;DFTmGT&#=&tZ6_fL( zqIPW1zYe=Ht<+?lz9@_Dw2m1(FYrL&40FnGf_cgtO3u_^7B6ZzBk)*ALfl!8jt}D_ z0?`wLLj%(zQ)kD?i-TeQzOxwm@~ps-yQ!aK-lb%Tu{AJ|&@d-(_-+zP_O>Wu>6iz( zQ#Cj-F+L&iHVqd1SWhE%~g>{lfn8CWbn z7mQR^jxQ8dE`MYWuUrdwMV0e-6bo>4xX5y#}x zGfGRSIty)~>I-g`>;2EL`?n>>hY zO2~cH@ojvErO3=QP4Yc#5<#K|5V4%RK?R44QI@QShrN@#RfkT8*X9y(DRoFgvK}o zJ9jn}p45mpIITThq$RWkg~{xv)Vc+p7@fu7C_{XvGvGL?#d*iWQ=tI2J)gF--bcwY z4r6IUrE^OWzmn4D7e9KFv|8o0l|SnEEq*8P>Q*MaJmLqD3V9PkmT-H@j>@Xty``fK z?RT$k0S>k0Z5@r+MMq3pSvw(zOm+TlE$!4Lv!%)mfq(u#Y+)tz#;wgCHSWTe!h>1p z(I(t`o?W5G(>}#JeK?bmwl`EsW?7}mKkTQMBK%*){}t*i#~*a+c+cN1__vl%F4-{MUL>iKtv_wqsPXtW3FmMNu*a+*7D zqGNUqU90H6iG#D9ku@A@eDVgKUd6FZ8|ppbJwzJgxxd#__=GQDLt!&cV36V|)KgvI z-6_?|u4WA3B$W!B!f*hhmshoZN8<;naMMKJV~6uRwqwI%BN(MAW877NanEzzfs{z& z>0%MjN2$Jc;VVjyfk|qFWWCNbCeJS?=z~Gx8)A%4;#pod;~x*8e3pB<5UIV* zGpo>uDN>DE{?lOGR<2U7DmPwf>;M&Njt#*7ollAi#}%Bvp{nw#kLz;+Bc#rk1jeqQ zxqBU77r2GjMjOA^wT>SMtm224)oOnEiNNc({~ftXDU}}fhdo-KCidq@oC&gXlJT3u zAxz^4?~hTtvco6a@xYE4tN24P2%aiE zSm3rcyculkB@C5{4IQ0bw{WSOd-qnZ;##r&`MVo&JxuAPRs5+K^~N^R^Bqt9YLGr_ PxWQ*ty$l|F)=~3cf{2&I literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..3ac6ab06ef4e99cfc781ab7c8273c409c1846818 GIT binary patch literal 973 zcmb7D+iuf95S=YFX+qNrZ7JpQhL9tqu2hK^992RQMU|=|5t9erHqK-_mAxBz*Dd)5 z{)h)YpdVE+c9U?iALxtinK|A$bLQ;L?T?=Ta0D-#up*#uGcC!H^UBCcqDIzBG@1-b z{DyJv$r`SClw(qf)lLq4#-W~l{BnAtVsEoq6CMiKx>Q$6Cdz2}X>^IP7qAg$$k4?P z0$vAa|DwWfH6@@mAZ?V-GZe5EL{Zp{hM|DfQBKKN!1v&+pp9`tQ-{)BdwES`jo!(= zO{dn8$FO>CP3GRy_b+%tJhz@Egjv`f3P}Hl4bQ+Ml(g@qc1^!c9(1AUxk_20-QZ6Z zxkg5_Tpb2}Mpn^8vnj)N{(|)r3~g>7w2~-WXN62y&~X2P>8lp?!9xxmPZLw+pBZNR{@QHnRNN1%}jW=sWQC( zS92;018AJc_^wzwpg?iw_Q2*@j3-od*k4HY+qZ{>83puu(YvZOhBdk4Dy$)ZN8$?w zu*SDw6&f5jIa(>>7POb~Bd)JQ2a4OW0h`PG7RTH0xXkasZu#DWC(HUi*Pp^cdFHe7 J`F!5t#V?uiAW#4R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.class new file mode 100644 index 0000000000000000000000000000000000000000..97867c83568606e5357c2bba11b9f920cf8b5251 GIT binary patch literal 5950 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..8a9ecd8224b18e059828431b3b02addd26bbd179 GIT binary patch literal 2542 zcmcgtZF3V<6n<{rHcgi_iG&6UmZH`q#NCRhXewG-kZRMGqy#G;oXzHTSxk51zJUG| z{{_ARIy!!HhTp_Ep1ZqwX(x4@DcYHKx98q-p7T8CWuN`^%kKa#;f{nDL)&%?)pSkQ z(=2tbr*&*k<(6SuT;*SL-Sz;%Z!`5*SCqOYwUvF&h?0&J*Y_9AwymWVCgxm5Q(=zG| znZ9H9x#OAKWta(X5V@Y((E4;d)iMoB^L&Rh_yQ^a;^s?SF zEz`To5HDBS42e~{%O&IwC>b)E0uhxVAuZUD^qc;EhdVo3r$-D58@8_X+L~jE|082+ zIS8IX93>g2kd<(TAs=WJC~;GB?~xiAoJL8+KPO`f8A`*uXOd{29gFnQtwPLC7@V5O zruGty8BUffW1<&PD{A=-L$SO*;c5o2;dKd%1A0LVMzxbsMukCoAOdae zF`POWVo>5~T*Mm^YLwkbB9cdj0+lL6xiBo2$MOt&ygr^!WJ=>r223M~w`82h0@XTd zN20*i8DjlD!>wZpJYh0~vMo>3zofLICMdc>>A|>;bi7?&f8pqrc80oWS;hyTmdh(+GbDqW4%=xs?)gDGjSc+6!?yoz%q8la zO>Lj2L506di$samuM)0bC0xJC!S$;|>sJ}AU*+hTQY-?<;8QdtY%p9rdR^^v*VPQ} zs*UJH#wNCCAySs%;2rAnXd1`6d^n(4a$4iA?wEb?fk>mt(D{!Tc1Jk09|^e0zw%9L z?WW%oJHA-1O#TqGY~RuO4O1-2`G1g5OnqX3Iyg?hNyKnQtXukY#>84A+jQ_Q(|Z~x zkR{6uS!(nYKk4{y$o+uAck~{^N&1_iCs3d$ITQmc=q@ed$n#o&1mvoZF*~CMsD)RgwZ!@C*x*3XF>ZLMUT$C?oAGy2tP_$r%=Q ziJl@zs&MlOJ~}E$l?tN`#&G9)-imm&be)L*&~5%l6-F C1d8MU literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..b4e5fd1174b3fef71289d51e32ed01773c05b139 GIT binary patch literal 907 zcmb_aO>fgc5S@k6q@^EeX`tn^<&<1lsn;N+D5PL1wJqC;1RScZJ+-zn>vX;5y*nv7Dgz3m5IyTa8#*O$ngip zrIEQJ&LB^u$nvz{ajp_sg}JXW!7Iv5MvGtz));iI#W%q-p;GQ$USn(+Y`dO2zVHLj z9|zGV2F#%tRoT8~CbAOmlPVI_4aU(la4%-V$#hjUbccTU(Ti?X98>ocjjwZ>X_P0(;Gox^taOJ)OO*~tPhry*b5g+^wfV_l z+H)p%yt_evwv=VNNGwSILKZzm#?Qr^G;M@3Rl<~-WPkskf7_VCQ3g}ggF9FHj#RX0 zfv)&U8g}UKJr=Q+b88F+TNF5xm?bqY;uz<4+x7C+dQSf{`GnE}yeTE^Hz+eZZnxL} z(imX*44YwI>KM;tM*R*~53)4g8~b+aWGt|bcmPNAtrKclTS1%fMgwmWe%QcUgtr@b zhwyF#cc4x7+k^eehL7N&I=k?gIy|X591?$2^H1yZS$#f-7ghdCctyDkj;o53f6oi= Aod5s; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..839d83b0a35e7740678259c18baccbf3c858d69c GIT binary patch literal 526 zcmbu5%}&BV6otqbT`+B}Vs#b3-=uN9@3wq1y`hsqNY^rVSST|vJ{>R=oK)i`t literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.class new file mode 100644 index 0000000000000000000000000000000000000000..7b1e197409a3ac7a754246d485b9c00daf753c0c GIT binary patch literal 2961 zcmbtVU2_vv7=AWMyW4bW(?DCKAm!5}O|!J3P+AdasTBGJ#VQ|y+vGG|nr=d}si3Hc z`WKv$3+2umE^tN*)zM3w@rQWr4`9^i>~7MeE$R%DnKRk<>^aZ#yzleA`} zkrDHJH)EV$7Pd1rcSEF|8QUzB7V?gYkb>D4xqn2=o8_D{U4U85(=W@ zH_Tx2 z=x9Krg4S^goGdTRiQ+|bF6YAK(`IhgEL!r}4~CottEAxS_=^bs_k>c^maJep@+^cT zuV7m&zEPZt?Fu^Ar{q-G%4I|`OldoGbfH5*n75q~W`+q1V;6R-c$vD_AJox}Jqpxi zGglT<^9l~uCe*9>;3hP}=)^vmT1{de&~Xs2@Oom-%9|*oAd1dyS)j4!9FOZrpog_I z3k6|k6!g|Y`=#D^)|Wb{p;v*Dl0*z0hoof9$$Q5nr+yu;;xPTQV3x?q%J`ft!AjB% zmo>aj1GrA32}iA*BZ@H%M|o>p!!ZRN^?N7NX;E-Wd}T;MbF%xQnT>ZJ>kT)tax;#Z zUYsxsu3x0>4#=FJ&~Z}o3emPpGBB)T1g9xE$2N2pTpnYR>{~j{V618ZnLC$fTg3wG z)to_q!7$EYLdCd(wzXQ0*^bDHqAcbldDo}h-yCelG%lz(PZalL8h`Egz#kX1ngN7uwvc6BVkVi|04i|F-jp`|XnQPvr6y-Sh=#ig0&%u| z5chO^j88b}X7c4?T6Qpp=Jw6BOG{u6`z*+>BR>Ih_;ZzC0!}clO?;Y0fIlFTc#Lo& zy5&c-CVIGh&sYF$T%!naZRffbVRWFCvnR?(hj)(AZG7Sl?){u2e7D2DeUaD_x$kFm zUP`Rsr6<_=7<&`y3ihucmWXJTKN0UwG|BJ^Qjd7ZgYV$Azz(#?0gs*7&56>>XGuZ# zF83*f+&4T~jt@LQ(7yZFDe_|pGmNGASXqU$k^PjsmdFidf8uHe)+khDf4+7p~z#Z&;lVVfI> zR02=YDTyV$bVc9xI8Ag#vX#^0?p_l+a!)Ko9Fl?IgdUL zf_~h^VOL_e$G%$Ldw2)$Qd=YL;1bsWq-;9!8IGvfwe>I!!cUK{{wwZFTlGnbtDyH+ zaZSPacj%Ono>lPE=W2h7hR{Pk-%xP>?>~YMc_`%O-7EZ2k{MvukCE(A7#MQNdEV>u z$+faBORx!@=V@sQFH+z?NwNunXNam0TN$`nHRmBdNpm(vi%;OJIj+%-o~S8wqYtFu zLwv+t**MpHh3#tBw`hxKT$>{it_{J5A*sSkxz{}-H1TPse3ZR1Qlp@~n%;Ily}p+u z(>qnB2A?F;2I=1QM9hv4F};#Fj^k_y%KwCy=iOKACC^g--X}d)KlOHru zFq-%S{87d`ZCO?pjR_z2cJAD{_uPBt%>MlK?FWDrtmcto*mHeTw*o5&xufsfyy1qr za7@b)x_Bp=?a*=^iiJWqEN;7Ipf_E|u%d0<^MxVy>8znYKNL>*(iex8+YV|?*AsbU z80r@(|4i)jwk@kBC>tlx3`HRUcX&%MRJPypL$2H0G4)#LTaLNLkb7)7R``TrSm_O` zb%xA_YlsrkxKu_SWrnn(){9{1FC&W_!@xF8w$pAkgulxhb_C=$xn1YJCH-VG6CPLr z!|UyfjQUR|X_`J$5DzY0fb5!KNKt#I%439~dX|f)ZOb-zE+wxaSGSU|2ejx*psFV6A{DhOD}}R4NuQL&VcikrEUFj27ym49zl( zbKh*Y=mM2pZZ1x(Cte(%V^9OBp!H@`cwta;xECC_VW&)2f+qV`%1|-HPzc@l`Wf=X zmlQ_ss>a^1fv+o7$(Wik}r|Vam@soVZMX6Oc9Bft1NuQ(rL9^v^&w2 zo$F-Z!Ci_<2JX{WGLTAtkT#k;&YbC*IMtarg?mvB!-Gx-I@ORJWaXe|8<^{AAlqr+ IVFdQ*H~)rb8vp>^d8F8(}1_tYf!|lE7C{-1AhT zlGG2qMIp~p=>^K~N4>=BMq!}Lwl|1nAdeXvc)RL}3=VYQ zwmkNS{j`cHfy0+U&w(BmMYjH_EHEP<%P@W5pGbkm{&)Uk-|PEf&pSwC74|j-rVVL< z%3T$z^do`!)?`@wP+)2+3S8R`X5B*r_?|gGA{Z=IckM>_i{C{070j2uW&|$uWco0U*hDQ^ z;8LqSnW7U`Y`lhLff^G&lYYP(t>T)%;`lw^8>)UFV++>><_fzQ7qpr+T*YO*+_doq zR@n-FFpyy&aQhtclT>o>O$#kHrP+2hR>#Jgre>v4)@lp41!j#Kvbq*LhTn3U6wICO z_xJrl-k2)&Xv;gh0;~V)uIPw5leT5jjnzO8r-i#T?q2Gs#L@qW zOdUUQEN~QT=jf@!!PR5xGSlyNwjuM|1Pv}anHGX|=B7lpXQ_Ob6bJRO)&oTFt zNoa6wV2bM{uJcSjyw&&&b&>w~&JaJh^J5vXj6XR2o0>NoZGW@TuEdD*rf^xo$GE=9ltJjr}R^83|hjsk83zLdO+tj1ZVE2yB~T GJAVV0%a29? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.class new file mode 100644 index 0000000000000000000000000000000000000000..f458f831a5e2dc53505d6caacf50638ecdb0e337 GIT binary patch literal 2852 zcmbtVTXz#x7~Q8yGijL8B&8`(q0~!BdPyi(p@5chtEA-;ta1^YCa3Ap=_DkR3W_e5 zKf<--L3#6q2Ye}1mpz zkc<4bkU1x9Suw0^sd#bWj?6nb+bCC;N{)u0!2IigoR*75&2la^u%_z-1VYD6+jLF} z1d^$Ff#7thAR`E%OGhU{0zFxho2#uX$jVh?!IA>;Y$Ol9vFt478$>|!S8R7|@#sUarNzcGBOW?BVVi9n!N$2Rl` zM40WoGz#1lK?2(~^b15cZq%^@I|Z~=!>Y-Pivq*R7EG^Slbg_pAc{9sC3gw*wQlig zrsfrwK^=QAL|Af}R|u3>mKEo|+BEZ$v~THn8}G1zM!78Qg24D@`CC|ekbVg!!`Lez z(u!b8$A~IL*eQA6C{ANK#*t>Xmy9YonFXJdDcNRv<$4(VT*j_xX|1!S<;Y4H`vr!I zo|PNXseE3Rooe!`QB3VQHXi9>7jur0U!FC}u7Q-}237qJ>o}sg1lh(F6*#Kn7})iY z#WUqBx!5y`;0YZk@m|9Ys$MR)Sltdhcvgl0lMzf|TEi)UShKG)wj+zOq8fWzAkkiC z|K;QsoW*$!=ZNC&tf$m5gAYiB{rZ0^`0fZJ%N=7%d$`=_ub2_oT6I0!Yzlqc*~Pq2n5^6WC;n45w64ihW_ zO~v)MI&R}r_Qsa?h~9qge3fedf{whhjz;Uuxt|6VE_Zmk+7U^meW2Vg*N4hx43D?e zrrxHL^oPb?%o!^(j62>)PWvM{?TzHLHX~`Mg_^)v8gH)y%BF&{0BJpo>hsbGE@dUU0K9LXQ~k5o&rQNXN3HI+L9> zrB(2>*93Sp)Ev1Y@77EX{3|s}o!Gu)>PAcDe5f!uVqzOlD~Cb=U+7rHXPl3@Qmv9# zr<SRd^*58iJ^1kDZ)Q-(SZoB5#E7b1UZSfaHV@6 z@!riRYDN#QD#0?-sst0iAbM?N4e@8_dy0V(Z4JBE@a9M~Twg@JMSPgyH6)*KlLwX{ zAE2K}w{xoOz#w*V!1cEPPx!!!P969>VHI#UK}R1V6wf?~PpG5;SHV_S?rw4%1{Oy=uS(8e+@|XE&B(x09Go4{9$|WH4Tsk7?)NxKsN>P_GrYf!GadLH z+uT639(ay^RfRFH1n~==(Aj}#_!0IuvLs(=(^yl=Fnb0JvuArLBgs{YlXwIdSf$HI z)9@L5jR{xc9*?~*kvcGoIcf{x0WRVaE3RbIMK5qfL!$Q}Tg;z{ul`%USB;-g6xVTC zU>zR{WPe1zij1z~h6+*pb94qD^Vtx1_|Kn#$J`Wj>+Uu45aKw@pWqRaJw$p(U2+L8 zxlgW#WiLPydXc-8!@Nk5D@C#k9WM~qaI=?zrAFWP@k#YP6gQt?x#=S1Xy8OkqeDKB zz+F`MR`vImudq)W_yMtKnAa`QD6gG?$3dmSb5ERVz<*OGPBGy$Z8z1Tps!KhKEJ%a zmlV@#gXuV*6sJJk*+}zT3(Y`-CQr3b^D^<()&$Ew`W?E1zanuh5Wkmu!gKn0(;A-3 aFHl+*F>-01)r6nbXBK0+2Ta(3FaHJV8;)fF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.class new file mode 100644 index 0000000000000000000000000000000000000000..da439154b202716ebcd9f521d5c3ee9fe62ce597 GIT binary patch literal 2890 zcmbtVU2_vv7=BKZX49~xX=qZk$cI2lzY2?#64N^tN z@kcl#7s{PCT;NTiI(msS{t&PI0gU>b-OX2Rkr^g4o89-E_kEw|eV_B5KmPvtHvnV! zN<*7Ku2?Rl&5BuZ3_HDO84E=xE$xD7%e1^Fb5+MI+FWyFI&T_Qu~13pigw;~&FNBE z=H(*y=F@YsQsPc?!L&?g_0qy^nRBwXQK~Ez9SuQ&`BzDFPA(c%%eh?7H(3KA5ISkv zrZXWBNDj;k1SgAm89@LYI@%Eu=$au+cyTCC9@(R zr(XrO&K8hJWJkibq2y#mpVjyhh$>jK(c!>Yl~ZPmu={l!z(F?AD3zq07Z}+reiKSBrC);a zFb)Zblma-QV^EbM>=eB{3e&KT5v17hC8I)2X5PnSO17GMxgN%0R=C_EUaIW8X*seS z#+X2Ii^Vg!oGdw& z4TLP7G-t_0l2LHq)iHrnb#bWbxk$Tf;^1+#(o8TO!5K_yI4jWI=yJw(WI>iyo6iX( zT8r*4j&H+xOlf$ZSzOOrNF5nmAQX1*|ApaeC5&l$3@h&8QoY+EBe1>VD!3tm*nfKH zBAL^X#Z{JKS*~VP=2ogSaoapT((qvmU@qvmhU-jhvQvgrEGx#o%3Mwv-_8IxaZAI; zltF`WZB@r7_>{e|{LtBr+6>hywpM4b^QN@& zUJZ5V83BBu<1Rkq^vo8k<(xY7 z9K`!xSRf@J>?4c-?@*wFZ@gsq)cBR=KQW?x@Cm{{@udwBKGibNjct7D-Uj}6@{82b z#iw#!W=OSf^cO_04Xz>f6!9nM8`RdYdkt?6M#Ht2sP_`G zc!pk8g<-D*v5OwjnZ9WFA;#)ak}u^n+@R9WegXU0kOQP~5dHie!y#Pc&2a@o)cr8N zM#`nQ*F*19BoEABmfS+Pk4w1BiYwYw(Q_Qrkl1kqL3P#m?7!uD8`nn_#C2Q|SjPtf z(?6nDS%%heLz&3^8QO!7_-zP0_~*~SBRU1$x_iwWLyUU}@VFV*)@%zTRFhKfA7o@i=x$WJ722W9#w zx!&>_#ao)xh)#yvpw)As91RFiIEL>skP%21D>YrCYl(;>*bC6<@L3skXGtQ zM|`A#n6nY)xh9x_I!vBwALbS2S0ocG`_Omj4E~D5wLt7%_A$@s=M8CiDxV^?3{UEX Trl<)&s*kLj;qEhF8@~J(C(NN! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.class new file mode 100644 index 0000000000000000000000000000000000000000..444e5cb0731df6115e108d3d3ae2fc293d18e99e GIT binary patch literal 1220 zcmbtTO>fgc5PjRE`7kMkPznVK2_Td}Y9kIDC_+L-l`4e_HB}DWHul6_pIq0I$oX$Ec1 zppOe^rFrEGt}dgu7SNR$`X+7_jh}K{NjsK4EcM;akem5wflQfg<962Z&WypFd~3OV Nd!hZD{N1e8y`PlgIE?@R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.class new file mode 100644 index 0000000000000000000000000000000000000000..6b1b84f809578df9666fea6ece305c0e2d0cf1bf GIT binary patch literal 2147 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 NM_?o&@K`1L<{ySJ`2GL@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..e9a026b023696825d3919e6bfa7bc7be94403194 GIT binary patch literal 1679 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..c15438012bdd79823959301ffb0771d88226fb4e GIT binary patch literal 2033 zcmcgtU2_vv7=BKgk4;=k4JDKUS}0GOKo^y87WZI5i)bS$cyzklf<9R>x_xrbh0l0x@86*VSe$cU;zS9qF z&uY8&wjWy3>o}gYYm-}cl~hP zk#6g8AX~Cc8>F+}kC4sa0v`{9@m?Vz%u zK74MXh>}3s?)9YC5?CBJ8fWOJ(HL!2nOHDU!J>c>`jNcAbn&Q4)qurRYwtSM8GIqo z`JdV%hb7FbYTPuDLRwL`Ok|K2I9=mZYz}s|W$?`2cG)obn%}hDh8;MHj~|m^*Xav% z|FcH^=jl{^+>x9upA)WH&A?Xzll^h6Vvb>aZQ>i1ev{G%r8RJ$1*y#G#x5FoAdslc z8CVxcl}eRdR^{Ud6ICo4c*x%66Ei^*!^w)qrOra0q(Y{^}mC z?V+sX#-Fbbp9_3mdR~5w>3!VT#qy9XXm;ff`bywSo@MS0;2iy*AvKLDoJ9dMxPbHg zub9OKsh@BW9qx?Vlq^IzaR+zF5wY4fj6$d~$I<-CTyR6-p@NoQCEoHL?h#u4TOJCO zqSqq2py=-+dU+4uD|RDdS0a{i{!VKV-aL_l`Ch~otYRMPq!lhR@)+Y1_z|@jjm2A` zNzw80$dD=kxR*xCsRQLl$11NJR<0bYyos&Y^DW-0s)>o;)T#3wxm_B|W#S;02|UIV X>IgM#v5j%`Glv1(JQl!H?X3O*zwYv$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..fe4ebb0e166c0084374a55aafe964709ec857f24 GIT binary patch literal 1092 zcmbtSU279T6g{&Wn>22ky0(q2TCMeCH#IK!;7i2^BZWW+fk>dfO?D^Sk?roXA7cNL z4+`3Xfc@X)j<3^z;i?kCbQ7n>7iqsi}JWh|IY>)@RFcF@ZQVVZb z9yqC@!Z5xJ)hjXOd64~S-Ti$HhDykf1%ugt%inP);Gyq~vP6ddKEu*;8OrPh!@9Lt zw#NkSMxLlc$5jJW7!0~)k84$$QcW{@6$>Ugr9z*AE!(8B<5$xA+kAc~$(|rREu)$EvqS7J;gA^P{5qN{b z#TD+lB37Ez(>fu8te*Xb5VNUJhV>ZgqbN^YaUhiyyZ?TDPn2@(kefQad@@#9O0hy~ zQb=)`c0*|N0jupZ)Z1p`3!3dc3ZE#a;TlDg5LBnQf;wfIlrbr@QQ~kNYqV1*RDZfB z)~Qx@?-I9S-u#Bvp}Bd6o9)kNp5nH-L*W#=AE{WYQ#i sE<(4?LG?NG5i9~IrO)WElxq416$@=8>GnB2+FXwY8|{K_uQ>ns7w^ac+yDRo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..45186dbb9846f65be1c4695d7f63f0d0c0837df9 GIT binary patch literal 1946 zcmb_c+j7%J82;8dSaC%N&WW}_l2X8S0s`7X+dybZnl>dQVZwL@xZ22TXBkEENHSBN zqz};BUeK8)VaiM&fQMrERuZ-vcP1C%LaW{X`2EMX@BaB0z)d_Vq9D);!j_{W9mUdj znx5PVVn_Kc?JGz9rrb`f1E0KDISnnnpcOf8;5T$acG_XkR$;7FG{u*_}JCc!FVT44I9zxy5SHB?x_r}(^x&zPR05;o4^ zyg>1VfxOuixSYq6)^M@f53z(P%ot>!SeRotsidJ^wDBb_ktEw~rB|1sHt&o$81L%nV|L{+^TwV#)l!_6fJ1AV%EE1ejsBxnvGAQh zVPV#S>Cx&!X~e=^0Xs;hc-fOtM45X6Bgs7#_>m3e8dfhW6k29GB|^s9PXePou2D02 z``N}froc9Vt(uA1NQPpZ&ky6(o8N7g{v;FJ8`SQeV2q>EbyeG>#VoFu47##beafE8 z2A&kL#)5ALozPXQ+SK#Xal7rB886JSDF(P%&BxB*2{Ww8pQFnE5G6P|JZ-*yr%ZwW z2em_-s+Gs~QBKZ@+WbByYHu+0Wd1eI9^yiI_5fcT;Iff;gW8ikYawMF;@Uo(zi6(2 z8$2)2H86=ml<9IDW1O!^Ok)9O@hkVjO>(DF_xK85^F<(LqY#`hRmwpA!Em^HppDP+ zErO~2jS2cJf6IgSvble6jypL*#!Lj44D*MSnGo*h?knltIlwA!jPVtnr6Ei)U*Mja z!+9(*pl6tY;@d#CQ&1UnfnU0S9dZodA%m@FY&aoa%qb6bmDiY&v?O_D=cw|P|5bi~ k^-TE||E8XWfj`Zelp%FHpG$Y4o9+T0VuLyYn~D6^dz;4bTmS$7 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..07ddd4d1ad8a82ec12eb94f130df2e8a3c00a945 GIT binary patch literal 1769 zcmcgs>rN9v6#k|cy42;iw1CQ01$v>ZSG*Ka0ZB*@NJ^UEziB%yi_31a-4b~NAI2Y= z2pCCx03XVDX1k?LYr+qVO*%6>bI$p`^UXQ)>-UeJ03PCP1OW!ab}G72Giolk^s>nd zwyO)PVpu{KA4Re58n#7euFy*cH|EMBc0*zTU4a~;E~ z>^h<($`q!w+b}wbAjFWr4&1sZ^SbG_La#NcFbp1Xw|GFnO#+nK)^)(zbMrEK=L59h zo0(-9qGdyvr93z5f=Q#cewH=FFH7{v&tB(oa|W+lKT)&DKVu@~-Yy@eB%741uC{mb`f-kBFqlaN&i^_VtepC?79xs^Qh1*4L z=DB0YZ+|o79vC%-5C5zRuk0|Yvc8I-{;;W0Wf>`W!Z1|pa7-w8$`DwXR`8taEx8cw zl{scrJd)z86kn$rNHmAZf(n~PmA*b9 zgaFOUsdMzDw82wo-WW@zPZ3L9U}Qi29b@O1)TYmH=L~bw;sUAt)Hi77SU5%IEBObY z(>O_3K%8P~gfWakD)%@>v4AmTsZHX>@mX==Pfr1KiLX5- zbV7>}zP3bzM3(DkjdkV>FK9*7zK~0UNWUk*ILR@AG(7?mSZ###ff)fe;dDBYaA6s_ z6{N@8oN03oUpl|U3Y|&?+nqC=&a;1YeudY*^AgQc{y^}v96b>mu*o*D0+(V1@CK{o K!?5Prum1r`2gTt4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..a3e843be062790013133b28eaa0cb8e076435a4c GIT binary patch literal 2242 zcmbtVZBrXn7(F+EWC_blmr_J(EyY4!N>{7JT4)t$XweXmgxKOsU6M<>HEd$CVaiW& z#-HE^l|mhz@dx;u9LIBamn5d?2dDXP-=Fh5_ndP#fBp0Op8#&)+bBW;nbx$$f&9w)`VUQS=EEUMJZ-xohS3 zDor)98(CSlT>Fp{u`8f06)U!5yLSb`@kBwOZ?#&I8Vmuw;c?VRf8Vq!0}wc`qaP6s z7X*g=JzmMRY^R}i-_Q|NyKgc}U6$oDk6g8LQHO?zz(|G+XPXCmvYxm0Dy+cBREt)n zVAX9k4;CX!K|$m3muX29VhH1kj<+$Qu;0-!pt8>L((&wOemCw4=?&b*Gk|HDiabG#wlGq-grHN^EbB~~ENAm?p``r^Av6DmWghRXjv zdOn_bnIC52v7VW@PIvQ7D21c=NMNGdbt_G~Qj+x;7I7zvC4tfI6FTnVV}a+KVU^a4tA(_VHPHSMt5%avNnpMc%%`abSWxAnhIMjt z?ed(4&jdnq35B_#Ba53fwp;Z9Vzj`P68?P++tl8vx^WG8){vl6Yps`0f^)7_{BFal z1x6gUibYvdq^YmQ5o6=)N(e2Go-2YC=x4g9_om@%0cMQls?B;)uGz}wSN%%PRB3+_ z&Y-U=nla6|Fu!$CTAB}yqXG4#yq*t;eMp(z>*;N;r?b7DzGgqjhc=86;*4^(#9sYI zjdRBsGscfGVN4!l>KCqs@D^JGeQZaV?Hpgr7)L|6jZr*M%OrirccT<}pbkL#QfU%gr8 z6fj%4?*_Re3V)`J9}8mpG1Gw+X<aQK!T9WtGM?GC$fXG(u}!)&XXaeKIrE(}zyJLB31A+J5+V$*UC&f3-|_>^QPyp( z;sy$LOv~X4uXBAnuv~}s0wi&)g(P}I=%@&pvQHHK)xHFyjRXJwp0ub2(UkkA)L z4+dq#kYeb`3e|x!UFMVRYK40*w2I9cQe{`y>^04^gxp$;iu5zQ>DsX}bCkbCGoj7I zbAut@%;UkFA7x0$Fg3Rp!wAw6Mj2jpiy$(_aG6NbCdlKLrDaVIT(9w*n^YrSgCSYo z)M}bSm0>GoT2tegz*PxX7{-p0{SbX*TtkLokO;L;ypm(^dU#W%eoP`OVTzJ;IDm{C z@}xs{3`5yct_i@_98-B(*`zX3CCo4sPMwu@+5S6boN_!XLjl!cpQh{F_cQYhAG*!< zQ+1%@u!$WEjHo?ztaduHi9uR#UMxfL^px*_fMNJ>Sv9uWrM34z0xWcLqPrfiQYWyF z^kcP?a_6@G%yX%&)3;_B+-o09U7})*ue#fw&X+CGG$v2%__Knx)NhK8Zo9tam@7Qk za19x%XhsR$dpB)5vfE7hA6CEm!GJxRn2l z#21Wz$Mpz)VS0sRdFC5#2){iLep86jcbCSuB)`Kb-iQ7tLOAJ`e;|!HdR!Ul#Bd9@ jDaIYL6DXQ1cf+XnXf1;KctB&6YVIKxXeJIR(9-WOT!UIc literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.class new file mode 100644 index 0000000000000000000000000000000000000000..8fab241c7d82cc7acc51c8f3c6efeb231abbcf43 GIT binary patch literal 9921 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..541d038d0a05a0233874f9f7c8b2fda22bc11cfd GIT binary patch literal 9334 zcmc&(349z?8UMc=-OXm&qybtgpaojU(PU}MQAmkR(xeR}DI{qi1uc`^$!5y#&a$%` z8W2QKDwZ3eTEScEQKZy1p+pc+K|xVO@B&4_`#wN9ME`GQ_RMTZ{59JAIy3v`z3+X; z|2y6{kG_8I{Qy>oMIICh^c(SzUpI9#p+@~fVRg_*__b(Ak7|Bxs}@KmbR)`l3C$nW z)vysV{o05YP568DNGz>xdrI;=PGDCx%AXZS3%%M4)nuI->f+YBc2EFt|kv zBs`cS&^qHCv*@;~frJqs74VwQW&+Kf)28UoZ==AxfDsMqQrI>rosBLVi)3ou{mg7Q>Fba;wF#=^;M|W>ub9ZZ-z?$iE=Ss4% zoXjmzuoTA$9OI~J3J(?Nph>1J##GKugL|~F7O}i$E=}K~C6e)I-)M}6KP1QStzp$P zIlrt|4@FhZ;*9er&scqs7;9?upkAQupol4;=w`ENO3p3kTI-6x86m1>6LH>~Py-is zsWHbrO9zvBI4JOxO~$EKQoA5I0$ zd78`WNorBB8mALwrk1eD2^?EkoAwm)RtAB$Dky_bJ~b=wz$>3x6_i6MM;q38&@NEt zf~P`CSFj!n=^(V5jD$X%fld$3%t?)QI8@LjXO=KFM&z^&3eLjWjQU~PC^2kBeP-2O zfur)(mr_8dI;e$x=)p#*I;M!@3rn5BP)AL_7v~CGNU{x1A<$qK0u44i8gdJP2FJP$ zRz7IR&4j7=ERz?LX-7hf*z>xQW@5cMqBYxk*o5;vIL}>~4k#mAYKH77Zlo4~vgrMfZkieNP zU~+fLluy|N+-d|L!8)u!#}=l3I|rnV!vJG>!K5tgXp41T*w0CgK4=I_{6qv!o)&&= z3#19u^h;MU6vQN+=hIkeCals*Zg7FTm0$z-vUqOwCp3hQzz z}Xd_s*V~2td;DgKvgo41*T3D{`TQ3 z3cf1w=S>)PA?d?zJS=y3ge?eHcbpnBw#FyzX}Ow@u{#ts%!JOYQ8jsvz|O(~SlhD1 zSUq{2Jz`CeX>A4vz*I6x=O&Ytkrve0J)9qkU?~hv(!rF9>X&oo!lqa4{m*PS4|MFMeh3G&{k@ z(%fh{euLk6@LP5VGUg;y75pB5VBU`EVRNIK|4yIzHH~TVKZAWs5lnk1V1}a4l{$9%w3eikFMm3KVC!?x12f#F`~@?X~1!L1mZI-%vA*yPbw2t~nieocDA0?6S*E~!v(1de17QUd|@c9yIZ*ydWP zOwG=;&hae5T$Eq%%#~q^jmlmBTc)O#HfA-B-1@i( zjfI(#|4Vr-lD%Ah^emFyUF*({F7Fk5&u?eER`8dfcfosU?Kmp$wx(6_I>#DZhC}$Q z*b{Il4&yJzI4tB6_B~)>))TE`QI)tcCoD=Ilw= zarQi&_aZJX+l!+P;8=nDotrEI3+zb_0Zzy9)PiKU8Z~@ZYw=r`C&sdTVl7$RWW-=h za=7VqxT&an7)srPShf?T#k)&(lX`KMHr8eFRFUSX!m^OS3D#^em$VpFY|7$TzAWX7 z9d#2}IZ#?Wj+4f)s&?6aG}YGc$C_HPA1$@}&~yN61;)@ZhVGqMIDwvlI!^AZI_Dk? zjA8RGoRb*~*kiR5&^W6$y?h*@aa?EPJH&sG?&B|W+3v z_u!s!e5q~>_mAPBaeQr$oRsG67|W}p)QmyiV&v%}>O9VGp(b@2C!fhIK36+@RuJ`H z$2S~4%Te?i7J6{TD_Bg{*gfafc8N!&OB8vjfD(G=`UyNnWqzw`0*~|lo$mSxJTXvL z_2f97I)EP(;T#S;YY+T1J@A}8@bmP*^Y*|m?15!fzoeA)2k`4+3CdNW!W_sY%z<3O97q%XyDQ}C3J`FbcoyO40mE1TQAq(A%gu$j=n&! zzliI^99%CB!Hwbw+$3sovp5yEh<4m+nZMSyU&_72dc1C#-z(PO-}JH~REkwXh$0jV z>0mNo+V4uz@0dm^o9W2UI6#(x(~7;dbq|O+W5O%rTz1rFKfxLSmn|1E-pVv_0>LCh zS!HeAvIo#s&$Ww6#zc93=+9n#gcT0u>g-L?HYVmtS8(6dD=Ni&XVay;%V1I}T|a-x x328pPqKYcC`OIF@lD}j{Y66?q!rUH-cZyTsur`wx9+W_17n literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ea742c60711cecee8e5ad8c4d0b63ccbdb7c1552 GIT binary patch literal 2013 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 S73%X8*fV&P`K3^zo}Pcpi&FIf literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..104d61fbdd130f71d03727d20de67c13bcca6571 GIT binary patch literal 7709 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f68c9c3f426a7d67756f149750642f9d00e2a81a GIT binary patch literal 1233 zcmcIkYikoh6g`u~Cf%+!R;}-6qBIp;>n9;1mTd(gl|oAp(GQc|+hk;&2{V(bKTA*) z5r2R`O1!g;C_)v51U7f(&V9_DbMAiq_UQ|NJ80EW5qN6sFi}o9FLkn4$bs<*>7mk; z&}+&jUK!12o|0V2!VFz9wuWu8C4Dwhdbn*Vr#+6(x2+kI^=~%H!1h`lHGx*BPg$YH zjuQ8Zi|>>6F4-ATQLN{3?8yqu`H^z%+kBngtnSn0F87pH{=UHTmD#oF^aX0E$!Q(} z3o(vhEpt=$Q7JCfX4+MMIz=vy5D+4#7aRN-+L>J%MP) zOl(FERlxT8-?Vz`h1{3S%BId31s3%d`H{(ET)|allVz<1KL3YkGNW@W6hSq#4NL~!0Zn!JxWCwPxziLJm1oSas9z&2EAtiD6^5vP8yk#fh4 mvc~d3+_VN~;2h3#b`=*mzk-Xn#J0wwyNqkRiuf#a<==M@Y;Y?8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$2.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..abeae704a682855b274f1e82d3fd8429637c2624 GIT binary patch literal 1248 zcmcIkZEF)j5Pmj^O?sYftXkjSBW)shnomMRlvqJXB{UL5^uy+EdRaMl!|kTkpCu@Y zh(Ev|CC*+Vil9Xy2Y0hOJM+xkJTv?C+ovx8+PGRpN#L2u(@0rmoz&58CP&6aq*J9S zqSq8poiduw97TzenMrLl$qmbBTe^6xblT4;p)n#DgqlGpW;kS zEJb#o!S_fz8x1I<*n{6seO8?5%YXpg6_MwCC1ql^UBdM1|HQ0B_-=gNvNi@@`RW!q?T zSyuK{l9HRTLWw|YR-V5xx8<4aG=~A!ajJ@w0#6r3T!_=C3Djg9leLXo0)p$cQPkw% z6a|8TndUJ)RKCpD4r<*SFXf(Og0^&=8OuGsO>S(G5SMV7iRCWW0-yh*e`2E(RZNth zB0nsOcobajWBhTRI?aFQ{+CEU2ekVmJQE&1(wg#aCaopQKgM0jw}PnGeY5ha#BUWf z)-UtwHt)SAXkCBLpAQJ%7B;J1SDXm;>!Z&5kbS)NDArgC9K-QB$~~4IrPg|f;3H1_ rj|Mq=_AlW)F0ia{<6XoRUIl#Sqw@0|oP~C; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..82ec673d0b3ff7d657b8fb6bd7aae6a3bce6bc4d GIT binary patch literal 1248 zcmcIkZEF)j5Pmj^O?sYftXkjSBW)shV!sFxQDOxll|oA>RX=R*rpd~=8+JFX{wzUJ zMEn8%C~@`@Q3Ndt30!7(cIKJAd7ini-#&c-a0l0`C<*KuJ4lpM&P$!_<+5*lLVBPy zCG?uou~$a(nWrREGB*R4jI3dsY)GFDl^$$b%4m<{vrTJ8Wc`~*MPOsCii*HWz^61< zBS(olVDNp?-X&XC${m1*__Djk#2 zJOqx$ID)wdWgLr9#ezV2H3TenxoJR)C6iWP01A^5!|npq9=!6 zQ6SnfW1G@r7215`FzMcUDfcB4w64?KIM(J{y0zV=D&0QOQoL!+WAqQ36Gy>O}3Lu=g9Gku`2niAnNrXR$i6(siMaI zd0yS+eeguBoA3GW1LC(u%wq5rCxY{KQ0INjIl+4zOKb&B;N%qL0o#C5YrRAC5vP8~ q*yW1P3XJ7R+!TW|a1Q4=yNnB*U&2LPVq0P1UB)$DMSK>j^6xvU26o5* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..19a3c3c4a0e3608e3644afcd96b2169ab819a44b GIT binary patch literal 7077 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 Hob%_uEy*M< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5ee5ac7f084068d084bd38b43172f28ecf864d7d GIT binary patch literal 1901 zcmb_dZBNrs6n-w76h?uG4iV*j$TnWeK=Ebxf@3D=hJ=|V#>Av_mvObUv+Y3thkwLG zfoS4KKlqKpvSF1WUt=fjaqUv(Z z-6wr}-11zl$W3lYeJf?X>T!pm-P;jve4f0>x6q9YDP9(q@E$O1BwDIDSz-uh?K1BK zLzjvRXpbO-ZWRi87(xlj(3_|1t=D$9xbs5aGC4zE-Zpfzq&q^MkBMO!Jj3%=Iv7t= z@ICvYT;X1jZeC_c1xYxoBsp24OtPe)pW*3wi?LZVxho+-MPBvc62Sll6DZ`gjWb+d%U>AO_O2l z3dcFpin?#ELzV-jZ(C0j=`S@Iba5wfND<4&@{?fhDqbu zsuZ}lW0xh?vkXiB$NI@U&#VRRoxn!sPhGPt?qp5fb-9aCnu8(wov>(B4nx|t(W{_? z=$*8?LuW~eq^7^n=Md^ApQl&S{2NAcbBNMeB^gP*h(1~wF5&XAmXBm3Otk55h`l_* zl>-bNVyrNe`i#gC;s;2r&;CHKJkHJ>VD1PD(o6`_Og|X_VYUZp4AOsZ7>h^|9Hq%r zp!V1#8Nd>5lhGawk?VKK!9lvahYaajCjKt4Uq~s4DY#FhheT?_BdpLGrpfRatF()d J0vQQCe*hWHB6#hOl7*~^toTY{`=ogp8?F`nS&gm87G0Kw9-aI-c~3!W8=vv zP?7ZHTj}o@6-Rt#q}Ng+j05d;lbBcURk}1<%GBddH`dC?(yW7F!h}^R{ZMta^z<9n zw<{x~y)_w1-|AaziLQ|e;h1SFU7BGpRtM-tjTJAbNSQ~3SLK0fu51v7>v2ntfN$Nbi+d^S9h*nOnQ~?I zwb&J2D5AhyGl`0Vnswuni_5q|$P3?>T9;-CodH)fP5u6~WSP_6x_oQciEFsw;5y;b z!H(X~=i(+x?50h5TZSRwI)`+WM9NajW1JwFr`j96YBqY+Z1k$%k6yJmdev<7s)vkT z@2K9E{`Sk~P0p7Hy z3EMwAv?ZziM0G8i6fgq@o;wGC=k=EGzkyaSuB8;iT>Or^Jg0G2Mk~=)oOFa$L|E=0 zl>aK7)vZ4R{glc^9&?2DPf9@}N#f-D0?**Si+LN;hz%*_AP^7NL|-2s#Nur52?g%4 zAd0n7zQwD)i6op@Gs53)if)Qu4xSLk4zjVHwRk7-<+8H4cj2&3wKAOiM&yTlYeYd) zns(f>2-+ab9bJL{ubJ9P<{sZop~wC(Y!Td*D3VD%6k1EogUevdw;YX)S&Zggj{gqw zOdsLheg3wT!sOHke*Fda&y;7>($W)Rxp|E7x63k?dJ08e38!(Ur{x{nuvQ*SzDMCB z&NipN;IiHC;kS>tTD-M~iQ;X3?ZJD8bNf#IVB+*1?pdotuvW)YziRB^0$Y5@`1gpT zc*yic?(e6V<8>ZOsYll`t38j{K0h_~DbKh10?XuB7OXG#55^rlE;9Qf6LPGk&g(EM OU&1o)3M^!U6jbWt&O!hMBFnR?+63YbJA+Q7Gn} zWT{-_GkM8-oXuJ8WO1cbbS&4@5L7rQ3e9Z6DmiA-x$Y*fTe-aHI?2W{g-Et&Q&3bZ z?3%h}tQtvLDkP_kQc9s~*2>$4TPd3gFKpgD<-ZmTJD;3&%a)x_H656u8>gmj+oKIM z^vcYcOY}ZBxehTk&L4%{zTb1^4c}qgv|WX}J!|dUm4g)PJZ0IIJFajtw(ZddGpTfw zGs4B-yux4p55Z50Cczt=EauDz0_f4vjb4T0x8%U!yoTLv(x+hDELPm)xw4g;@|F=q z(I=|+DuiO`CkE#uP}rxVAD?FKIHv2LQ#ic6VgCsE?V{{{9U*jTxSPxEvRA?x!2$G$ zz(E~dh-f&ha8Ij16W%k1YeaAeM+NOM4{ch|9zaaTAchp~XrPs|3VpGr{Jyw&&CI&Q zs9~6y)@o?Iu1;56w`fNYM~@gwim}fy3^C7E9I-GytFS=vM7_=vew`=$I!|n_^F+PQ z6MnuY+SGZ%$ZeFzy7~KXzlM_valzTXp{$sWW8_UIIbC1q_#7T!%-A3NVpcfT%s{=u z2b)N#e-d|7I!@t11&t(1cv|RN7bblVDNJtmP&eRf}_G`t}EdUjpq$opkn+QTArQ;ah0zEPltmDG*hf3BTyo>_jf7FtDw( z&nhkTHqq^WRM@-O)0?GrZzGoNm}SnW9F4`=RMV4Nt4UhSQ`G4V;-=Ypy0WxnmLphz zA<2GGB9YaR16A*3(fS$CG7<-3gWI~~4Mk~yc^y|_v39A&uiZTqYqg(>U>PeK3JN`~ zdpc|sslc*x=8cO>+Z2CV!_x|PwhEuFScRN;whTvyiwYI38ik4}iZ->N^(Nd7TM5^N zmIuSQsn8LLL{P$4bbJ+GV|Ey&l4&!(EY())sjZ&Y0ny<#;FF=zv{#9dBxQqy7Bz9Fr`Ni}QK^`55oJI^M$D40L*Cc5Y&3@+`BZU6a~Q zJk?FBKiBb^4AHQW&2p?B;pku3;fdr2xe*=d0>9Gn3SQl?dP1SHvsSlcR;o=J`ggzI z>9~w9ZGah7SlL-HAJfs8AG5_uIcq*_NzU){^J3HAMhOYOf}XZHz$Xian>A({yVYS>f7okJt< z;VynTkcszpchqptdl(q{2L{$~DASAo@P7?QsyM!ecqZNxu3=;>*dLVLPz{MHPV@(( zqwnM1D#qmVcxI@E&sQ<&ou`eFu~2^~daiyVw1%{txWE%bRZRVjm;<=P-(!LlN9fg2 z?8Y(dLk!1x>rL@?a}L9p!w9=mf*tsNtnwcC93H^;x$_Dh!51hwPDy%*M={H%tmg0- z*^t#d9w#HR64nBgx_~btgCI5S#}izI@Fe&3`uPyTJk=pt!Y_jB-#i=U^U4|)GBsS8 z8P1GpADrwAoD98-`}(!M(CAo@4lP!()E}(k+S}MavW8NoKlnb%HLON&RPp61o~h#N zk3Sz$eWAY2cRu=XBrfkFH&Vs(ReWoMk3*il3;aDrjMHRc24}dQAzO3w_$hiSeoJhL ztKs(*yom33eq6zK@e;iV)7S5js{r-H@B{7!@k7cSK;R?vA*?}ZSk~~eMuHXBF9Qil zF;*;p`-$`;kA@@_3#B1u$X$QsqQi@wWFpA6;PE*O)$u49{@fJ~n}r8jg)g@i=6$^` zJV8?u!Y(0;to>M+@~ua_4U>K@c}n*B2OErZ;U^v=O0E!fb)$R==5Re`t#IrnIN^pb zm$!xE1+E#+D&buJ7&xyr;EWNn!0Gurek#SsEcz#Y)`3=7&osg6@nQ9Z@eBO2?$*(| zTOpR%JFUW!HNqJv@@xF2E^?fCAw5MKiVxTD+YMU%pq_6MdKbUnVuxT`?HpVep{+l7 T7XOGp@fqd&IG^$_?LYnpOZ*5! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4fd0d79137e2b803aac44872d5386c48de7f6777 GIT binary patch literal 996 zcmb_bTWb?R6#gcOO}breTDA3lOOT|3V|@}LqQnSFTER%(C%dPck#T0(*;N0QpeR20 z1N>3qnN6M)eagb_nREHRIk)}!>-!G?57B9&CNOqICbieTR92oCHFKpTn`ujuK2owM zwX^IiNv2vEmwA~Nj-`CFFyu$64gt?ASNE`qhCnAUQet%ON%{{=cS^SOaxy1lo~0@; zsSwyG=h}B4Z~|-0V8FbOwbkVlf!Dot68EP9jiF0v69QW?&R`=#9cN=SaZaG#3jy0> zZrkzV{fvsYYGz1ackB{nrmE0EUl|*rbb;eF=GQ&s(zkr*@X$Ci!{V3LQZY2jd-9Cu zIr5(&+U+o2KGpbbqQ&-2K0RVRSfYb_U-3ZVB8FC)?>y5>kf8V3Y^D< z70XkWfu(iu8PPXf{F5W)8>!;hTgI(87=bIe%IG?-F}{ZDxWTf)^Sg;Ve2Ul?Zsq4U DDUc9O literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$10.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$10.class new file mode 100644 index 0000000000000000000000000000000000000000..a58519c1853b42ded3bb96d766708adb648bd0fb GIT binary patch literal 2592 zcmd5;&vVm86#ic9M2%6236KD7!KI+I1+s z_y6d*x6a@;bfz87z45Owo&LBmyp@u{#Dt7ze84l(uC%Lf-}~PC-t%A2fBzG}Ioz@^ zL|BNErW>e0X%V@1L$MlbS4PbslCJz-dTkxV5wB_K`hf`JrgB?J%%gj&9ZFU61G8a1 zU7DIXYavgVHjvT_gO-x6dcb(=GSbRjmZ9{__E}%Fv`h#idM!{>X9~#@N zd2yuKR7EH@?um8bvM-_AU{86+q}kC*q%ZHXtNvUZWu6dj_HPQGlzpw-8@-TQ_AqZP zndpZEsuT7b0}|l}@nSm+ue7y}BSI-XyqmiRf!~x&Ubcg=MlJKAIU0A5^=2~Tike`cvISQu7#xO?A?4S(`@0i)7jZqZL?68eJu+8i}8}DLo0XckN zV+=+xJ&xa$Bs1k}%$gJrS;mBrwmLFY_h=2}}KZyCajV0*=z&EN)rK zOP}Cm(drKEc3ISnOsbWYJ@^=93)779YTnwYz+sY9@B=%GvtTqZT zcxP<5V4+z$o=pro_=xlkx2 z6-wL>a{Sk3xL7pJ11OH0){&0fIMR{ZMmloS;GIK!jiJcj?c>=ZKl4{8IVU?9cTRP1 zz&YK)gmW<8!6E1Ha0f@6-|+q~>6gd&UPuwR3(?6L zx8^)z=tqpq*JGR@{DG5?ae4?(Fq7NBC!6aNJRaif$gjBg1eZ53yS1=^+Dik*85Z;p wO7t%-(toV||5HOIvconF0cxn@8k>^Cbv9-Q4J`1OXPqqKCeI4IW=!Yb3m;i6C;$Ke literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$11.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$11.class new file mode 100644 index 0000000000000000000000000000000000000000..55ac6f070a3554a6540acdc501889ef5c923a97c GIT binary patch literal 2646 zcmb_e>r&G|6#llY#FhXR5%7W+toFhs*1HyUwBn2oAd17N|CVHFqao=eThPbw4SWS> zL>zVe=?~vY$FoUQ6pFT`GwE)2&wl6ZIp;ekU%!9&4B#woXoxY)dVa;Q13Qr1HI^N| z_)H+t1{_054b}q>;G9=2LC6Zw1)3FC#YPL^@hP`UGUq=$D6yi9bqZ@+^ z@tiu;H$#D(tFJ5x{}Equ1VjIfXL4te`?h*-EGAU0GTd+7@TT4-!cZi8*KDgIWW)|( zF%+VR?!=&J#i&w#QNvM&$L(^bc{)dgPT@F4HJo6$*RG1KRYJ!}WEhg%G(`|(isu+s zb~T0bVT3k&FLE%ExGEf{l)?y3s|?68jBa)HpThY?C7#z&z!>Ehk=Y} zOZ9n^rtNs5f;ypN62_(=6d7K(ajB-6-B}&k&TPe0M%>J9iSFOsCE^BE$f#j4JZ+n@ z{~`#nS2L^Jtti^|EJ$uXpXIf%U}(5R#iC`}>>NCX)Ph&{O>xIob!uoUyC$FURZcZ+ z+BF?7P%TTys%Pn#!Zn68x2#)rDLuE*xEVup29&*(8evG$Su`n0{=18|9;uxjR%%`h z%APCfONK(I-*sK#mmMAiA|Q59W1tVDcsi|m2$1eq9V8s7f6z{ho^I$Q*F&>g^q!z` zpfI+M-op4g(uIk2^cOZT@FtWVqW@HQiUJeUFih|2G@Zdg9HNooFpf0vUXgZ%m-~p3 zCxy4@eUD=sI5j&?^YlC9<|e+78d|5P|2@W)jyRN#L9!RIBkW^t(}%1K=35u70ceYnQ>m*VxPj1%TwIMEgqMfkQLZz4Pu$(+ic{%n)KRp-zZziVJI2K+NIB} zrEorf@`?Ww#qZS Nf!n-FI2U*2=Qs4Q7Y+ab literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$3.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..404a08767c53fc18fa142f8773ffd25e2141e0b0 GIT binary patch literal 1011 zcmb_bU279T6g`u~CSBJyR&D+MYM@C3N9>Cb5v4{@(h7~_eX@Jqj*PR*&ZPBEi2fBp zQGD;D#OBQzT+>dkS&ONg~e|`S};6ApSs0obnGLzbA=arSOjhg0OlFhUw zN$)6`d7WF%d6KDCCeNHK%ABn{oEdV%REL76RjRYwL_=UFFj8W4;Yhj@raLC5u6_0&r6O%h_vwiYMc^cy;Zn0c>K~`Y9I|^lzZ?lp6su=XCjbBd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$4.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$4.class new file mode 100644 index 0000000000000000000000000000000000000000..272ceb31941db964daf75b150ac9ddf8746ed7f1 GIT binary patch literal 1915 zcmcIlTTc@~6#j-57Rt&^1Qij)iY+LMfQlCIQb3F45^H!h)7_ygF1yX{6!-=H4IfRs zJeYU^AB;~v_@j(xc58r$BqX)Tc4p6Hg~*IV3d82R^w^K5y6~gD}~wcC^?}a&d|2Ox47YO zw`43AH-srQG%)llKf-kEav+RgTN>N8RT45V^5j~$!e?lZ>voVFrI>0MREF$M*{&^T z7?xADG@M>#h-W=ZG=bri4h@Y7#L%jv32h9qlu~HT6Ov1n&7$z1@uDLbI`W>$omKAJ z>b)wAtJE2mY8YQ~f>Li@=dR_5xh>&JhJh&mqpA>UWYVh%oW*$!=NJ}h*BCl_aDkzb zo2CeY8$v;|eZJ(bRfb3+5?7>m42AtW)V;R@*kCx{%goXMIEEKL8(&e1>q1e5Od^QOYDThl1pG5H#JNgVvvIL zZMUT37H%_WTimILuUr@tTnIuv0 zD!wV^ZN)X+f0Oix%8+t~x~f)Qk{4xVdgvqcU3C9IXLYxSUWPqfW>A7in5r(Hacvi4 zpE3CzQ@fZ^j$=@cI}oS;H{|LqvDQ0G;e8lDSLCD`0J+0MWGRH%@Fwe_>vOcN!#p0* R8mG>Aj3=~H*{ay-_Z#84HnIQ! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$5.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog$5.class new file mode 100644 index 0000000000000000000000000000000000000000..f653ca451555dc7333a6e8dcb017e1e0f8441848 GIT binary patch literal 1633 zcmb_cT~8B16g@)=3(G1675qXFE4D>hM2l#NF9njC3PubMzD;*8Wy!KjcDBIJ@h_Mt z5+4Y@`lF0@c56`iNJzTLWM=N%IdkuxbMMbz-;V&yV!=R{Ks}6_wx>K5%fR07Wh0Dj z3YuO(HtmzsioG!4vzTnxlYZD#_D&S?Y`<^$q?TMyJ1izg`LcnmKyFL!O52w~(_U?C zkrNx}5g6C+kmGwhifpwP+k2kdq*&Q?ewqS`1bX64PvvJgrVa*GVcZ2T@Z#43tA$Pi z7uN-{)zGCr2wbsXpw~nO0~Y#_6UY>_!$6(?n3jEwt-s$Z#pLo3wLl=pjSE$DU~k^ zYVDvl{CXN>FV?tn%b-6}9E0?8R3tZYy*sPhzW75FG ze((g9YhU{}?sjGZvm=_Jp4~flnRf=klt)IB3?XKsTkL9y^!( zRMP_HTG)ylTK07LjhyaV)0!tP)uq7kL&a>qrFb)RExg1l=Guvf+g~D(1-IcY9(^#`+Rv+b-fN3ln)(W>^bJ=(Cq9GP zmYnF@M;PM0#doyz8m{xqioMi24e0L5cGIfVT``Y{*4 mj|6=#RgQFrOk0giE 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 I$|d^!2MKkF!2kdN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..f590b3dba677da3c8f42ad51c868d27b257d4ddc GIT binary patch literal 24188 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 Q*UVK-cdm`j^)hq)A5f){y8r+H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9ae1767709bfe10e39534558e10e5f1f147148a4 GIT binary patch literal 6172 zcmcgw`*##q9sk^9H@llm(gK1!B8KuxHc7WUq{sq=Ji9bNY#_DN+D6pj{cy>qkoLY+y#e$JF`K=&hMrI-% z>(cW^@}NF3VVEgC%h5g~U68p1zl9JG=&25FKBPK;A@di>{rr|SKE^u2iC+SXCFM-{y zZPm(fXU8KD_^gHy!h{}R*c>WmMr7`YK9ZIKO9!$^Jw2@F4E65(Shw3UVm)fntYJ0k zX~@EHBQJ2DACFs$M!HLrLkwIa*`3z&1aEQFlyu@mp5dJti^*g*Cu6{RTKx*16t zHEVVs*9|jnM~+w2LNn?aFdZ5?ai_o<*&}ntq#PY8=QQ zmQVqAmxe9aDo`)Gvu1%jWKLjn1$o=MbG23kwrltTb_lGJmQC-Mne3$O%VjejywOTC zE~MM7S!1V$FJc#y#U?W(3mz8FRkH9`D^a2T|Ay^u4SNt(Y`2t1a6Og_ad-BPt00*%b`oOsm~Z!IncG#tbsfhA?mZq*fd!3M5Rm<{AaKuo`Pf@g!{W!ALOQapuo}^ zGHO|&k&zpp>O)q;1RfD+D4W(YUsyUG7Km2Fq0@~k4Ji=H$$U0F$t8t2##$kn!PWVq z(i3gNisnfTr|@+eBk!?jhi`WI8nkUVgvSM9K9PDe+bPjcXm}D&*`i%PZ1)v?GpM+t z@QlDt9}0^q2#U+I8oq^Z(~UHP>qdb+zHAnSN?Ho|yBfZSNlzG9o(r4uv0*)3w3djo zix4MA1nT5blT4~i5li3?HJrioYzpPLbCBv}B5%pAD(jA^I`y)KSMVx>&~Zb#OI6b| z6wd1!ex%mPk#u=OqAYY?!;kTjhp@x5Zi35J$(Fd@*9j@Tn3A!6b&aQ%z^_NSIuSTdK%>2v-=o zHxEWDFj&r29AO=Ep_XTmXT91`^1l>KyhixOkmK83ysJaI3~dHW1wO!vOMI`vN?z-E z2mZj3>#@rE6$q&9r89dQ?`nQ9`Z3nbofhTLc59ku55niLmV*QMJX+=eL@s093^oZ& zTT+zlI&0E)4?x5L5NJcx0r&@X3v%>u^LgxvHg}fL{vKcXefC%y{SdKhXo#)~l(21A zAlhE5p6;HGwl{aGr}%Wmh-P~PL24~aY@*G8y(E7Rnz5hu=%RAn*p6QQdM~dDt}G8& zY`5Et9Jb`f5nC;7hBH5Y2sk6rW_ToJ1P!R#XgUU z+c-fT%0;VruIJev6=mIo(x87jYTfU1bv?{q<|?> zjxxIqeC~{PT*c869=oI-PM7cv>*47VzIiFy-ciDLRMvV!`~@;S!~c)G$Rs;UTI5?+|g_bu{$o0feCoA53j{!4V=B6&}d_pfm`-uF0vr^|Pz!?$eTU{HDg zMZDy&Jm;|N_psb;ahzqjiSJvK_pc!sn5vy(NS>X2e69RQ(&wf))Ef?;ko2b{`&&Bt z3XOWzL$co`+3z74L8v7x)E^mMz#9(F3G!4?x>Cj7!H(+)UB-%o9hCW#8N6LXE0hH< zWp)F9WP)5{DZ9@9UjE7B$(63qm9*e{L=R$_T3Hca*@!;;HyT4+uPEsk9qET1>5VG< zDRl-@wn%UH_zR)_>JioGifW{T-nT@B)nbrf3VeEA@JltG_F%WBzY+ZJ^MHSV4=cbw nnisrO3I0!l|7#xbPcU->cn$rjLgP2|sp^{ozr&mOJtF@FP1|aa literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d9bf5d33b8221fdf9af80079171448f52f181889 GIT binary patch literal 6782 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..829e997a5da073ca1956fb506df7d4d3cd1f0ea3 GIT binary patch literal 5040 zcmb_gZE#dq8Gg=Yv%5)dXbg~2Nt%E_likpjRBLSz2+2|wmXwkZ1hw^MISC7!yXo#G zkk*ev>qoU>Km5XqqOGD8TcBl;cGNn~*co;F{^?J3{Hs4Z9qaSndv4CnHb@k}98DB4bZB5RN5igE2sW*i;YCvGhHCc)CBKy z`7(fa#@icGh*j@R=ccA|PMm_X@$GgYlTHwSohv}W+MPJ~Kw>DdV_<)3RG~F>lq}*| z+nJ1e#QGKLj_EmtWn%-W{fQ;^dK|d7e%8*;XocVryKqE7B^4r@N!-a4w-BkjXN>O# zbBA>U6qZ{EBO-SzEi|G@;ieSrG(0mkuJfbzc$Pq|sa)F5j@kK)Je$SPW*4v#b$GXh zRcH~6b_)$2+N~BWG|5_*g=Q?H$l{SqL1Ay||LYtoZ0Qj?Gm{?7+67AJ>h5u6EOu7H z-O=BG4d@QzHia$km`h?o-0Zc}$LvXMp$Acg2Av!p866lNOek!7=jzpj>~A8uUJDzs zPN8#B7q1tb3QgQGIybEk@0R#jLCtFfPgB9aX=V4~Jw0QM^wb>|-iP-y67+Dcn3>3= zY1EvvPd_-5$?L;z=o|{;0}8#>@$JtA|5?e1M%;-HN`%}^=XWpRnWR(HdB@HsOcW=R zK9Xi_@rp-#vxN_VksbDE(+=^)VoU})qS##A&#_`=et_efAtY^z+##H(k)6|Xk zFa{M`s%@*#T(Ihmos?<{Wz}lXkU;Xv0wq0I&%Oa%?iAhFo z)Fev<)yFNo7n_9exP=|KNA3<=(74}6-IW&7`yIOX2JPb}T*kstOfrhfwlGK`oh-Q6 zH)Qfdjo1#yLJrdmXlAXQWi_lBYTUXDj_6ddP(;>8!AOo2b6)e2O~);qkirlluf6%) zi8-nI4_TN&Jd95$v{fg@_L+$Zoo~d$_>^S+rU)LPue!R~#qREs_O#bcytPfu%y zwWYUKRq{Ev2Gp38PrQH^ z!}y6pNA1pI+J=P`USe0jkwWEjr6C>0B@PkQf~w8J08G!DqI0RDWiV;Ek=#r^t#@Q( zqFR5wt}adUcF8DCHc5w;cBd9y2;-+bc|Bg0(UL=;J6vK7eOJfddj7P_q{k^aC^H(b z?K1DV&z#iUE9W#`m-FpSXyK`M@o5vU@@Y^nqm{oaF7Y9NHhwQ7G!P}=79LrHo831e zfa9P!zK?qaU{&-gZi!w->lLi#WyKYAL<3jQIgi#xieMiKatLX{PPF20M7+;MwLA>U zSj#;@ya($H{vEsue#2#~zlNB?MLu}+Lhg%$K7a-TprkDs0J#c4ee@Nqu0A~OJ6vBm z%*J32pQPSmgY|NFPc$aVmC$zvZPC|o=fP;Ou2h_5;XGB3QQ<6oFhx5% zR4C^P>+%4NFhXN1g@^~cu#I;C3=oGaZ(&`S1z$;HHFW&CbX4ndyrwQ}Z8dc1aCPZe zs7p|E>8P#CBjk6Ix}2gek5ZS%me6GDL6@C&>H zZQ^~zUlMHXB)IP)zeX=cW9=o3iO!yhTNx$56AbdxJoY4q>Zg5_Hdf5L5eIRIA}I(T z!AA|HdepTCgIxX??l*j%F?{-bd^Yfye9C;fqP?$UdkGI*iuRUZUy8ZEjlNCao@4ra7co4?kb2%nu&+X}uR^eoNl~_$5RBAQ@B}6e!N^ikl>5Vv6o2l63JagFJ2+RD=xt{Ps$>K1C%4Q!eNR##>n>S z$8Qa-yw7fvE~$B1TgmDTv`VV{8sXr1+){TQE4e5uB}|<`m;*aRYpD6XuxC?(_G5D*G`jDZ%iXJ+RFO!*2XTg_(`6Qk)R8Jcp ztR24U@rFS&HRlwaxxcI{)C`@Bc&x{^b+A)(CE9q5p=P(;|2S z>fUC73oru09CP@k-WDsFXSu33$wlD|zG=8^G2BAY)eG7|qifuMGo=3GlN+k|DkT3^ zAcm6Z%3#gcKdB2OfKKzlo zrewaV!DY0H3*95-tD4JMmIND*&sF qsCqj5GF~RIM1Y0BTWAjBLMqHo9AMcHCtN{^SD7R0aTV7>4gUieiBxj{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c88968ad1a1d62f687536e77e23975518a380518 GIT binary patch literal 8272 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..52c83680fa03dfa189d5b54a4c8235fa339a1fca GIT binary patch literal 16751 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 twsV|Ec2B{{iNpa0mbZ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3dac172165461529c4f1da1920c964d34007cae7 GIT binary patch literal 7051 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 AuK)l5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..66c638e67cb03aab9f52b6c01df587b9040e183a GIT binary patch literal 7265 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 D!yHoa literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..73b22f5501dff6829609771e287dd4fd4c50d2f4 GIT binary patch literal 6573 zcmcIoX<%Gc75;8A$(tmP(4;-|N2AG@4k66d6`MW1U1lk+r8&}=R4m$ zcX{cRC!PUt2L7(0N+6!GlMyp(W*x(djHQf`j1!So(zIkm?vjZK$IMv#=E#Vd9#2I! zsb4u{8wnY+#-uH+gxuuV{GObO@soytz(tF*xsbJ5foR3n76K#A95d0IGP3m0+TP*%kcpHzo@F}HV-cCi*fJ7zTXff9DUQ`}jKBpIV~Nhm=|&^5 z(@07k%kVmZIvI;^8tRGnMg=acJiK{Lb~g}QNXP5ZByeIhQI3I$gfn3qseWnjDr0>D$F`RP?1WUsnY7Q|XgQ6q7TarM zBdlX3PUCpVgV`h%@*-4QWS2yV>*&xkvOW57SB?xjAdQli_+OvMd3~zDVRQ! zo~2+xcLG<>%br>jq`8<$MFwSdoXa(H#7vpaRGja+^9kcJE)`*Y@us_q=DEUuOeWRmL*i%Si=Xh#E!<=TqPI7V{JOtB6{dJ+mrPb$^# zKG(xWLj%@eQpeTUMU9iMAw!kojq}nq|LS(uKKte^lPp&>E_nl7A#=sG8`o;M=C!Z5 z`i+E>v8U9E>uvwVD$6s&Rn~4?uj2;1U0_MV=7c3@(%66SnCJT&>%DWsYT(M(I;^xlPCI_<%qY zHO8f?sRo3R>N6ZeplzP@y0?OH6%Wl|OH|BzPXv!*zlMEWNS1%q zF^$Jar6qSURmT)8xEmEOGa4TEQeG0jtJz2@lZ;RvK^#;Yvq@<=LsR3j0SA!N@dTda zTt^LVv@_$p6q2 zpx&)Pd_~QOyG$oq;6R1&RUKa|M>aUPVX&TGzpmpO_-1}4h#P5&d2R-ZT-=Xu>-dfm zXk&lR=7FIt1!=0}zO3VW_&%*{H?nazj~o(P)sXn1jvuK`OUe};usG=!HUTAxU2vXO zQM$)2YU|{BJKCo@RXQjqPEurQiSL6uEpd7tEl$<~XU~_K`DeY^`mD?=&66vi`J&oc z59pj5*ZFMEQ7jELm+OurN+nT=ifA`wChUadEX#)#3!Mz8Bc)YJIV_qni@RiZ|0S~; z{>n}G!U|?U${kMP+NzrWYIy2ZkAOPt;Zq%-&g50_S`$8q`u)7Ag6=k|;_oUpjo>KW z>G?)z#L;{TU+_DGfhg&*l zaQq{DL|FZJf6d_oIOz}?!lA$nR;&($S5~XLj(y>kEuHGFb6;7DmV66ZsCGj-#f^6@ z!S~X4l!p)f+_JC3S%`7dIKVgS`Cr^cdsZHihnCpzMzp!n4C8d38!B>!$=zABt?tgo zn`rkO-fO67X$;mivN891UWgBPA$BpuRlX39V~4_Db6Awbbnd>eC=Ftn3+z%l+d}J? zVFj*WhOYF1?ka-rDuV7Rg6=AU?(%`IL3K+|?Vov`;z7QHj#QL=;Xw16l{xg(fXSFa)J;UVO0^#q-UqhL=O7P%2U*%l_-XQ=AvD{Czbx;s2*1w- z$Z40o6~M+CLc55`$_v+_Nkx8}^7>|1F<8#$!r#*H4Av`s%-~`r$vl8Yx6id~c^!`D zno()HHE*ZrxD7+tOfR&})LueZ3PJ!?%L9CSDVfhBxPko?f_5K*7CsmLmWEGz4r^wx zb$@u}X)}1M8eM)GZX$|X=>1j>&)Z1-?LIW^MKtY2H0>}j;zOf`Z~~(q8k=8K!u))M z3Q%}m8WwpdGmxc7?jn*sL!Qxvu=N|GlvgVo zo3NiXbQ-7NF&2OW-1|Mw8a6}09;85Xl*JPy1B@%IJ1 zgcn_|FV7QJ%1D?iT@Hf=`2Y~uM#sB~S literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2d0be26546c3d653c427fb7a3a64361c898e7576 GIT binary patch literal 3253 zcmbW3+jA3j6vw~6CT*H_TPa8>QYx2Hl14p(9{iVd9M9QZ!nR4Y^&z{z>p7ou&iD7*{PFj%zXLdk zVghXfQ;u8I%!*m@bX!}p^n&AQ(k_~|)Z|TRR6WzNY0i_HSt?uF95*MVC*6{1>pVH< zxinN<&eL=Pae)!GC=JUjSI9f6=ULpHCQfc2qW43et zifj^Fur+}Jfn#gVbZ$l2XLRGbUX%)+!#07W%ummqKRG>~6F9N<;F_Aub`#uo1w+^@ zu)Qd~e=Bhx&95w*fEGr-O1&-X+>KorPGGk{rb#kdZBwuZBLbZ=Uzu^8o1`uh$wC4t zfj!NYp10|E*t!*py^G|dD#&0|phr>=j&(zZrcS3?)NhrIY|A_9@U9b+epy zJafr3{PQ_0->aIgTuk7Az-V(~|7ho;yZD55VLuM>33x$ZX04$4{M0r5hOSwsvpJ+?Ey|eXv)boai>rmvLrOBPpV7hWwH7Rv^%j`nBF;SeR z*A$FnLSP$RysmjeE;ek<)9lzfJf-t&cT&Og*ukyS3bH}#bp>zWgh02PShn?&pEVYL z$Vf_VA=oDIP+{Fb?E+$fu2ng=-jp;ZBv8(rf+IM}=ob{s<6H#T_t8lenb)nVe?K?q zkuH3B!KT`;Gi$zR-%;=`D4L!p844|R&;{Z9URNO&I0juo0hc2tLraQrRr)$En|6^x z^t+R$Mc0c!*PK&z4M|-Ja(C;ylTY$KPCv_4Hc4x*2GO0XImv59(dJd4etr9<>)OUa+m{}6)$ z_ox#X>hLGB5d+E4fM7j_27VyCHrg|*{*2zo$n)zVb_(3VQEpGED!(3KZw={3*hQ?| z&wPg=wT7`f*rNW1{TI~@$ykOb9^haNhq=WhF+ZdsN&+xJ@Hq@%5-LtnV5jj4@;HMj zpRhlm2nh#pm}WbP@m1PMiTslm3O+m`wnlG`yZwo$Xv`NPF}K%aCLxELZNQ29HgHchE_IxqI|Dbx+L<){uXi-Hjv& z;5uctMB8kPpd3LOt0Rq3ra6h^2-7$lBDEtn&>5%U8Jr7wZiPIl2+v@YM;#?0)G&Kr z&5YJ?eszXEAe0X&?vDuPW9-GP2u`Ywld9vS@Fw00apGtj;Id!DLP+D%3=4EPLbG)R zjR;U`czZR;r$q7@w&Qd9^YaCE<4d0;klJvaWH=;Ysj+`Px0k5K!C5Vb{?ifvLo57~ zh#sRoem8cPmt46^lYwA@qx=;?d`-^3i8xQ!ou?zt{aUcDjrvWIA!A%J!J$Pp{;h8< YxEScqv41fLEdKY#@0)IvzWJqp0MqaWuK)l5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ffcd41cfbaadd21f701a19c043caf60f0bb4808e GIT binary patch literal 3663 zcmb`JZExFD6vzL!Nt-tHI`-Ud+1Nw3C2l*jhpa$GyDrT}wyqm(m$5Pij&qy3bL?U} z*$TWwAQ0~+gaqOXpuX4;WGYB#uR!8MAKuF4$UTXvu(ccZw#HP@HzV7Rtvij4snI_-dk z;poI#3eBoiEK?!J3?+A6UCc0aT+mJ39bt$hQw4@-)++HhBG@LO3-K;6Y?ly2CtW8f zFq73vk=rwB(cla_CoD}h3aYJ(b?`9i&g%|C!887jWJ1F50 z_AneTb9XZt?k2fL!7=o|!2gys$8eM+*H(icCchX&d5VeZSq3!t=T$XTQ&(2KgE zyGt|H`hfIt&ZHiQ;Uq(8)1me{Yl?5xis+s=jvytzPt)17Sx)m7^+!T{IXa_ zJa1Bao2n5sX(lh4VjFp_-6scw67S)8v&Lyp zi>`UoCOfa{W~Q~=H~Jz@O{_?G1E(1d&;Yab8ZXi4s%mc4R*lPCr7O>mGwey`TL4pe z@%>o|uj6nGX@=xW>Zs}O1kJ;4oWrn$H}MujcTsh8tr4$UGGxXdhnbdyY~6rW?N`n5Vg$wM>^n&uxZpH=pUXVS4rc(6qPQd2Z*- z62r-s0Q&viOi2)DnqYIQ8E1J~Q*L-LPIrV7<2MTJ2^FVIllF9rfsH((Px%$@GK{Vl zwOmUXW@b|%gn(J3WkOW&b%voW=<;j#hJ>5AN;TL>xyRJWgTiN!TRaPPkXAZ|n9Uu_ z5M9q^g@aTdTXV40y;Pwa?_)NGJG7szQ#Q>#Tfzs3Gqh_4SM3-+WZ3P^HcudH83vs# z=x8D|ek9>zsI5DXW&`R>9u@k#!6~%7s2{fIhtI*W-3-+!c z!SI+CzM>BA#Yjj&SD=82nH?y&M}R`XG5J^Y{EhwcA2@QyQ+A9--3dAJ6iMO}Z-wee zi17-2`YxSOu7*q;3rq}nvg{D)9>h>!YnejQPA^6iKO!wBhUz%=Gc9pc{0she%5|K1 zhI0db(G{GJ;ITZA80w4G@%CexCB)4;s~mehbu$!^TS(wGnYx4Xxa;wp^GyXjWE5k# zS^W>VJFqecxTKeUII<9%p=naU)WtX59 zsC7)P;`ynZBguIj#Da%)*w@p<>c@MS^04|bjTyoc2vM~4M(OD-6as=r0l{#HKu9+J zJc1S6rm00JgU@hx1^3!;`-wa-SVvLRm!G@+=%9O-plVd951`;74bV?1Zl8q!hns-I zO~7Gr%!L5=5n7pC^FvglHzKCV5a7WE9bH!e38@Z!mB`QH7ew?W5q(AF@HI~28;@qM zud_*$3}_lb5@|9}2^c;P7}6mI`8ftE;ZyH$l=N5Gt77-J%bxq@oSA{{VoK$^rlY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c0e892f63228cb170143946e7b2a66a4bba74c08 GIT binary patch literal 4252 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 ITAm~R3pMy6UH||9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..532d3a1874bd5a2642143277993c4d8d2e4ce1cd GIT binary patch literal 5214 zcmb_f`%fI#75*+PULF$?z;^5yoOOa7*u`EuaUAN6?O?$6x_}+9X-%8d!|r7ndv<0s zJ7CkKZTd*-rb%CJn@~4>DovI82d9dbI+ofhCW<Q-{b)TeDXDXpAg$)vn4GjpzCTU>Kx z(#RLgMxn_4`5E5ZPOx?O-1HThaedh> z0w-#=yuML^EzcU3;T{*L@9CWshz#0U*^GL$Xo#Xw;K32PF*cW*@8hS5q_WNu-+4fo)N26*yiq zis3c!Ij?7~>N%-lJ02EjlIgLD3j z4oO!!dBY+DwzZNZ0?!95)Rb#4moIBuFjA13s$itt;GZ zK=I0Q?^G0r7@jNoyq+|5E0;{0rp)Q)fRmfcOUoU;o{&E7N4cI6a}c^S+2iJ%n3EZdFgrfFZ3+1QNj#G2Xqo>2{=Utn9$NTo)P7lET1 zQg~LN(Y1X`0$Z8ARnkh^aSbQ%9NUpzC`cnBDMD!cA!>=UjlSkWvaa@RELLj+GV;U~1%N2CfL~;<4(m zyYW19<}y6rbTf3$ZR-iM=$BA$TJ2}!&a297mqQDdo;Nb#0&TS2S?LU`uGKWNdTKUJ z^WY6;m$pzWe7yp#D^>3ICuPRfFsICHt1#nBs1|WegM$$zyP)BVs>#JxWH;`05qVm= z92Tpi?C0Td6&tCkaGwscM_K){BJwL; z%{gx*UOm(T9X!h9MT-N;Cb{w|^v4>0f}0$0Ru~F2ZIS7sXPc*E?etG6AAYLg7Tyl2 z3^Zw(S?SGC1&#s&2YtmA)1?|;^87F`ljE{j;Kz(HZJ36;;I)EQ1|al~{;pU18>%3! z9)wed$&rz>(S$wcWF#L+?4#?C$*N5rP?SgZ(6xI0HSlxn0Yua{3!j?!^c1gx*M|5K znm^!89W?%L<`sxjG{FtvJ5LC$c#uyKJcPCi1xqSxo{() zwEY&XzV>Wl8JFXUKO(+}-S=?t(mgzRsr~R0j>Jp&R0+pQ7+Au|KZ{YdZ5d7Rz7hsU zxvM?#F;2%L?R)#~BHe(|xO%SV>gZ_SG9KsK=LO!wBh)jwh>rL@OkIjc>Jy12e7=M) zC~AFYj(9Gd=7-K1vXI6RoJBt;niCk|JT}TVV>~a40%^%JcMY+WB);G6yxn%|Bbrsl;FhVGlPFI3sfFVcHY9Vc<25Sa_{qz z!Cw7o_q}h4?~Ks>qmg)`Ufqq}i6=VutGlaSkd_gW==3G1#P@TbmtQY1SzctUFY~KN zXEIIWFcBX|j=s*)Tf_6~u#c$h*CZ@-6E9K1M$AjbNwV>h=l`VVYsB+4iiXbC#->&Z zv*QOYz8kpMPZtk_T->$lA==}j!l&Y$xTthuy9caDCtNx)kG;5#Bwh}I?k|JxFN5wc zgYGYb_5{k~RmRJa~s*pV@1rv8M-v9=qgzH`) z;&nolfUOOL_A*`x0J>DE z3aVRK{gRh4*bxHP!Nh-61byrpC4A?Dc!G8L=4#3LG`vd`@6r12um|tc&EJR6 z^pw%`l+pCy`}jc!jcS=c#LWPW!xa^!1~ivro0!cM~2_+{}Iy0;mtcPD2AWo7yK{q%loVN=Y3TC%Cr6J F{{bV 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..6ab7dee4d0a73a5c5ca4bedfe9e478e24b80bcce GIT binary patch literal 359 zcma)2yJ|u~5IyT7*C(VfKaffr7i=vo0zyQHaK(OI$7SWR3wzg){F;Ry;70{#u@F%t z#T0Yqa2|8|I~)Ow(9KX0$bB%RT1w#Go|E z*=1R#<Q!b&;FgbCY|Llk@rY_5olI8xaZu73&gdx~A(@CR?d$S}!R}Oh%HPNcX(48P`0? zwt7^lO}tZ@lnehh#BilRI0;5Ovjv`D6T>Xy6bRN>5-d|xnMhP<| z%pw*TFAsQ&5ST9^!i2y~m36K4I!$s7)l7*iRjXBct(*yY4sK~jtaz?*BM4r}TI49x zRA>D?C4GUL?VZ0V^>bs^Y&ju6{K1z>->Zagd;V9-fqC+FOcd8`&uKa_L5kI3%G?>d z!A@)-{yZLIJl2Ae?B5ZNMZ}CuawbvW2u!}Cbo+|w7tB3#TEGIwcu-vDc>#+9G&pq$ P%LwxdRv8P8!~XSe=2G#y literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.class new file mode 100644 index 0000000000000000000000000000000000000000..828e170a8430aa8df139d9e22f560d97fdbefb83 GIT binary patch literal 1454 zcmb_cT~E|N6g|UNmvs?DMeqYrQ9-0t6JL~&G)tEhm+q!pHu}`e)}aJ#nZKF!li7*^rQFfJT(*J7A$p7?iU7A4_phN*g>7;g)w5ijXT7!NNj5~sz>{dyWjBeD@{l6n7&mSfelQM=}Nw;F3eRt Tfg0EFG#}TY(;kD7TRi&%$fB8) literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates$1.class new file mode 100644 index 0000000000000000000000000000000000000000..022752d369de3ddf6a9152bc0115b88fba6cd8b1 GIT binary patch literal 1452 zcmb_cYflqF6g|^c3d;($Jc>_>Rw)Hp@vT)81&NU23&S^~)9rK_vfXKRc0qoYi6HTV zKfoVlyt7LJ5%g0xnVr|2d+t4R&;0uR<0pXIsOOPkSXH6tNG)~51E=ltrivU9crp-< z_#)gmk}9CRNH|-3oBPU(LhcHup}cpo2zTFxq9tA0)|G`katsAy=J-7DoHxxa;YNA% zF%*wh-^W3~o4#P^i#DaM+@cs7y$YhvFi25WIznsi5ynL02zfmUW#GMt+iek&Vc!!O z$mkh^sP+#3UvM)U47o+s5(8iuwvk7_8J)8+0LwxaBQ^#x%8;!Z)8PhP!0Wiv6yb-I ztYSmC+~44#H1os7oMDim(X;p~3q(vdi~|c7aXF7m46k~1H#V+dlA)iwF5Ql~_f8Lq zpGi0nt}nY{?c4W&Fk#?4(?)rSUZea@7^0>+{X;S)+sf`M*GYrx3=WZmo#rmf3 zeTJ#(zflsCdOxNaMpsj%l)I`Mcgre~frS~&=22r9KfNMt%;6@{6REUL$q&K(ZA)1= zAf*v|)5o*eY8zFyq*17L*3$A{N~Shx{SK9s>WW|`XsfWpji?!xQ~FOMBF*L``pFej zt=77VLsu+Iqw3Phr(xb?K@q$RTwiI@;F^dwRm;XhJR-p+G^MdJj8%_eq%TO_VAv}` zAi_nTYb`X&q@66aGsqMQMod7VXrx3hTZY;oY}!3bqo*{_Qa@aq-NR6AZV!dpcND)S zhGX=%k^__kK4P5a<{+7)gbC^y&SUh@)mj1xlxp8Fbbt%{C>L+gxUi4v0p^cf7LlW) npUCBBj8H!ge#~|0&~+Af$tr_;xKDkK1or@sX=D+c34y*p_n@9m literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.class new file mode 100644 index 0000000000000000000000000000000000000000..728a00418ddb24bbfa3c723afec98bc1149bebff GIT binary patch literal 14248 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.class new file mode 100644 index 0000000000000000000000000000000000000000..799ac979ec88b91496999f89d087756e650461e7 GIT binary patch literal 1587 zcmbVMX-^YT6g`h^$~dwk2&iQd+6o;-P_(FQtriQEwvzbC4Aa*#WSD7YG5E8@q!3N~ z0sbiCeKQR-EXMd@wtL<^cRP1}{r>(Fz&uJ4S{Qb1r>YvR;d+{-R!nW*_Ec_F4U4P% znCrf0*cM?PR}Zz%nrT-(N7K1l68EfC;SRTSz8OO4z)wOO!_3XJ;&9HchKCtON`=++ z^r!50CS6Ex(_6lf-pH=6meNIrzMP1vnwnKri=Jax)f7WySvL*K@Ln^t#^QSnZR>WK zOSr`_bouz2ZC;!8B%wRIAmvRc4sGj^m3kM_A!()LX*1ZV4-xu-dX_-+{G^s&xs z!6rzUXXp<|4O`9boFftz2-pm@O;b4sWVGU$=vhRj$V&=dAi~g2o#CXZHt)c28H#@q z)_<-c75WNqB+!;L&;N_-@goH*Sf%Z;eM(_4>=Bidrv>w}P??q}eo55*UO`R(-KMRTY5NU*%P#vS7udFf9f9@g z2ejwB35{Tv@(cGe8gwjLA=SADoFpO_18HRpF}LVnen?3%E{s#8R{HTVS_>LJy|p3& zi7tjt`dSH4VC)Cvk7rQM(07L6Q{3;HsAH;**f-36rE@Jv(p{z}FpN=JbTzOFW*Rct zAJcaSJ)hudz?>q4k*zavip4}7&o5}Yf}qoA!wk8`0xBgujF(7}6BBy5hEyY)Ae}tH za^G4V8$_N>oM5(&&G4}$kUSw5;YNbGXNhnQ3e_QUAE7KKu+S8G@;r2b0<@s`2cFEE Ai~s-t literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.class new file mode 100644 index 0000000000000000000000000000000000000000..9e34e701233fab9057905249929e9e6c5b7ceea5 GIT binary patch literal 2290 zcmb_dT~iZR7=8{3YzzrdB-UuF5ep#*EQ(41L1P;EFc5@@)f;Ashh!n_(#@u7onCaN zcl`(b1HEl$>@b#@YH!+^{-#dbXLkcc-JvtJv$JR4_nh;7J@3c<@z>A40Jwtt3R(m{ zGp(|!*YujL8R}+L+c0fa8fD#(s(dO-bz3(Lp4n2}(!S8DX4$s1l2nV%I&W-BOByA) z;2q^$xx87@Y|~N@6zFn<)T(Bb)xyS>EZGX$1V(*q(oj{cdZKF9+}Sk^Y1j>20^xii zn<*An*5^MJ=*}OhU9~OUC{GDQv#z6ty{1*`GK6-4v#ziHUJ9IC&a7k>bH&`sdT}L_ z&8_DPvmtZ{gj}(_Sr+JM1nosu6X^6zyWTEpyR_SOLpOALMj$YdS`!Fn&Bro~0Adk* zfNljJ3dCG@U6}_`+n&>E70QNj3b7LqI1@o9x*Xj^eW|{)A+4geQI$@h1f;sAS-QhF zHiLFWrzel{J}CY#nR9}2GeHk74!jj`stJ29rMw=_JuS&yw^S5d6qxXF?brk#%D1Br zNd^7P=MiWGD}n)}h;dok0{soAn(AuG$1g|Mr3i*FEYMyu4O`QV+FkjK3Gq|#CPmZE1zki_1g2Cvvu2uCf+3OD6$EC$V zJL8~zTVSx+g$CM9E)*-4`NV0hsnl8soGj_(>VGq;;0`B>Te7;THo2}~jt2`IgT!BL zQqQhAED*MH$3fkAP4(uGJ8ZP1U(>%^BTff5-9o-pq$>P8MQAQkiae)&vz_*oa9123DPw%FYm6-ozCe7~m3)oy$zVMAJJS0Yr-KudLH95oe2K{b9(<4UldZ1GnRx3SZoO)7 zS&xecf1r1HY(OICeruRzR8DkTIK#D{s3pEEDkpmYL_eOWh;2LOn^e{)ux60zH4@GFlY~1$|@{j47N$ RC1Yq>KG-9V~(D>q`jn> zrGjH?IX#st*|u(KPRX9H8fIR%Q{(!ARyCaoZ`N3S{G>OoAS|#;?vXMztB^W7e@V|d z3OWQ{xKj{rWm}-*xM3O2h(M@6F)I)rE9LblLg-YXAR=&AmJUx{fmpVb z)67}THe}y_8Fm(pihz;5Q;4@9Elp%DzX6>BGyPfVXtq>HO`BN;E}hsuo?6@()l{%) zT0xJ%!5}&r)6@%^IcgWGMcr~vE$8&IR6+#11^UMIO3pUQ41U~05YK7WVJAMX$E~Vq zMiIkaN$foWyZf`jt}~8pScP6X|}-K{fP#mJiVo(_!#;X9Htfn%ifrZ1O@~mPRYaR?XUs8G?Y{^ zkQpVIQ^f z5e$of+qx`6|JbBU$k|N$OJ}JoRsrDJIAlo>sU`Al?`Usr#5=sQ0VuUW(C94pxsk&rm^26~c z&S9^7d|JgEE|PbxT-L3;z|dxD+#pcj0JU-s{UkD9mpen-ASw6kk%C6+GI6X2%u^gK zYc{EHbeqxN=`ua3mEEi&^^{YQ2a}FsR8C1TyTZR1K|$bX6C=Tqjps{xMIJgwThimf z_MZEO^!(B~higLH0I=q;0#l&1TyhJPQ7oa8?gtbJOx;ln=?GpFc&Jfm+aXB-194{C zX}pGCrp?VwMPW-%CtGuF^F8U?%RK3x#x3`DikB7|f*oIA3Laa3Fa!UG;|eIIhE(U> zaZxPe6&0__TpKYgXI3+-x`Nkv8e5{|HV~qC4R6ZJ;Ijhl{h5rsenUmW5)e!up`x}d zaIQ7dZex|qeM#Vmq}5A-0VlUUI11ht$h1VjW`?48ODf__YtC)9Bfa{Xz~fu!p>`Lz zS4H5r)WX*((3bqG?djb=!KP8XgKx^{eoIDoVnRl@ozWe47~cum)|O@aY-=Rk$}H=Z z?=$(kiIx?rnPU02q~~Qqj^bT(%6sJpDt4i}6Yt@D1wY~)+Bm!7sQ9tGl0#ZPuiz)G z<^o>OW2IubR52XAk(C?xnPlbXyr2Cm$A>AaHFDIGb64qHU8|#+k9K*PIhe}ZWaC8M z<*l(9*y4@UVxrpIVeYr5xn90puGP#l>zq3Ne}f;97wSx@YUlLRhOE^OZBa%ak)g){ ziXz1Sc7FXt_{+kd&mHWg_$&C^KCp`DAK7Sw%4diBvKKqqR=o-6!d>h!ROsfDi$#VT zhWYNs;NP%w4Y9e{-K*I1;ou5-ulq0h{1*pS@Zcl|20y~SsbuWP3Ld(K9RowF`1s9a z>=QvZ&F)CheUja=pnHnlr-SYUyOTlp>`e(`4d>=!=T|YCT)~AEd`2Q5$dK#U6nfZ> z6ZQc*bP&5)HuvE{9AMw~&9KkH#KEvu(=U3wrOIZhx;R=r7^PKrM z(k?**9tl1{q=PG-B}Ioh^Eo_EN>jWcU*NkCG+K`#(zWZ~*stKIf_+``k8@ZFdbILx zYUfNKLB8g%-MyF#6l9{v3J0mA&ruI;oZW>luodE(5NW;2VEDAgIm~a6t!VvXvoC9S zi?n`uBdyO6@3W-!Inw(4Hfa4yGp+o3@{#|EYj|fa zz9+njZwztH&Dy(M&F@-a#-r*#2Vfuch@FAzylukeNzKNE4V%!PWFcXgdeuyLW3Xk*Z%vD zHQbm>uHvUtLlS-1O&0@*vi&mAFQXHenLMuWo8=WIjaMm>WhR9;FpSrk2;Ou(86hqj zuX}RB_awr!@e6!FPkL~Vn;t^kryIY-uV^XF_ZEIl=)d7=nQy)MzxBhm18x68r-JwT MIP^PCX~XaT2ai@T#Q*>R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..055da3a3580e506ab09da45d0b7cec844d3f03ea GIT binary patch literal 1036 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..b395a2e7454050095871e5ec46824cd256f60b38 GIT binary patch literal 985 zcmcIj%Wl&^6g?9{ohB&_Eh#M&%45@R7>R8vq|{AOib<;4MCt}Jb|%(D!&q|0i2vaW z5DO%b_y9f%aqWbXO(lfDi}9R0b6@A4`Tpa}HvmuZ$U%kSb($qy&D6{a!zWrqspZln z%1AEX%Q&|xHFRbrpNe-vr-{u(EV&iQL}@FtC|7zcGk!Wh4McKM+K=XT2UUhv;mWlz z2_HsN8C!;0f8Yn*f!kwvd!Sfn!Fl?!UH4{r$i`mT2 zqgff7@-0O;?T)(MkQ{C@I174-n!{KtqwF(Ex_>ZYsJiJ`I@n^6|A?t$IT5+GSIn%A zHnyAC!6w7XVOh#5816Q49V-m$9*JX+zl~%Th)BzV!!#CpBr;Xtg|Sg8V=e}U5Bpw` z%}W!0rae+y=P#!o6!PnviOeLiyXc@-3bu3b=P@t!%P$p6bFcepp2d=irml9cpy$by z8X+ENJoJvL#1qj%yB#>Fk#&{!71Rkgm+%_l^(EY*J2h-zlRR#b2Pa&7jjw25e8%lh gxbu-<1-rD?%fmMPTew$Ri)VEod$ebGP+A`T1Y`If$p8QV literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory$1.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c28c1603e77a9d0c751ae96203a440ed59f3c511 GIT binary patch literal 1785 zcmcIkZBG+H5Pp_c3gr|;M8%haRBem8qF+oPCWJtO7Kq`+=(p{5Tb5jR$=z1vUuoh? z;s<|#Kgu|Jy%4~bD1lt|c6WB>*_nA}=hyEaKLI?&qa6Ae-q@(gb*y723~z*@W*t|i zsg2_5qmpf>t)Vlg_^x;_LfdqakcyK$b;oWO{>ABZMCf7#yZ{D=c%eMFPp?c?w^vf6J4SUCOloec-s08p1Nc7 z;$$+wluz7rCvn}44>Gp!@4KSOo5U%QhX^boF27wKfnX; z_gKg8RQtfu!e7K5MPYPnF(#=eWT-u}krCe*XqBar!vM(#Y4sd^^a1(G%vbt-NAQ_;eHiw#rE&)8Gkxy=+1@H%`VhLdY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..681d825ec158d7b64b1afab8a6e443a8ba133a14 GIT binary patch literal 2239 zcmcIlTTc^F5dKbEy0$D7QSb(WAleJE;vI??tPrb+npTWHm@LboE^c?5?V>jR0Dpsj zz$YFQZ&4G2PbU5-b zgQXeTUGUr!-O(O0+-woMA$$*z@WWHOsXG@Kg7L%xLnuSBL=i-Xj0mCJY7 zeeMpAN70F$!c8~B{rJC%tlmpHu@C{nZW$7Gh+VIYHiRSCi~SPzF=Sf{uE}G`IDjxi zglFe-`RV!03`1;=>T-UyxXA6ix@b^wbkA9uYAmR>F3$dC$a$!jDbN2Y1q>ZIhpO|2 zTJjxs>1Dt0XDvHlDG{-r_?&1M#Zb+Ha&vKoYfd_GU&3LA{;hq%HOuD8jHlI(VH}Zh z6mcpho-x!ig)$gVxWUwRlW*l}q}!3isDugB%Efr(OQKyw2#-a zGS1>0!;U3ub0(Z@NDLKP!z7_$N&oG1D$+fpwLkd*a`H1e z@6o2~9d@mw=NlsH*z*QGuSp?@KKkEJ=Ado};VMn0EV__FFGfi=hJKRB9vBW{fKG$n z%})|D$(1l7Hbgt&xm}MkYpJgoet`q24Ge$82*XDt7&e8$wcr|Qdpvr{ zJ1{{ZO;RvZ#N#~Txae}|^-z5df~|t%|Jm|cQ_D+#Vfnm? TWdPG|beEB#Rg^*}t@Qf^4BTB? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..0eff1c6e88b1ed625f7c89034ace880928c6771a GIT binary patch literal 2707 zcmb_eYf~Fl7=BKYvL#sxr5B(VE^09Z=+c61Exi!av`rfVHGoMdh>q zz;FHmo$*sIGdTFcsh>LIKXS&~bIz`q>14&$^5Nv{*|X2(ec$sQe);3ap8%Z4hX!H- z^IoH3xlOm}+jVQbYOi{}CF>QpE-m?`bhdogtMi>Ntq1n!cGau+4cn0x*Q?f@mX-1s zuJ3FZNC@<(omSPZSFDBA2h#Bc%$m0*tBbbtnO%_rcZ)B_+DaIL%?fl}aqF&sO(32g zTMKbO?0HLaDrzE#>k8-9-kkv{hS` zjU{`vO1r&9&#|j3cEeTA;bOwyaGL@PFByu61TY+3WuI}Lw>LwggKJ)p9D(VyW|L0U z-E1AW^ep#piQ3o5D$)HgHPdw2E5fwaH)lu7(<58GUwHOn|W@~ zL$uLQo&ujRF^RLRj*9d(l)LWAM&X98+JcJ3l#0bUfthq+AF*w-G>T~xGk8nj5GnHI ztxeY7_NHVi&a_eJc(s~W56*GE$m7pMU&Px6E)hT%fvzz1#>8c?t_-)CuWkCgVjHR48*MvUrF4C`8~`y3j^2&y32C4u!yAl;a@%q>!zKdV(_D zQ#fnjwm|uRo$4jk*9!G@*^qTdmf7ZfS=m-L@0hrYA`|VU~ffGtul%(YskklTd9X)%xqYnCB8H)ltgen}~5$$0FmUWt6b#T~p8nVgy zQ=L|qZp+=H?guZtg|h#hzP$s2CClDc!;v>#)!6&Otof>Tf+l-b3BU-G6Xz|}IQAmJ(c(CTB+j7+(>Tf%Gx!k4 zaGXzl!OEX}Efj^K?8g8{MKedNnA(vU-^B@m@f{35w zJu5FgNF4oLdAUU^sb49d|2r{GL3S_jS7kRQp3kY@lGE58Zw&8|LlqvI#=aO|MPj_K VG1&R{#rQfBL)DhxF;KO5|1b3uswV&d literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..8ca697481bb860cf61e4d37166dcd48344fc5c4f GIT binary patch literal 610 zcmbVJJxc>Y5PfsGZ79t2KcHYj%8)n{oe7?N{I6^CcM>w^4D)dxOoy^48$k;levQ%eEs3(=ooVFR~ zoDxo^V{M$uML$W@gXMUj%)3r>BJT!4lK_+O!+;9KY(d9Bx!q`;sCf&{rA^K60BZR&GS%mP~&hkXD61>&+uPF`-v9SvlhF_J> z=`pe-Y**P6jKo+yct!Y9rX#ksG8kf=|Ixev8>q9#_roUJf_%*AF?#-UVY%{~*(jN< Sd3M1pDw^104v$&Z?|cDI1)FmK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..6022825dc2ef31588fa0f4d99ec60483944378ab GIT binary patch literal 1379 zcmbtU+fLg+5IvhXm;`evrQy=qL#OfS%RstBWF|5AL#=> z&=+1RwW{bt)#rXkzoYcT0Sdwr63ANb&dko7@tGO_{`=!6fJb;{A|dc12phKBa$8#Z z_NFK6fwq<3aD8Q~UFEd38~C(oWoy~kbUm#?`?wgz?y7y;|dHq5t7>IDp~^BN`%AAJbO9tJOVMtvOs#(ZTM2RLnTm) zy|h@lN;2gog7hr9zN?o6#`Ccd)N1p^ZvZlrJ&W?Od5mOA$5Bm9 zu-SYZnhvF-Y%gfotb4hz-iKSbW8${JNL-~Y+(k~Hm(3SS9fU;A7f#jU^^v~ZhbhdM zm?i=L;~ZNp%;Fx|^wq8=&~b!Q-An%z@)pK1(TP;FFo$^ob4#|WkrRnu7qCvogxL#B zUHpY?qV6CGEXCcvX#7s5gQWMbYU#XRk^_ToSJRIHTHaDlaL*LKW3V{)4Z~k3B{9PH0C!*v z1_@1L0yijSySKTIQlj4x${5cU5xSZTPn&zSr%5s87Sgmy*G`&EOPe-zn%4EDwXq#1c3c`RVZ3|19(Q+U zGc%jU;Z_Rt5^kj}v_OG!sl)@73Zmj7fp|eeNJzXO@q)w)5-&)+An^j?JLk;Io_NpZ zjEx_>-aT`^@4uY?|Ih!=@BjPDUlY-t^m;et7>)WtrRauk7&%^XrRpsEQIUHU*W*Qg znU@-o>w9<>@nYmuR@`dDgW_1#3ByIFGA+M!QzxU{YtAL7SarNg@$~WITyLrJRPPZ2-m5(g~idiu?a?Znapd3tC3}77j!t9ry?Cgm_c3XvvD4l0=FLd z0i)waFE?pL78qEPML%Dc58@9P1JV8*$p6AT(9$aCxAn7I5^MS ztQ_*lfbLlkkrOon9K}*L)XBppcWSXLv`JEOdlWKmBAD53+%hq=cC zx15CN1J>DD)6HG~t!1euxa8<;xiRdF(6E7o(_bZvmQgnOlz`AOGMBo2M94|w@FMw zDP`m8Ka(Fl3+YTVPxppHAqo(l#UmfEc9zD7Lo5gv@m?vnKuZ zLJ#XxFKh9!QugnMgCM zy*c5#v>amOY%w^j7Nl@SJDekWn-3${% zvgiboCy6*Li>o48mdyIC!^=q#7}U0Dp~7gd_8_5Et7m!WH-Zu$4bg9N2NT161~=P6 zBb{_aR3wy2zvU7?uX~pQF_(8Zfo;sN+Vs0t(Y& zB<`KKT;g>(+;`KL80~A0O0sDT8uf^m(@hwxBDco<1{fI3=_*W537ResEeDii==1jK zbJ={rL$rlZ*GXqJQD0ThuFr30Y;{LE%$nLwO4Kq@F`Em}Z*iM0&@{_5(|_pE|+QLkDONehsSKw3lwgFW@9A%%r#Bnc_Tx{|wJ^ z>`n10xpv5vA<2D1auQtgf_?VUucu-_|XRB9h&r9Dm_Q5+Q-%(jmY=Yj8*2J zjmX&yKK`o_IhO(XcO&w2hW!1f5jmd$`EMigjJ;%`8i@-k4^N6qM_o`D-ZCI}8j%Yb zkh_h@MJ);~*~e}&GMv*GmaZSiY`>A=QH|jP7KVb6;W3TjyoKSIk>P_H!-p&k_Zk^K zOdp9eBW(>fW+Qu0B2{COoV$pC3-nQ7G2YU0TKh{I+_g%Q~txv88rDMwTi+0ICvbvf!vZ`E0_vlez?#p6^>*=rUn&P$JM z%?eLDGh6H~8_&$w7;Le-W@M;q47S(}j0_hw23zc2F){=igDrNSGBSi2V)v>wszn?Bk(GH9_RT5Na}>VFUqL8 z8^6S@+amjrW_Ti7sQG1j9-oY^(pOr@9+1=qvZInrRl!y=LHh!|2t5RCe+z9}{~R}( z`I7yuL+*afI=wylYW&vWYxFXdxo*+QO;|Wy(Ng&9*H7WxtY%4~52J5vg5jKz;hXd- w+^I(FZ&~b74N7aMf1ADoUod)&z8m|bZ7IrKFlzC=3`tTpBEOG_%Fz%02e{!pivR!s literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..921c9289504f96f78736198ee68dade96a0b6468 GIT binary patch literal 1792 zcmbVM+fEZv6kTUJFtm)IctueG1zS*$;+-OjRTNWdw3S5PhVfVjhnd<=jsBA_5-&j$ zUrqc6e}%Zt6id_*lw>aZT=w2;uYLKp_UQ|N3EZ(@2;2?pRp~XnM&tzYsqZX?kyJs| z3zSr^l-rEFFyL9FWaLzzdVZwpvJfuU!axO4*$r!|;#6njeG8_*&L!uiBYh{R%6p4T z%8e{^3QTRoOWUr1wd~YtUQiV{TTHODek#}h%i$B{%lVc{UZ8Wz3%qDr;C%MKwQ~ys zW`PDXNMVPKG6RXK2Kjb~vb zF#9h-ZH__5tvwFgIHo9JLtdUwResNU^q?-qQg(Xfyem`Px0%S>r)y1W~k$>0RW zblHsmV}2I8aSGDHX#ttweX~-xaRz5u?ll5XtcSTo>U4j$I;4d#pG#toeecUk-7D+X z&!=$?7c86?7)-$Q%Uv56afv-sdGL_cF}$_y3~gVrF$vwN>P6G>34L$2`1>4T=?d8G znM8*FVt%9ebmCd8jdn40hVe+^p1YnU`do?=#q=a${evxm9puD)&hZkrwFQQm#L6!) z1Ty8YS$7pDCC9_SUnb~j?G8g6Eh)Yod<{KeIIa!KX=M2A=4zH}ga6FfN7!TI@6r1< zzO#$p9_j)IVX{@z7(gFa`&zfL8+*8-UTjs++FqWuY<{O+C(nvw@6h`d9p;-A>>ppn zVFUA&POf6eK#9_+RU9`kY4)4(tH=?C)5`NdqgG_<+lAXfFkgYLr;O zhPNDZL{hUUxqu4(y(tE~ncTQ|y<^t@_w$Map& zuCIhb1qp#u59HTUv!q?uHg+Buy00K5u<#15wq(byK*sBO@&rcKLKlQ*X=TT<=z~B@ z0_mz*x24~74S`~$(n6aXqN|3;ON+diS}<+XUlhpYBd?VT+X6GuvPhGGexmH$H!_Ih zl!|`5CJ@gTw$l)JU4?=^fuS`oWO8YZdAO5^8$+L zEkA7d`(Y?*Xw2(yh{r!7&xq<~-I^tcMl2 zC%sCDQaze*%!Cgrkkl>tK9~xTI^zB)F~RdL;eO6<47Gm%3h5b} literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..30d887a21124e94927bdc8fb9aa8cd971aaea786 GIT binary patch literal 1730 zcmcIkTT|0O6#llYq}HH-T&$o(6if>euXrgaf}m&-u?#cl(>5$28q%6>y!;h^gD=i# zb#&B6XMFYlsArSPMR3M(w3%+QyJx@iopZjkU%tKj2;em4H6$3uD}iIVHMb_YZ>@N| zT#=UW9oH9@cq;5rx)q=Hq_8A+R$Nbtz`DsFbFbn|M>7p6hL#7kWO>|othw?7VM`57 z45NR6y}%o|3{5c)hEnm5ffNs-CIfB@Ye9`O{)z~MZ;J-&sVKMt!>&i62%a&t6*tJ2 zWZ?P^Z8nX%zAG;?teXG9`F4-FMTXR5Wm#m9#6BH+(87>3bBh|<82UCC&Ul`1xOX*h z!ZqQ`si(H6sv4!y&d?qQXV~07E{(D<{Lu3|*FJcXFLZmSO+AO2@B9yKzWE z&z1tmInr?$y~LRkwnmQ4+;-p$x^YBDAC6K!Ju0SLjbfTfqo1Mo7k_e97-Fp|pBc5N z2)n^>T!)6Vh8#oJMhapA6QS!Zi$FOU)G>q;3>wuw6mu&K1DoTF6%+O;_Zntl^ET|J_b(~WPNXtshNAW$cV>dDk`-;>*x5Krv2o`wR6G~(i zn|q5qaMirAn3Ah*jbY-?751ARB*8Y9B)1>V@@j;wfuuYC&%1_F%xxt&V%@)EW5kU| z9cWP_7jpM97{i2)NnE2;IYLeZ-1Qk+NiV7&i)0urQBJ3EL&J57WXpz*8Qf&p!~NP5 z5k#6{FgKSsPJiM4CISAe_&o-F{T3ra)JZ$#dMjyCK_F_OCm9$4WJ;AVumxRqs*H-; z`qekAG>Icr_$2*zAwdu6m2TIB(n0hl>d8EIP)4KF9|k@3p5UsLm*48 z4ic4aw4n!`I0S>X;hqc|kCVh^7Jsa_B;S a6NT(Lg)DBNNU&XGH;daeGR#G%@B9F=iO*R8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..fec77f73b054ec400ac0b6e68e3ed75e62a9fc22 GIT binary patch literal 208 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.class new file mode 100644 index 0000000000000000000000000000000000000000..69c038ecaeef03a6be6a5493403a03008186a88a GIT binary patch literal 338 zcmaKoK}thG42Cmp?W?ZbdIQ}UaNAWWbX659xSuyoA1Qg0GLtEK5HI7x19&KLYPSzJ zA$;T~`SShq`2_$EaM{4f!BSI)oH?71xD(&1A;pd(;m)&^M54hPZGAA-h^sSPpW)&U zHZXB;z4u3t;$w%;?Vf@;Xy}bXF>>&6yB^pRG*Pcx65LQeXw2NQu)RN3Hvd1c)V>BN z+D2t~wipW@lD0y9#z)H8ceDth^hLaBn%})TxO&l&0!H2_yt NFJOA=ps95PvtQNKZuLQ<4}H2whQhvO5U_lbtv-O9(z% zMB8egwzaLT)zVt&LoI5X5K}1jMQh*h_kUtbe|Ki~kz_W4`hCs!W%usA=bm%!IluF` z_s##leh$ET{98eVK!<4!C3IW29W|R6G}HmpNod(2J*y=KRo%#0nqj6@N6V;bM>n&H zc5kxNo7~|}cA9ENvlN5`793KKs0l;O4khjwIHaW=fh%pz;DDQV>Z)N53AAz4ye)0$S>3r=pt7#MUm(`W#Eo4khbLrd+aQ1lMAp#uk=k8~;yPSU=w!9gj;suZ zG~u$iu9SrbXr6X0AsnFo<=Sl?>d~m6LEwr~+u2SOO;|@%tC@_zlG20uD%9VlAR%y7 z@eJOHZ_DWhBQcB{1*+X+#Up6O28rs8Gg#$q)GvLqIf^Z~NuY)X^%exylnTyMmsr%F zk^)+yNMajhsv{#>mP)U?q`khn$uJnh^Ws_4i4U5&Y^GWAyfum)xQ#w`%)Ca^-BFM) zurrD_w3Ej{HyYY3%d`ZZt$Rm7QFc=?In9C09TTWyk|`o452b)P19k8nw;fGuBQlvO zxN91f7lP6pGSd~Q?w(F%7}}6(Fr(2n1uB7hzj940Qb9gr-ncdJn3s`wSyYB+WmbVr zWnnZ|LS~Ex=}tWtc&_vFtL?C!EG8Oe)dPWB%1XX80DHOm*fD{HC2;ZbCvi!Lt(rMM z%b(P)lqlGpGl>GdNus6Gi}u(^zHslGVUuk^C%@dRoV=MLQ!`Jvt?@nMJ-^RU(}%m% z5x4zNa6rNR0viGfitFq-;KG(dwX`xV1@i!_L{4B!InG5m6uPV)Q!lg>VT=kib91xb z9yWXJVY6q^<{+R(;9!INI2OeNcu-(I3rc}IVO&?|_Z%9Vw-H-Qq)kgpSh=jD4{M2z z0x5lPML|DTD}k*+E|?Li1qP)jA+rr-dat0Y;I~xNcJ!T9kl?mzhNg2!W{dI2v{u?H zbzwXzORU>UOB;VUijUx-d=-?0Yy}?^NR$I!0n$6Q zK{aPMerFoNC-5l+pA=Xbu(RF0oAekt-c6$TG@cZQ@ZdfRfz|BQ-ewycjn6V&&xUjj zp28Otd|u#&02YB^*ry%QEZrH4;){5iDYLD&_l{nH^+7t!$$(0InMvF2S>gt7QtVu1 zoo5R>kmJ28ZfW)i%f3FK8y9=YAGFM2ws|Y?l_;K-9aEHM=~h{k zM%1(x!4vqZ?Eg**ob=!v7N%6Bu4cN z_u7fRgPLLdUvFd)-hy9@;)D2*f|mvMm9t$T#pdtZ3^L6~_(2tvQ930-k7XXw-HXO) z_MJM>8pf*}Wr?~lUWni&d|zU2oJl+2CQxGd*>K3GrhWxy1a@4q=7r2ZvOPS zaG5zPttF1AhMtj^;zVJ8AN%S4{B#&U5U8a#!PPK=Nt}~M{vrF7fFpO*^PV+fA6 zVf;*Bt@kr-X0c8MajzQLamS1gXv|56wJdLM6Zm-)zrdT!MJ6wVUCiHCE&&qFy-Ie-Q3%1vbS{WW^x{Wg>D7Ep7vl-T$jteGJ1X&#Udr`(p{x7=9O zFo7$J+p673Z%fo8z(T}GSR=v38E&qqr6ys{y)lI)sR>-w)sSkbKDW85a&zbuo~o^0 z5?bHAF1BnO%UhJDT4fyZ^H?*9x(e(&1*=7ATsMX0RP2Tctar&ajbm$UJ3q#8ORaJS zt*6jgpxQN!s$&|}ngZ4CvQ&?T#FEgGs*@KFH8oA5i!YZ_mpdzP9(zyIv@7_qyb1f< z@BK)*-^a0^mXmfIz%qVb&*QG;N+Yi3L)SI@z7`Ewjdk4F%y*~+w&DgpUfhVi9Ph^l z+=Gp{m#bsg%xlF)94FNY+=RzS`5anslH=#e^JQ#z{nP6il=}`)9!<;L_tD&8W@(jL zR8ack^k;?|uckvZ3=#xesK*cva&(V7(m6Wejt+5jn0%IUr^mzK$lE#0wJg_qQGJoG zor(fe!H6QEBsc~xVr9v!f)(C87x!rjQvBb45vxi_@*67%4-2*j6Wm2zCB~Lc!AZrA zOyKD5hH;FYdm2@t7b{=nN~LS#7;OzchlS8ifVUC5yIh+{07gjh5FX~b)R^df3yT%r zBx+=*;LC9cM;Ri^3vxOeLuYY3RT(?cH;%`;noe`oi;GpRoqH(jPRi;b|2_hI524+M zt7wsB^q`EFxX01;f{dmGt`@w$lF#GxQ3dDtfah!QB=wPJsBf6U6R9)!c;&^+b{muj1N$jc4$kt|`2fihVcsO6;`>e6Rae zL@r?26edy(%E?r0Dl~z!6FARo!lj1Tk7GY=663hg5~>YdK)908bGnw}N&HfV(uzs^ zMuw6}*1wfz_QGZmwHzCif0#3eC_PJ!Ow41qJRkStO8$;vm^sBJrNfZQ@stjOX^cU1 zi~;ii1Lr{k{2>O)7~g7-GEg4IZFKuCJVHC2pq-ApR@vyC4Zp`9D3ho3L#K*Ve{@~7 z2wnIS{!FWEX9)ZSf2B?`I3&QlnZI#H0&F2F{)1*WApZUqmMN^Q0{`Sf1^)Fvroa-y literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_constraint.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_constraint.gif new file mode 100755 index 0000000000000000000000000000000000000000..503e9e81fc1d2545e1eed19054973e19c58582db GIT binary patch literal 87 zcmZ?wbhEHb)L`IeXkcXMZf^en|G(l-7Df&RMg|=QAOOiQFzNO5uRQ&he{oJi6x*x2 o%d+w^tlIXbsz*iid}{jrqQ19(9{uL5WM!}h0Chwk$^ZZW literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_previous.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/arrow_previous.gif new file mode 100755 index 0000000000000000000000000000000000000000..d5f5dff499d152d8dbfc6194e2e3824dec9e0f1a GIT binary patch literal 85 zcmZ?wbhEHb)L`IeXkcXce~{t-|Nn|VSr|DO7#VaJfB+=Jz@*dDzw-23{>3>7QEad7 nF3ZZxl$WTDYg_i})TR?2LF_Wgv9W9>`%-HDadYvrGFSruf36%~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/dependency.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/dependency.gif new file mode 100755 index 0000000000000000000000000000000000000000..27661f3f047520051c5a82f9371c50cd0dce2cd4 GIT binary patch literal 84 zcmZ?wbhEHb6ky=qvtX+{(W`o*`}G_ZtcD|uVbm0;Hy20E;Z%9 zKe6V+sdc}f9(}m1@5jCUia%KxKtKmXfXrZEkv2H-ZHbT5oLvVbI)pUtv-dnLFuGUH M;xbXwpM}9104c06EC2ui literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/ff.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/ff.gif new file mode 100755 index 0000000000000000000000000000000000000000..16f4e251756e92ed4c271c57c483629b824961e7 GIT binary patch literal 337 zcmZ?wbhEHb6krfwxXQqwS{k5R6JgdA=QuApVs&A}szTr8X}-%-eV3&su1`$dkdV7I zK6h)}!-gL(X6%@u@#8_qhX*V6&C$59BV)$| zg&#K>Ry0T~sF2vup>SY9!vFvO8E6I+f3h$#FeozUfNTKyiGeNez=Q%19jX2kDuI(X zMwlozGVGigVIJ6dWyivbjZ7RWn`G-WL{F)|$}pE|Z2ZvtFyR_gQ(U|Pi&IHiHX~ar zJ39w^eY$v-A_M0{E-r>5McFtJ*?w+r9tH*%*)ZYR4Ezh+6y(+@^e^<S?asfSPXGIM zbH^0by|dJJO;_7DN8{42%s-E(|9(8<@0+cE-)#E}Qgd#7r^2RQrEL?Hf8TBX^LXZ; z=PUlc-v0OXj(?xdEw7VV+bX}RN$$|H#6wFH|NsBbKy9G-lZBCiL4`pFWH8823~c!h zlL|a^r20=R`S>uy&ci4Dq96lroeQDw<8S7rIN QN-AsCd2QaJ;>chP02(!ZIRF3v literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/play.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/play.gif new file mode 100755 index 0000000000000000000000000000000000000000..57f410224cf0e125fefdfbfd424b34ca32650ac4 GIT binary patch literal 379 zcmZ?wbhEHb6krfwxXQqw(BP;BL>-Qf6T{aP*iM?lCLeYNChZ zME|t4Kq*J#ax2FU508od{@|VOltj+J(UOww!N5}U3iQCI3ZqHwGu%qFO+M$;f|G|KP zbfEZ?g^__lk3k2d733!dwiyo73p{kh9NV1~0xTMO)-@+?HCpL1C+*_|jkQs$L%3SK zWZD#%Uw+AK^#3sVq2$yax7_cq>g;#(C^lABHOjI%u}OEy<@M@F%Q8AK@K5dOm7mJO z;KV30f4Z*Rd;#G}fjokO)8$r)3o+Lza0p5E$no(>iVJg;1ab?@$%#scNeOe;IkR(c Y3G?y_b8(z@@nG_1@(Z}@>d0UX09ibCp#T5? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/property.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/property.gif new file mode 100755 index 0000000000000000000000000000000000000000..58c9ab746b2dfa19af2d4e5a5a402c742437db60 GIT binary patch literal 181 zcmZ?wbhEHbY+4t7{FOVrNU)MirN;i4!G;5-9BbEzi83)*0|3M5K>q*$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/rr.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/rr.gif new file mode 100755 index 0000000000000000000000000000000000000000..d406c5a5537e48e41217c07ee90986b4cae7af1c GIT binary patch literal 335 zcmZ?wbhEHb6krfwxXQrr|Ns9VKVJO!u;Igl6+d3g`0=3Q$Bl+H=ld3&?p}PlYx2?d z$w%8R?8rEn=$_0Tw}q6-g^^ynWM{D8Qa*Bq1T*tiT{x zRpTV3C@d_}uh_=KTHvCnC@Ui~Q7DN?$ZfjxoJht6?$a4~<=60ft>3WG*^$8-039n~ At^fc4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/source.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/source.gif new file mode 100755 index 0000000000000000000000000000000000000000..b9dced8ff5aea1f06413f84c246eec571b794934 GIT binary patch literal 179 zcmZ?wbhEHbykDS|6S mj$XL1)#Fc_TZ)HFmjK)0#)HzF3jD`=u4G59zY)m6U=09oLM_?= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/step.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/step.gif new file mode 100755 index 0000000000000000000000000000000000000000..32c030de3099b783c36179c5bff4d4ef6b85c3e7 GIT binary patch literal 89 zcmZ?wbhEHblb0cLKNc!>bUxRZ(m%CHRlHc*`aUm<;lK473=Gx)82TRl literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/stop.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/stop.gif new file mode 100755 index 0000000000000000000000000000000000000000..69c31f421c0b5f964407999e2c7f39b94f8ef966 GIT binary patch literal 217 zcmZ?wbhEHb6krfwIKsfN)7SBD+Nq?u4;a)%1tvqRO_5c5W2I7F?PZmZ71|bF=kaCcn46I=bRQggf=VfFG z`M=)f^3tIs*4jwqO^v~WB^)e{I!X!?gHj4ItoTm|IRvbT;%-vmT;Nf$pObaLkp*$9 jncOlN4R_pUJCVdIdE@;z%at2n{Qk?U)zmDc$Y2cs>J>(w literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/tag.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/tag.gif new file mode 100755 index 0000000000000000000000000000000000000000..84cd723e0ce50d1611f6ac08cb026d498f59ad54 GIT binary patch literal 313 zcmZ?wbhEHb+yYF|DpfAO^N!I8wfcayGPPr1D#^1`C2hcbjkdYuiF|dU> zG!%H~NcEpsQgl)z!)$in6y{JK_L&{m4%lXRI`==>^tO(%zn}BT0+$_Z`7Co3bkro) qnH4=~V_;?A5G$yzWvh4Q5v_`9?{s41RZ>!&raVQ!XSSOogEau#*=x%H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/target.gif b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/icons/target.gif new file mode 100755 index 0000000000000000000000000000000000000000..66d4edb1427fe7582c80b12c9c690e1a51fca54a GIT binary patch literal 863 zcmb7@J&Ti35QPU+$QE%05!_(mHWC&a83T$o5^%MV*c(9>rb%U&R+O-QfXFsZXI8L` zYn@84Ffz8;KakcUl~|3>yz3wEHetAT&OGPLo89|&Z`^#cDVy?JPL7J0h>L_s3YDs; ziMnWrW?hX@pl zhHBPWDl;`#3$-i?F5T2!J=C+HcpIkS8ljOe(yD2it{Iw4g&HxSp#+ON2BVEMS~O=F zs+!|wVV32Ou~hEnVV-3d3NFJf!Xj}G6mKovGAyx29$?Z<9QX$UhfpI1G?YArgTZJc zjaF82bxq9)_pBiC$5^Tek0e*@LcyhHc#qA#2;g+BC{6QtiLFljn+P!B^6YYd#$&LvKX6mYTJ$BLT)_N z@*Avj&`d&_&w(uw9-f*}(r&jqoldvg?e%*7et$3+42Q$fXfz&=CzHv+!NGJooy}(R z`FychESJmGYPDXkPkR4-$p8Pd{pa*XOOEAgwbp+^TDRr%#-)2lAHF_so!@!%{b>7+ zoceg-{l%Y`W&ilfgX>R!9qzu}>g{~lf4KMT-I;5TUw``c;^nKedq3W6os(OC0XvF) A1^@s6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/javalogtrace.ecore b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/javalogtrace.ecore new file mode 100755 index 0000000..6fe7695 --- /dev/null +++ b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/javalogtrace.ecore @@ -0,0 +1,10 @@ + + + + + + diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/locator/FlabotEngineLocator.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/locator/FlabotEngineLocator.class new file mode 100644 index 0000000000000000000000000000000000000000..e30235174d2775f2c866e85502ad68bff98f7a5f GIT binary patch literal 3371 zcmbVO`%@EF6#gzGYz#pGwIxd1RI9ua<0GJwRtq6$Y#zuXN?*7nOIX}wakCM%&;O>s zbf$Kum0D(Me{-gPQm5_o+uaZny9B2{WV83~J>NO!JKsI`{_)SRzX7<2ZzXgHjO#`z zs#eviDOaLvn!Ku;QKeE+D@s(;3$m#j(OG*oX-}q|ISC$t-VOPo9M$AXDVkf|Pzt7m zE`jqdfHhOq8gL1{ys1}|idn}J@TYT$sm0va(r6c^}8=oKqMGcRj3 z#fNTzfD^0}mcYrmsrji)axpo-GMk>7&MmIYrqaokOl~Hb_TjL=5oi6Zswo-0sAvMA zJ(J|!WMXMCmCLTAva`9B%v5&jMsnVVK7nJ(Bc;Fu^h&C-rf1}eTv80e8MTV3mX-QM zl`~G@cCHzDlTmlQuU1s^nn369NM68`pkF^aF%ZBp9G7rHpwCX$wz(-+*JrMF6!>?pA z(o_IOJ}M}i7B5u^X9cdh_-$MFhJ81NF)Cq%W!__hOaw57Fv%+^roh>HP)%}+ zyTm2ooWLcQP?VxdVe_FIWvl#kRX60|!+C+3gj^XiLk?_79cSbj#6= zk+`Lp>j8X-DavEBMtNLmCc3WC|EktSFn%PEl)%Pwc7OLylbO?M?27@+;s)hURn91D za!sT6(cyN%H(SRof2ja&;Uj@V#7OHUyPq7ZLsYf3*hbWujr))h7)t0ht!U}e>L#kJ zsZW%Uxvspb$!_FuTf!V0vz19RPyq8-5b!F7p|f|5Hj`CXWfNJ8>xRB%b(Z)@-V*bY zCFTVQcLa{^_2$O*B^R5rA(s_XG1!2{UCVgD?qfeW+}cnXr7MuD9$0_Z#jl|{0l}7c zyea)gVhpNh!ITU4*^BHZD?#3+K-HtETw|q#0zcg1amd0&=d`8|1RvU8SalOeA$}Aw zAYq*+)BYA|T`nqyA0=#9Ww|d9cHeOhQ7sNwPYLC=0WCbPno4h2y9|pj|I%rNch7EjMeIGU1o#*}<9R{^&L?ycqongW>wOST^z!^JD$J_3^}{C+OK-eZ^iK z^lW1?Ya2zL<60-~e237a_ZLh*!_EG5(EA+OPT24qY-907JvLF+7Ae~t*ZaSuyaBfcd^C) zFX+Ld<(iXloff9f??)Ly01rsxGASCS<;PszN&IQ_;Zu@y4=3>%@x53f#sEBj;e>?9 z--t+vNtjrYkpGj!cUV`0I?Y}DzlT-3gx}MvMRaTjMOJSuvxCxdcpGYV2ikIkZ%Q4o- oF=l5WXcxvKJSJKn#qfljbP{6#Uy=n65&U-EUb6AE?em*|0pDuAqW}N^ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/Messages.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..0714f26d19b7a02e75ee31d1a04485b9e126df9c GIT binary patch literal 1370 zcmb7D+int36kUf>7>1!2Dz)OJUXhEPQTk-4#uhO#p)>*E#fN5~$8qW~B+OvqC-iT; zJV<=-1N31K;4T zWxL$ybI&s^?iq*SA&w}++Nt@`G#t~ljHB);@A(YLgLdO(y>{H#KddpN>lYm@e`vc_ zg&|cPxI)73n9hhRNJwQpRMw@kE|v9(^7(;bwOMN&wVT!2u@qy-N}Z8!J4TaxgVC_Z z4@T~Z!%0us>p8Y-`_CDc@`VmVv^qH9D%OyWW1V3u@HhvnVFOnf5*GI*8H1kx`$mPu z;t4QpYEY3R*L4cAG3s~u@QvAZxJYNvGo6k(v_&2M8QTlIs#wBx4cCw&zy5pMW7w%* zVm=~g@-0K(_g)h|x7d3y!f-$;?%-Y=cS&%LUJ%n{Cg*D+{xm z)~6|b;Gbmd(vonL*N_wRPv>0X?G&%v!%8@lX*y%G>5iAE(z99zK?@su_zgzwU?AXqMbNA?1$QWK~tN+bfN z$tK*uO{x+U#_i8^mh!?ous(%X@POP4d~Ol`;VeEg2Y*KTg;4() sT~c^W2>sF+#aV)EK(HyBLIc9W4s@b8BP)xjj9IGfe^N1;g}8h9564L}rT_o{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/messages.properties b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/messages.properties new file mode 100755 index 0000000..497c64c --- /dev/null +++ b/org.isistan.flabot.engine/bin/org/isistan/flabot/engine/messages/messages.properties @@ -0,0 +1,186 @@ +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.tabName=Predefined condition edition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.group=Condition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.stateLabel=State +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.nullLabel=Null +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.predefinedConditionLabel=Predefined condition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.descriptionGroup=Description +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.configurationConditionGroup=Condition configuration +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.previewGroup=Preview +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.returnValueGroup=Return value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.argumentsGroup=Arguments +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.instanceGroup=Instance +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.noConfigurationNeeded=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.evaluate=Evaluate +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.toStringLabel=To string +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.valueLabel=Value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.useFieldLabel=Fields +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldNameLabel=Name +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldValueLabel=Value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.objectLabel=Object +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.editButton=Edit +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.classNameLabel=Class name +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingGroup=Matching +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchWithLabel=Match with +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingTecnicGroup=Matching type +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.substringMatching=Substring +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.regularExpresionMatching=Regular expresion +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.negativeMatching=Negative matching +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.fullMatching=Full +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.tabName=Matching selection +org.isistan.flabot.engine.mapview.MapViewPage.noExecutionStepsMapView=No execution steps to show +org.isistan.flabot.engine.MapViewJumpEditPart.to=TO +org.isistan.flabot.engine.MapViewJumpEditPart.from=FROM +org.isistan.flabot.engine.RunEngineAction.runEngine=Run Engine +org.isistan.flabot.engine.RunEngineAction.runEngineAt=Run Engine at {0} +org.isistan.flabot.edit.editor.cancelButton=Cancel +org.isistan.flabot.engine.RunEngineAction.perspectiveQuestion=Do you want to switch to FLABot Engine perspective? +org.isistan.flabot.engine.SequenceDiagram.noExecutionStepsSequenceView=No execution steps to show +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.executionStateSelection=Select Execution State +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultEventName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.descriptionGroup=Description +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.tagColumn=Entry +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultConditionName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsBeforeButton=View Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.timestampColumn=TimeStamp +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.nameItem=Name +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.idItem=ID +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetComponentName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceComponentName=null +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.methodColumn=Method +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.instanceColumn=Instance +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetInstanceName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceStub=Stub +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsBeforeDialogTitle=Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.threadColumn=Thread +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsAfterDialogTitle=Entries +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsAfterButton=View Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.clearSelectionButton=Clear Selection +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.selectAllButton=Select All +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.methodPropertiesGroup=Method properties +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.declaringClassItem=Declaring Class +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.returnTypeIetm=Return type +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersLabel=Parameters +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersColumn=Parameters +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.instancePropertiesGroup=Instance properties +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.classItem=Class +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.sourceResponsibilityNodeGroup=Source responsibility node +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.instanceItem=Instance +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.evaluatingResponsibilityNodeGroup=Evaluating responsibility node... +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.stateSelection=State selection +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.states=States +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.instance=Instance +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.responsibilityName=Responsibility Name +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsBefore=Entries before +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsAfter=Entries after +org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.branchStatesGroup=Branch states +org.isistan.flabot.engine.RunEngineAction.exceptionTryingToLocateTheFlabotEngine=Exception while trying to locate the flabot engine. +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.componentType=Component Type +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.event=Event +org.isistan.flabot.edit.controlview.ControlViewLabelProvider.steps=Steps +org.isistan.flabot.edit.sequenceview.SequenceViewPage.dependencies=Dependencies +org.isistan.flabot.edit.sequenceview.SequenceViewPage.precondition=Precondition +org.isistan.flabot.edit.controlview.ControlView.actionRewindTooltipText=Back to step... +org.isistan.flabot.edit.componenteditor.dialog.EditPropertyDialog.title=Edit Property +org.isistan.flabot.edit.controlview.ControlView.actionFFTooltipText=Execute next step +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFEnabled=Deactivate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFDisabled=Activate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipText=Activate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPlayTooltipText=Run execution +org.isistan.flabot.edit.controlview.ControlView.actionStopTooltipText=Stop execution +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.exceptionError=Exception while trying to reset the runtime manager. +org.isistan.flabot.edit.ucmeditor.actions.TreatFailureAction.text=Treat Failure +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.scenario=Scenario +org.isistan.flabot.engine.MapView.mapViewNotAvailable=Map View is not available. +org.isistan.flabot.engine.SequenceView.sequenceViewNotAvailable=Sequence View is not available. +org.isistan.flabot.engine.MapViewJumpEditPart.jumpMessage={0}: {1}\nat {4} UCM diagram +org.isistan.flabot.engine.RunEngineAction.switchPespective=Switch Pespective +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.instance=Instance +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.cancel=Cancel +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.treatFailure=Treat Failure(s) +org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchText=Branch {0} {1}: +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchComboText=Branch {0} {1} +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.responsibility=Responsibility +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.executionState=Execution State +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.faultLocatorEngine=Fault Locator Engine +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.componentLocatorError=Exception while trying to locate the flabot engine. +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogTitle=Run Engine Error +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogDescription=The Engine cannot be run because there are some problems in the flabot file. +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.results=Results +org.isistan.flabot.edit.controlview.ControlViewLabelProvider.step=Step | +org.isistan.flabot.edit.mapview.MapViewPage.faultyStartConstraint=Faulty Start Constraint +org.isistan.flabot.edit.sequenceview.SequenceViewPage.constraint=Constraint +org.isistan.flabot.edit.controlview.ControlView.actionRewind=Rewind +org.isistan.flabot.edit.mapview.MapViewPage.faultyPrecondition=Faulty Precondition +org.isistan.flabot.edit.sequenceview.SequenceViewPage.previous=Previous +org.isistan.flabot.edit.mapview.MapViewPage.faultyConstraint=Faulty Constraint +org.isistan.flabot.edit.sequenceview.SequenceViewPage.mapping=Mapping +org.isistan.flabot.edit.controlview.ControlView.actionFF=FF +org.isistan.flabot.edit.mapview.MapViewPage.notExecuted=Not Executed +org.isistan.flabot.edit.controlview.ControlView.actionPause=Pause +org.isistan.flabot.edit.mapview.MapViewPage.faultyNextLevel=Faulty Next Level +org.isistan.flabot.edit.controlview.ControlView.actionPlay=Play +org.isistan.flabot.edit.controlview.ControlView.actionStop=Stop +org.isistan.flabot.edit.mapview.MapViewPage.faultyPrevious=Faulty Previous +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.text=Reset Log +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.text=General Log Filter +org.isistan.flabot.edit.controlview.ControlView.step=Step | +org.isistan.flabot.edit.mapview.MapViewPage.states=States +org.isistan.flabot.edit.mapview.MapViewPage.faulty=Faulty +org.isistan.flabot.edit.editor.okButton=OK +org.isistan.flabot.edit.mapview.MapViewPage.executed=Executed +org.isistan.flabot.engine.SequenceView.controlViewNotAvailable=Control View is not available. +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.evaluatingDescription=Evaluating responsibility node with event '{0}' due to '{1}' dependency. +org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.noConfigurationRequired=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.tabName=State Determination Strategy +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.strategyName=State from architectural mapping +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.error=Can't set a state from mapping when the responsibility doesn't have a mapping: +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.errorInPrologCode=Error in prolog code: +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.null=null +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.responsibilityLabel=Responsibility +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.selectStrategyGroup=Select strategy +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.noConfigurationRequired=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.configureStrategyGroup=Configure strategy +org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.strategyName=Manual strategy (it asks the user) +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.faulty=Faulty +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.executed=Executed +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.notExecuted=NotExecuted +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.filtered=Filtered +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.wrongStrategy=Wrong strategy +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.prologCode=Prolog code +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.strategyName=Trace-based state determination strategy +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.addConditionButton=Add condition... +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.checkPrologCodeButton=Check prolog code +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageTitle=Prolog code check +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageDescription=Prolog code OK +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckErrorMessageTitle=Prolog code check +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.tabName=State Determination Strategy +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.configureGroup=Configure strategy +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.eventMustHaveAName=This configuration will be available after the event is created. +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.prologCode=Prolog code +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.errorInPrologCode=Error in prolog code: +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.faulty=Faulty +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.executed=Executed +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.notExecuted=NotExecuted +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.filtered=Filtered +org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.name=No name +org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.description=No description. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventObjectSnapshot.name=ObjectSnapshot +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.name=VariableStateOnAnyTag +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.description=It is considered as {0} if some event is logged during execution. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.name=VariableStateOnError +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.description=It is considered as {0} when some error happens in the code. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.name=VariableStateOnCustomTag +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.description=It is considered as {0} upon the ocurrence of selected predetermined tags. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityObjectSnapshot.name=ObjectSnapshot +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityPreviousScope.name=PreviousScope +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventPreviousScope.name=PreviousScope +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.FixedStateDefault.name=FixedStateDefault +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.tabName=General Log Filter +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.selectStrategyGroup=Select strategy +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.configureStrategyGroup=Configure strategy +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.title=Edit General Log Filter Strategy +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.dialogCommandLabel=Edit General Log Filter Strategy \ No newline at end of file diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/Dependency.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/Dependency.class new file mode 100644 index 0000000000000000000000000000000000000000..9d7d02525a0e76d355f11ae189687308e3e82d56 GIT binary patch literal 340 zcmZXQO=|)%5Qg7aYqr)_3-#z-p)}yN*V>cdLFqllaf!ra*^N^FS`YmJ{ZZnqABcKL zW*`sG%$xu1?;n6ZUL-04Zy`^WEo>3BS97PQAu9SIvx+wOWtfpupOlfGkvAKOsz7U@ z*IGI4Q#G0{$V7>nK&SMOaW*SR(Q?jx$Vm+jh=5EfPBs|{ymouTvtk@`>(dVgiWAW8 z-oE#~1rk;a*5u>0<1m9A2|JF&h2#j7lKMETazkI%@hZ)8wD)o)&LMEe=bnG4%2_26 WZUi1s-`7Vp_Vo$ROt66O3R*j5ty!V~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/DependencyInfo.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/DependencyInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..70bc6ebfd0902c05025f60a52518998f09941f7a GIT binary patch literal 401 zcmY+A!A^rf5Qb-KEo*IUtv1G&5aZQT187Jpkb+G-nJrAoHn`isLh7q|@Bw@%AD;kl2XhO03~qIq+p?0C5z5{cVxx_X2TW@twR+PT7PgCfR2i!D-B(*} zL7%~NCmLZFLgjY2*-=kd)7BU;U~ojw>%%o1!+^*l>H#Mn VcKDQd+~G6gX@}1#MJs-@mp|kbUr_)6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/EvaluationStep.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/EvaluationStep.class new file mode 100644 index 0000000000000000000000000000000000000000..30260bd593c58814e577e818b1efdda2ea8fe4cb GIT binary patch literal 508 zcmb7B%TB{E5L}l>+EO6U_Q*ZG;EF3p)Sgg_6vW+4x51TTM~+j$uW{%H@KK0$5)|>c zaIn2&?d*)l?;me_0Jwp1038NXV^b~*SvaBjMv0Yi9A7XgoisW#YgBx;6RH#*#}4xV z4jF`7u@hVgo$}>si-`;1n8B5wg^7}RfgH09)y5*9)h!HqDZ1E{HbDkFn%w^(?FqGN zEVEqUgK*Caa&b%SqGeB`e~~9owfLj3WT77QRflwQS6YkO%|#~FD}xbvYabXpD|Jc+ zLNf59a~%C{^kM@))abSJsS)(d7WV59=2B4*!|(B4dtu6w!2zu!`l&AE9Y7a+?mg&N c=ShPH4L*gl>i!(U>bz+1rN=a9NP7oHpV^R%g0`seSj-vF=xg>L9zupqsPVb|=MGKF#Em?fzUe#Wi3vZbiX zGIxwz2(wZsex|yii^1@Td1@MtDJsTp>4aNoz0P1pt8vS*-5NJ|^$4G($BkS-VKBgj zS#o&!u%NihfaMtsqN?6p9hgp?cjD0)stc(O<6LbA1~)2PW$T{Dg$fi#)0wU4Bn9Q! zqOy#vXOE!@zvB^qPV7sjC&Q<;i07>d!zf}Az(a#7~OvUx4wG+Kru zoprNnJLi~fBovx@k#+Hm?(lg$iY}hJ{6ZR4#v_#$R}{6+Yc3YtF4>N)Fv`FJCbWQl zZNb|w*j3lzd!{Gf3Petq% zVLJBDhI&m!K?&X-jLn^5pE2k`B0Z)oM+)A2As8$sCVs^|S`Hg<&y$X^t3}O(y;3 zw#-_K8JP*@eq52XBnbu{UE#KZZFajfGH?cUly30(3+fo6Y0M$-e@rc&l~ugw z*uR*Ata}y~eeSBOei5@T9evZMF@;O?jKrpoz8sBmy4l+tuxNUC^0xbh?m;B2dZw_B zgHp^=KJj^D$!b*!1E&|xEo@lKq7TDz!PsHYna<$M>GONWpF|A0(s_NhzMxF&wtuIZ zulSrEGC1H+0e{z^116vwdhody2U7?1A?}ai0a(HzIS4mE56dAK_Sc()M+n~{JW4o4 z_%`7&!sCP|2u~88B0Noa2JZO#+=YAodY|wE!Vif*OZ-QK9}|8;I88VMPko(dWPeWf z7lh{s8??_n?emiS3*>)A_%-1-#D7ctMZ)h0zbCvzc$x4A!XF8LqV+S`ztFlu_Eo}J o+JBAq&%wH%*H`%FuX(~7gg0T!w{OFazwW}G|M%m&|E~A{0TX(blK=n! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionInfo.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..188b513bab1ddb92570551b7379f099b3d6833d9 GIT binary patch literal 827 zcmbVKO-}+b5S^m3ilTfd%E6-vTx??W#K{0ABt#Q2+`G%L7I#~++a>%q5B>me{vqRZ z`BLHmJ#?p&?R)e3`rbcZ-vHnWst#lra2@$v#xgcS@nIlbZ8%QRON`Vi)B_B7d(n2( zP&=^ApfC~>!2_Xu{@{+#GY(`KoLegN0y&P6V>qO}j*z!!M;H`+G)u0Y!EwysqE_#& z!#o{^T5(c9v%93M!64VdafF^QIABnHOq7u!_DQ!J;H^^H2&K z)P!cRRjYUCCSox7p^3pqEmgFkCrzykPEF%ijPj)-D;EBd#|C*z3Sa5iNbi53nPD5s zvp2T(xx#yS(zau8{ih424D~*PGRcojdm@5_%vSzAg@eJ(Mr3o4R!g?yp;R({UZ*QX z7=KHNO!@Au)lNXu^GIr%g$_OSW61ujauA@S%*e z6$&bP@Uq)>cK-hVxAXS?@(KVaaNt0J!MV}_50fx4LUKP6LuEKVp_`ge$yj+9@y_)1 zR{E+hqzF(uu*{%35|4sMLI(V9I6~JrP-Jju7152tae^FUpPrRQ-kBa*WpMQUh^yjQ zNiLNM{b%0x#Mq!_P!7;^!wCD<2ZM`dtGCFm7m{aMl>Ri_&0^$@S0t2t5xQ*tOQ$tp zP$5e>kc6U4Jk1B5q#=X^uSaOfLFop^8eL(~W6-!yr3qsk5cpw)ZArm}1x|wX-i+$3 zhZJh`=j&8!lrsYiPJdxCy|V>ZXtjvPPpz}XSpJf-NXo+VawH6vn)YMqL8aP7dkK^` zFVBt8vCT>ILLE?m6>w-Oi!@bhPy#z$>rl@23T#k)ld1q!dxko;vdT8pvV8}3v%L;` LRA;bHYXKS`Ceq={ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionStep.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionStep.class new file mode 100644 index 0000000000000000000000000000000000000000..db367e41827ecccd34e8ae621280787c43de94a7 GIT binary patch literal 1413 zcmbW1-%k@k5XWZ$Ed{CwR1k~5g{vkk`T!*L4NKC*sIkQN?R7YpY)w-`>4Yo4EAmWR%8%TjgX1}gEu#U zDH2)^qe>WEb3P1_4yPQ!z1Gpubmbsc_*vL*AL*!wph^T;_FifAYm>9$Ct^qlBdP4Z zL6MGjGZNyF8N^1TwkIa5v^$A2&-r4M!)y@dKlJzn@~d(V{2IWVzr0@dcikPm6p=QG zm0{7>L3v-OBdKY`v+si5i$z`tP=j?h2_=e$rJYR_bS;iU=I~>svbdY)W2uGeIy?rg zX`0EuQ=goU_GPtqQ#3Lr=9*a`xV9EOg?$FIL9;_4>LU-$1s(s`Xu^)Aq6Stj>0rF; zb`WhHN~hl~T4`&vnJO?3ZbMaJ!P`Yx^0o$dyuAy{-rj>1Z&y=)E%obg-^bTs!`la` rznS_Eq2c3O@W|W8ssAMPpTaXAe-1CaeF@v%?m$3<44QPEfmeS4tjx4Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionmodelFactory.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/ExecutionmodelFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..103a9bb8990cb7cd93a9ca26a781ff54ee04410f GIT binary patch literal 1115 zcmbW0VQUjX5Qg84wU=C@O>M1h)T*sQ`^6O%MO#FPDFk8^QVM?DY$xIBWj9C^z(d@NP!M=(vz|USvHQ=OFfrfIcG_f?j7KR;a587W8O3N}pF3Ow4} znkH*6;%uvbV7*aB^(Yf~K0PwmGWmRzZAXKtqx2$Xt@Ox^(+&OePU#OEq`>xcG5#)Q zaOE`p*EAq=Kt`VkJeUahOTm=ob49FK80^1Un!l|F8t{we)>2OPiy2vSn=ea`9k-mQ0c@7{ahlmC1C2_eL3@!vkN zNfLK>&E=faa$3IS=9cQ#g6HS#%XV$mcRY8+TeRyrB>^i|?S5<7?h{u@V%J6Ml9j7l z?sBfYaM7;$ed20K972_Lt?o2hcFtZ|g1^0{ol{6s5?gFdE-8}OQ*6uYe$#Q6&q!i> z-gD6zf6l6}+Wq2blGu@SND_Uvrkk@>wO{OzMDBv`H}1;ia%-++Ja9x311MgpDh2g? zzt}B_BOp0WF&GbHFrGHK)mAm#khMJceP?k^Q`td-%hi>fgnxQA5xDpB@SeY7rcT_!cE`Ll=dK#3rJJ zK`~9eJX^&=WMK>^AdgduA&HT;;&7rJ2uYkwPezpug;att<4Uk#$jCa`Bhze6WLlM{ zw6bofd9HO0wn*Flw69QoauEyGfb}0q&$e;CtQpFA2*qG~Ec8dwUl_KRfRr!T`#V%T(V5X z0ZU~MQLmB)* z31B(Hahes+O0`@pPnk1X`Cix?Q$h3JCW)IeR7L9ne%R8`$!3cI`}Ratcn_p=fZ9))=R1>FiH z(EOh4sKMD1pGBw~S+7Z)6S3{iFhl~^N+K)6oqL5lw71&|%a!<~-v@W2jQsWL_PBt- zjfjPP8pVdzyYA_-s-eK}M%En(jllIXV@(rPxS5?ZBd-046EMyJ>-+~2_pOK{(E`!O zgBWJrsA4hVeWN@vt>lA>3-1|NzCEVt95~vWhkE|;o?HpnQf8;+Ioa%V?HE^>$wU5) zu7i=B%&pCu^7NFhmMU=NsmR8;c(b%qn7X)0;`E02X$7}!P>5D@W@BQhmFha(N=f_y>*+|gDrGt z(Q$2Ub!EYB8rDMH#>b*pv+8qJ(?LvwyOwP~ex9oCk_Yzy@*v{@ny*`}7QDd@r=`qT zhwj^r7F^7`E2-K`cGGriHYgfQD=Jwoyp5Z1{qHiVY?JmNauSnu}$E+GW*K2m( zTWNSMxNUfmk##Xgc8_*wo^-5b*K7Gst*x>*SEQ?R4F$)w>bh_Fu=XC=m3{aQv9Ri6 zb`voVLKK$?e53H~%Mh%g4yP3t>vItfH<+s0Er?0WS#au(e?@~l8D6X;@TO!n6xVM; zWN+CJzd2)r%&i-f2|lU7Cl-+6IlU%cu)qvhDJZxe-) zvQ@BFoH}G?B+F7X*(*dC=hz%5$_x>?%=u1c86-X#YTtP

{Znoid*p%SzL$d&@Jf z_W)G)GL*uxEDdC^=q)=nXiKZuxld#)MAml>0y)$&t(2eK^d z{^|nmM7YvtPg_kt+^NXf#UaIARj{v@&VU$10 zFzUa7;Tr)TWB4Y(qYRG$KF%=ueM9&M?O7=?r7M?qC?>^$dpZ1bi36X8_;LF#7vUhSA@%45Po#Vi@`FVHo*k zhLL}QVe~i8Fv?FdjPeS@C|_V0<1@uD#^)Tv7$22kv^UK##%G3Mj8Bnaj8BPSjE}}} z8E}Q+X9KP>tOGU}o&`L|Fz&PS49^3;kKyM4elEk$1N?l3O~5Z;*aE!3a1HPx!#3b0 zhL-_fVAuhCk>UFR*BM>`>@w^DZZP~pz)gl*fPIEB-m45_zArJ1`F?<5%=cx6F+W!r zM)?OBM)?;pjPfsL81wlOhEe{d45R$Z7)JS*GmQCv1;Z%+N`_JXRScv2s~N_6eGS87 zP|f|~A@MMD%-2HqJOLE{>w8SR?osiUN8ry*;%)H%0iXi5;?>X&-yV$O@6zuO?-WSi zCEgv-_Yi(B;r9`JKhY1+{09kti0FrjeuU^piGGae$BBMId@``}DZ-y7{29{wSsMQw zjenlTzd-nlM88DiUncq$lKU#rM~LrhL?0#kb)w%O`c0zWBKjE7Zxel-=y!;Im+1G% z&J%>cPxJ>g{zIZaBKl*ZKOy>4;{O@ppA-EB(O(jMlIX99|JStM-w^&S&Hs+Ze^29o oAo@od{}b{3na2M@e@S<*JOBUy literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/DependencyImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/DependencyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4d5d0b392249ab3ec4715e2305096b58c1a8cfdd GIT binary patch literal 3654 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..69f58e37f285312769009ce9df349b80b9d2406f GIT binary patch literal 5230 zcmbtYYjjjs75+{#k34RgkQN9KN=O4uW&(qSP)iUBd6Ym1lq4XjT5pDvFff@3Gm}7k zwNz{E(`pqNOtWTKBl9Yz4mxlB9ofx;b0Ixg|%WxN8_>aw2tVp5w?>lZ5F$0 z+_?dTaQ@tAa%?P_h|p;~veQn-qFuD#0MChw**u+=eBfl@5Buo%^1W0{3=lu2ua zg$h(kYo!GXRdkd&8cQp5IcWdS7;sOP?$6knShOQKg2XVt9i%zI-o*Rw&FK$I~M zX1-6;pu+Z|%b4;eqM3=59q-mQpSpd>tA7Jj*f?n65I)Jnq&sygHmQ#+SlZL6u*mqIVqLQbdL-upOr?OyP4p(9BwPoVkBqx-+0#I91^b7QTo{k9Xs=ER%FE zQ<>B)ci3qQUqWjTUshO>p96MIjEv}11s=oWlH}Hx;R(j7p_#YvmImp5(!x`CnuzT2 zah+fqZ7r05J;8CEyLQ{f!n0!GIjXn0!>jKF^G?$VMKTd*FzSjKBsk`*UCy1)OWu+3 zw=JB(cet7(1ul}@K{|_1cJ+EPkL$v{(?quMbQq&8e{zUCe$)w07G zDHs_^0YqU^KpE$n=2|anvvKrnG6z!Obqha~?Z`%@dQxaAke0oLmdqm63g<2S1UnTf zbVo9gv03aev|!uh)yhSwi(BxOt~M(&-@HEpYjG zJ?2VPmYz3{*_jCIW{fV0`9~r$9jXa4FR>0BVxV$A{wuvSz(4RF0guVRI;)#o&3i!2cH99}($Ne(DME@J#(#l(F&94F7z3CKRsE;^8@(U45M4 z`FxQ=e~C6;Ce5#S@NLfNV>5;krGI**nzX?efUn+H=41Z|b>%Akj6v7tLD%AfbJh#G zhEVHuY|rB81!;6)}IlvWhTMlGf z4rCh+P(Ln-ew5aiiMGcnB^Top9FhdG!Gm#49>!IYL>!39#g|1YAKq2MyT*Ul-Xp~K znYn&W4u3%of9b$;CAuL8Z-as7O0={-NS$H=lLpiq2GpPj)b2b`+llD|)KYDAHxTrl z!?MzISjQW$1li&9O^Y6H!0($bofdPSpQa)AaMd#P0ly~l-|$lUEzijBJZJ}V zXa_xLt59BFbH6I#N4^J8QV@1M|&Kah^# zFKTkkxre_x$51tMtf2Dq+2!hrxR8t`GF?FzZ}y55)H&3I`8ItOGbOl=OLJ;; w30OyW>pcXlFs}TJ`Q_YQW1-|jR0Yx58^k5L$T~D$!O!@V;?a+*xE3h?4;1WzYXATM literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..818afc44e2c3140ddcabd86d925a976bd18d8890 GIT binary patch literal 5185 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fe73183e9b378de607c617bdb37f8d80b5e91d74 GIT binary patch literal 22880 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..6c9bf310241381dd006df51e473677f76d1f9339 GIT binary patch literal 12110 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 U3clxO>O4jp*EA)$N2}id1B?A^YybcN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..96dccb43b85d6eb41c74e77b9e71172ebc8d0798 GIT binary patch literal 5141 zcmbW4>vt1H7{;HWfwbvzk^4<3h_vMv?ze!YlmNj}C@sYbqT6)ZE+m_{*+PqmB8XQ| zyn%PYZ~6uO07p4T`Ru>sIUb*x-KI^qfek&K+3e2DZ=Uy^nRjOX`R~ua0Bpq1QA`rp zlXLpxR>3N`rXBCgm_0c+E{9}#(6w@QHrFdNaVwk8#FHi8_M2%p=M1M<5=BIyUQuK^ zW917nF0+07opYq$vZV49fo)Ija>CvOrtGq8%Y8whs-dw}`FrkjLAepro`TO_x12HE3MW3CWg> zStukL%M~B#IV00Ljw{Ze>=8EQaxE#vEW>ac+z0#=$ms@S;fUHZam0edK zLo@cP5OhFbPJ=gPG~R2LXzWspJ7wSyUKEIO>9(0!hK$)G^J{En1v_k@4M!MU%)FX2 z0&6Ft20HTfC92Ubu&BPyD%9CIx6Z7i6RciOt&SI}j}8N!N=~(#^JK=*g#GMO>bSzG zP%dD3@l0SUmrMFAr-lxzQM@d$z0!!PqLSK0V(3OKk#c04@xs;4ibM1WkVE|{gYwhp z@ne!F>$H+JyF^wo-Zej!x-oc)S_YxIq2Mn6vj^nX$59h1qchI>H(hUINGEJ%Jq|O-q*S)t(90 zlnK*hNeS0XSgAoIkL>fg0T-vezTzC^KE@*~!Ql=SBb(IN#`+j_!@wu_l&1sLMUlGP zr%rG;@axb~pFPFJsMte{{f)jb%s4X5qbxU<1;++$*UHK+p7?nKYPNYI(5EPdp1EUA z5Tk7pHMoh}2EN8O0yQ$#*3sGA){^8nhVc4?ex=W29l1d#E%#gMQnsYD)|mU@I(6g{ zFjBTH9evJ_g(!aHoj?_gJBLSchbM-T0)ff;h>m4EKvpqL=2dqZpS&J2ui@J!J_VnX zS3N-NH~yFegL#ZkpdJx4U@CtZUL`i3&Ns$bJj0v-F^5o9_ovl=V5Yz?{D~oz@h`@- zlc|YmA5)5{ok^8(oAs1TOL5t$Z-ov(xthEv5}8=!KV9HXXJ9VoxLziSj=hjqo$Cot}%Z zmkpJRVh_>X{QxIhSKs5?SVte=cpMzlNzCu0nzc^h6>>ODur$a!P2OukUORcm%J59| zXdW+@L0+0X8RVTL?^GFHANnz`fgS_+P4F`Ew$h%sGcL8r`9&eFB-bL~*1$o!W zyHSSs7T(r8UNeKd%j8`N@@|oLyA1Ct-qk$bK7+h#u{-68L88Qur@Q1d>*$3AbP zeg~?#!mmHV&C%5{g(bkRn&gF`YJX+a;B&UG!WS$DzGPB$zv5FxwH3M@5cwUq#?$U= Znp%&O@U70j!}oluOZE?3)OV-U{12zenmqsj literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..53b2c99e3a5ed84f427cb5b75db2eb2f1ee969e3 GIT binary patch literal 20122 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.class b/org.isistan.flabot.engine/bin/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..644e726c2a4c08dcb3071270c133507694a215b1 GIT binary patch literal 5746 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/plugin.properties b/org.isistan.flabot.engine/plugin.properties new file mode 100755 index 0000000..351057e --- /dev/null +++ b/org.isistan.flabot.engine/plugin.properties @@ -0,0 +1,20 @@ +# +# +# +# $Id: plugin.properties,v 1.1 2006/01/27 00:10:13 mblech Exp $ + +# ==================================================================== +# To code developer: +# Do NOT change the properties between this line and the +# "%%% END OF TRANSLATED PROPERTIES %%%" line. +# Make a new property name, append to the end of the file and change +# the code to use the new property. +# ==================================================================== + +# ==================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# ==================================================================== + +pluginName = Engine Model +providerName = www.example.org + diff --git a/org.isistan.flabot.engine/plugin.xml b/org.isistan.flabot.engine/plugin.xml new file mode 100755 index 0000000..ac5e5cb --- /dev/null +++ b/org.isistan.flabot.engine/plugin.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/resource/LocatorMethod-Improved.pl b/org.isistan.flabot.engine/resource/LocatorMethod-Improved.pl new file mode 100755 index 0000000..593c187 --- /dev/null +++ b/org.isistan.flabot.engine/resource/LocatorMethod-Improved.pl @@ -0,0 +1,394 @@ +getComponentFamily(FamilyOriginal, FamilyActual, ComponentActual, Instance) :- FamilyOriginal = FamiliyActual, family(FamiliyActual,Instance,ComponentActual,_). +getComponentFamily(FamilyOriginal, FamilyActual, ComponentActual, ComponentToReturn) :- + FamilyOriginal \= FamilyActual, + family(FamilyActual, ComponentX, ComponentActual, _), + family(NewFamilyActual, ComponentY, ComponentX, _),!, + not(analizedFamily(NewFamilyActual)), + assertRule(analizedFamily(NewFamilyActual)), + getComponentFamily(FamilyOriginal, NewFamilyActual, ComponentX, ComponentToReturn), + retractRule(analizedFamily(NewFamilyActual)). + +existsCurrentFamily(Family):- currentFamily(Family). + +getFamily(ResponsibilityId,CurrentResponsibilityId,Family):- mapping(ResponsibilityId,B,CurrentResponsibilityId,D,E), responsibilityFamily(ResponsibilityId,CurrentResponsibilityId,Family). +getFamilyToStub(ResponsibilityId,CurrentResponsibilityId,Family):- stub(ResponsibilityId), stubEndPoint(ResponsibilityId,EndPointId),responsibilityFamily(ResponsibilityId,EndPointId,Family). +existConstrain(ResponsibilityId,CurrentResponsibilityId):- constraint(ResponsibilityId,B,CurrentResponsibilityId,D,E). +responsibilityOption (ResponsibilityId,ComponentType,CurrentScenario):-responsibility(ResponsibilityId,ComponentType,CurrentScenario,_). +responsibilityOption (ResponsibilityId,ComponentType,CurrentScenario):-fork(ResponsibilityId,CurrentScenario,_,ComponentType). +responsibilityOption (ResponsibilityId,ComponentType,CurrentScenario):-join(ResponsibilityId,CurrentScenario,_,_,ComponentType). +responsibilityOption (ResponsibilityId,aStubComponent,CurrentScenario):-stub(ResponsibilityId). +chooseInstance(Instance,ComponentType,CurrentScenario):- instance(Instance,ComponentType,CurrentScenario). +chooseInstance(aForkComponent,ComponentType,CurrentScenario):- ComponentType = 'aForkComponent'. + +% This rule set the specified State to all the previous responsibilities from a specified one +% previas markAllPreviousResponsilitiesFrom(ResponsibilityId,'BUGGY_RESPONSIBILITY') +markAllPreviousResponsilitiesFrom(ResponsibilityId,State):-previous(ResponsibilityId,NextResponsibilityId,CurrentScenario,Event,PreviousEvent),not(marked(NextResponsibilityId)),markResponsibility(NextResponsibilityId,State),assertRule(marked(NextResponsibilityId)),markAllPreviousResponsilitiesFrom(NextResponsibilityId,State). +markAllPreviousResponsilitiesFrom(ResponsibilityId,State):-retractRule(marked(X)). + +%Elige cual es el evento que tiene la precondition que seguir. +% Si existe un event para esa precondicion se sigue con ese. En caso contrario se sigue con el +%mismo evento. Por lo tanto, esta regla determina cual evento seguir por medio de la precondicion. +choosePreconditionEvent(Event,event,Event):- !. +choosePreconditionEvent(Event,PreEvent,PreEvent). + +% This rule determines the execution state of the specified responsibility +responsibilityState(PreResponsibility,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,State,Step,Condition) :- runnedOK(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,State,Step,Condition). + +% Reglas encargadas de determinar el estado de ejecuci� de una responsabilidad. +% Si no se tiene informacion al respecto, se solicita al usuario que determine dicha informaci�. +runnedOK(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + responsibilityLog(ResponsibilityId,Instance,Component,Event,CurrentScenario,ExecutionInfo,Step),!. +runnedOK(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + not(responsibilityLog(ResponsibilityId,Instance,Component,Event,ExecutionScenario,ExecutionInfo,Step)), + chooseResponsibilityExecutionState(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition). + +getExecutionState(PreResponsibility,ResponsibilityId,Instance,PreInstance,Event,Condition,Family,ExecutionInfo):- + executionStateDialog(Dialog), + send(Dialog,getExecutionInfo,[PreResponsibility,ResponsibilityId,Instance,PreInstance,Event,Condition,Family],ExecutionInfo), + ExecutionInfo \= 'StateFromMapping'. + +getExecutionState(PreResponsibility,ResponsibilityId,Instance,PreInstance,Event,Condition,Family,NewExecutionInfo):- + generateListMappings(ResponsibilityId,Instance,Family,MappingList), + verifyMappingList(MappingList,NewExecutionInfo). + +generateListMappings(ResponsibilityId,Instance,Family,[NewExecutionInfo|Z]):- + mapping(ResponsibilityId,_,MappingResponsibilityId,_,_), + not(analyzedMappingState(ResponsibilityId,MappingResponsibilityId)), + assertRule(analyzedMappingState(ResponsibilityId,MappingResponsibilityId)), + getFamilyToState(ResponsibilityId,MappingResponsibilityId,Family,NewFamily), + getInstance(MappingResponsibilityId,NewFamily,MappedInstance), + executionStateDialog(Dialog), + send(Dialog,getExecutionInfo,[ResponsibilityId,MappingResponsibilityId,MappedInstance,Instance,Event,Condition,NewFamily],NewExecutionInfo), + generateListMappings(ResponsibilityId,Instance,Family,Z), + retractRule(analyzedMappingState(ResponsibilityId,MappingResponsibilityId)). + +generateListMappings(ResponsibilityId,Instance,Family,[]). + +verifyMappingList([State|Z],State):- State \= 'Executed'. +verifyMappingList([State|Z],ExecutionInfo):- State = 'Executed', verifyMappingList(Z,ExecutionInfo). +verifyMappingList([],'Executed'). + + + +getFamilyToState(ResponsibilityId,MappingResponsibilityId,Family,NewFamily):- + var(Family), + responsibilityFamily(ResponsibilityId,MappingResponsibilityId,NewFamily). + +getFamilyToState(ResponsibilityId,MappingResponsibilityId,Family,NewFamily):- + Family = 'Family', + responsibilityFamily(ResponsibilityId,MappingResponsibilityId,NewFamily). + +getFamilyToState(ResponsibilityId,MappingResponsibilityId,Family,Family). + +% Muestra un dialogo al usuario con el fin de determinar el estado de ejecuci� de la responsabilidad. +% Luego de que el usuario lo determina, se almacena la informacion para esa responsabilidad en particular. + +chooseResponsibilityExecutionState(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + responsibilityOption(ResponsibilityId,ComponentType,CurrentScenario), + responsibilityOption(PreResponsibility,PreComponentType,PreCurrentScenario), + Family = 'Family', + not(currentFamily(ActualFamily)), + getEventToFamily(Family,Event,NewEvent), + getExecutionState(PreResponsibility,ResponsibilityId,ComponentType,PreComponentType,NewEvent,Condition,Family,ExecutionInfo), + assertRule(responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,ExecutionInfo,Step)),!. + +chooseResponsibilityExecutionState(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + responsibilityOption(ResponsibilityId,ComponentType,CurrentScenario), + responsibilityOption(PreResponsibility,PreComponentType,PreCurrentScenario), + currentFamily(CurrentFamily), + getComponentFamily(CurrentFamily, Family, ComponentType, Instance), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + getEventToFamily(CurrentFamily,Event,NewEvent), + getExecutionState(PreResponsibility,ResponsibilityId,Instance,PreInstance,NewEvent,Condition,Family,ExecutionInfo), + assertRule(responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,ExecutionInfo,Step)),!. + +chooseResponsibilityExecutionState(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + responsibilityOption(ResponsibilityId,ComponentType,CurrentScenario), + responsibilityOption(PreResponsibility,PreComponentType,PreCurrentScenario), + family(Family,Instance,ComponentType,CurrentScenario), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + getEventToFamily(Family,Event,NewEvent), + getExecutionState(PreResponsibility,ResponsibilityId,Instance,PreInstance,NewEvent,Condition,Family,ExecutionInfo), + assertRule(responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,ExecutionInfo,Step)),!. + +chooseResponsibilityExecutionState(PreResponsibility,ResponsibilityId,Component,Event,Family,CurrentScenario,ExecutionScenario,ExecutionInfo,Step,Condition):- + responsibilityOption(ResponsibilityId,ComponentType,CurrentScenario), + responsibilityOption(PreResponsibility,PreComponentType,PreCurrentScenario), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + getEventToFamily(Family,Event,NewEvent), + getExecutionState(PreResponsibility,ResponsibilityId,ComponentType,PreInstance,NewEvent,Condition,Family,ExecutionInfo), + assertRule(responsibilityLog(ResponsibilityId,ComponentType,Component,Event,Scenario,ExecutionInfo,Step)),!. + +getEventToFamily(Family,Event,Event):- + Family = 'Family'. + +getEventToFamily(Family,Event,NewEvent):- + Event \= 'Event', + Family \= 'Family', + familyEvent(Family,Event,NewEvent). + +getEventToFamily(Family,Event,Event). + +getComponentInstanceSource (Family, ComponentType, Instance):- + currentFamily(CurrentFamily), + CurrentFamily \= Family, + getComponentFamily(CurrentFamily, Family, ComponentType, Instance). + +getComponentInstanceSource (Family, ComponentType, Instance):- + currentFamily(CurrentFamily), + CurrentFamily \= Family, + getComponentFamily(CurrentFamily, CurrentFamily, ComponentType, Instance). + +getComponentInstanceSource (Family, ComponentType, Instance):- + currentFamily(CurrentFamily), + CurrentFamily = Family, + getComponentFamily(CurrentFamily, CurrentFamily, ComponentType, Instance). + +getComponentInstanceSource (Family, ComponentType, ComponentType):- + currentFamily(CurrentFamily), + CurrentFamily = Family. + +getComponentInstanceSource (Family, ComponentType, Instance):- + getComponentFamily(Family, Family, ComponentType, Instance). + +getComponentInstanceSource (Family, ComponentType, ComponentType). + + +% This rule evals one of the preconditions of a specified responsibility. +% This rule is used for the findall rule in order to collect all the precondition +% responsibilities of a specified responsibility +eval(precondition,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,state(ResponsibilityId,PreResponsibilityId,PreScenario,PreEvent,State,precondition),Step):- + precondition(ResponsibilityId,_, PreResponsibilityId, PreScenario, PreEvent), + choosePreconditionEvent(Event,PreEvent,NextEvent), + responsibilityState(ResponsibilityId,PreResponsibilityId,Family,PreScenario,ExecutionScenario,PreEvent,State,Step,precondition). + +eval(previous,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,state(ResponsibilityId,PreResponsibilityId,PreviousScenario,NextEvent,State,previous),Step):- + previous(ResponsibilityId,PreResponsibilityId,CurrentScenario,Event,NextEvent), + responsibilityOption(ResponsibilityId,ComponentType,CurrentScenario), + getEventToPrevious(ResponsibilityId,ComponentType,PreResponsibilityId,NewEvent,NexEvent), + responsibilityState(ResponsibilityId,PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,NewEvent,State,Step,previous). + +eval(constrain,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,state(ResponsibilityId,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain),Step):- + constraint(ResponsibilityId,CurrentScenario,PreResponsibilityId,PreviousScenario,PreviousEvent), + responsibilityState(ResponsibilityId,PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,PreviousEvent,State,Step,constraint). + +eval(mapping,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,state(ResponsibilityId,MappedResponsibilityId,MappedResponsibilityScenario,MappedEvent,State,mapping),Step):- + mapping(ResponsibilityId,CurrentScenario,MappedResponsibilityId,MappedResponsibilityScenario,MappedEvent), + responsibilityFamily(ResponsibilityId,MappedResponsibilityId,NewFamily), + responsibilityState(ResponsibilityId,MappedResponsibilityId,NewFamily,MappedResponsibilityScenario,ExecutionScenario,MappedEvent,State,Step,mapping). + +getEventToPrevious (ResponsibilityId,ComponentType,PreResponsibilityId,NewEvent,NexEvent):- + previousEvent (ResponsibilityId,ComponentType,PreResponsibilityId,NewEvent). + +getEventToPrevious (ResponsibilityId,ComponentType,PreResponsibilityId,NexEvent,NexEvent). + +evaluateDependencies(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,Result,Step):- + evalPreviousResponsibilities(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,Result,Step), + verifyCondition(Result). + +evaluateDependencies(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,Result,Step):- + evalPreconditions(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step), + evalPreviousResponsibilities(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreviousList,Step), + append(PreviousList,PreconditionList,Result), + verifyCondition(Result). + +evaluateDependencies(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,Result,Step):- + evalPreviousResponsibilities(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreviousList,Step), + evalNextLevels(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,MappedList,Step), + append(PreviousList,MappedList,Aux), + evalPreconditions(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step), + append(Aux,PreconditionList,Aux1), + evalConstrains(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,ConstrainList,Step), + append(Aux1,ConstrainList,Result). + +especialEvaluateDependencies(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,Result,Step):- + evalPreviousResponsibilities(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreviousList,Step), + evalNextLevels(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,MappedList,Step), + append(PreviousList,MappedList,Aux), + evalPreconditions(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step), + append(Aux,PreconditionList,Aux1), + evalConstrains(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,ConstrainList,Step), + append(Aux1,ConstrainList,Result). + +getMappingOrConstraint(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,Result,Step):- + evalPreconditions(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step), + not(verifyCondition(PreconditionList)), + evalNextLevels(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,MappedList,Step), + evalConstrains(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,ConstrainList,Step), + append(MappedList,ConstrainList,Result). + +evaluateDependencies(Family,ResponsibilityId,CurrentScenario,ExecutionScenario,Event,[],Step). + +verifyCondition ([state(ResponsibilityId,PreResponsibilityId,PreviousScenario,PreviousEvent,'NotExecuted',Condition)|R]). +verifyCondition ([state(ResponsibilityId,PreResponsibilityId,PreviousScenario,PreviousEvent,'Faulty',Condition)|R]). +verifyCondition ([state(ResponsibilityId,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Condition)|R]):- State \= 'NotExecuted', verifyCondition(R). + + +% Debe buscar por cada responsabilidad todas las precondiciones de todos los escenarios para ese Event +% para luego con cada una, evaluar las anteriores responsabilidad si se ejecutaron para alcanzar esta +% responsabilidad. + +evalPreconditions(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step):- + findall(State,eval(precondition,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,State,Step),PreconditionList). + +getInstance(PreResponsibilityId,Family,Instance):- + responsibilityOption(PreResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance). + +evalPreviousResponsibilities(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step):- + findall(State,eval(previous,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,State,Step),PreconditionList). + +evalConstrains(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step):- + findall(State,eval(constrain,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,State,Step),PreconditionList). + +evalNextLevels(ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,PreconditionList,Step):- + findall(State,eval(mapping,ResponsibilityId,Family,CurrentScenario,ExecutionScenario,Event,State,Step),PreconditionList). + +chooseState(state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type),[state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest],Type,PreviousEvent,Rest). + +% Por cada responsabilidad que es precondicion de la inicial evaluar si ejecuto o no +%[responsibility(PreResponsibilityId,PreScenario,PreEvent),responsibility(PreResponsibilityId,PreScenario,PreEvent)] +evalPreconditionList(Responsibility,[responsibility(PreResponsibilityId,PreScenarioID,PreEvent)|Rest],ExecutionScenario,Event):- + choosePreconditionEvent(Event,PreEvent,NextEvent), + evalPrecondition(PreResponsibilityId,PreScenarioID,ExecutionScenario,NextEvent,State), + evalPreconditionList(Responsibility,Rest,ExecutionScenario,Event). + +evalPreconditionList(Responsibility,[],ExecutionScenario,Event). + +markResponsibility(ResponsibilityId,Instance,State):- + faultyComponent(ResponsibilityId,Instance,_), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,State)),!. + +markResponsibility(ResponsibilityId,Instance,State):- + assertRule(faultyComponent(ResponsibilityId,Instance,State)),!. + +getResponsibilityState(ResponsibilityId,State):- + faultyComponent(ResponsibilityId,Instance,State),!. + +%Obtiene el valor del evento entre dos responsabilidades. En caso de no existir un proximo evento +% significa que no cambio de eventos entre ambas responsabilidades y debe ser el mismo. +getEventFor(RespId,NextRespId,CurrentScenary,CurrentEvent,NextEvent) :- + event(RespId,RespName,ScenaryName,NextRespId,NextRespName,ScenaryName,NextEvent),!. + +getEventFor(RespId,NextRespId,CurrentScenary,Event,Event). + +chooseFirstCommand(Step,ResponsibilityID, Dependencies, Command):- nextCommand(Step,Command), retractRule(nextCommand(Step,Command)). +chooseFirstCommand(Step,ResponsibilityID, Dependencies, Command):- chooseCommand (Step,ResponsibilityID, Dependencies, Command). +chooseCommand (Step,ResponsibilityID, Dependencies, 'EVALUATE'):- not (evaluateCommand(Step,ResponsibilityID)). +chooseCommand (Step,ResponsibilityID, Dependencies, 'EVALUATE'):- not (finishEvaluateMappingANDConstraint(Step)), evaluateMappingANDConstraint(Step), assertRule(finishEvaluateMappingANDConstraint(Step)). +chooseCommand (Step,ResponsibilityID, [A|Z], 'ANALYZE'):- not (analyzeCommand(Step,ResponsibilityID)), not(evaluatingJoin(ResponsibilityID)). +chooseCommand (Step,ResponsibilityID, Dependencies, 'SITUATION'):- not (situationCommand(Step,ResponsibilityID)), not(evaluatingJoin(ResponsibilityID)). +chooseCommand (Step,ResponsibilityID, Dependencies, 'NULL'). + +chooseAnalizeCommand (Step,ResponsibilityID, PreResponsibilityID, none, 'ANALYZE_CONSTRAINT'):- existConstrain(ResponsibilityID,PreResponsibilityID), not (analyzeCommand(Step,ResponsibilityID)). +chooseAnalizeCommand (Step,ResponsibilityID, PreResponsibilityID, Family, 'ANALYZE_MAPPING'):- getFamily(ResponsibilityID,PreResponsibilityID,Family), not (analyzeCommand(Step,ResponsibilityID)). +chooseAnalizeCommand (Step,ResponsibilityID, PreResponsibilityID, none, 'ANALYZE_DEFAULT'):- not (analyzeCommand(Step,ResponsibilityID)). + +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_STUB') :- existsStub (ResponsibilityID,Stub), not (analizedStub(ResponsibilityID,Stub,Step)). +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_STUB') :- existsStub (ResponsibilityID,Stub), analizedStub(ResponsibilityID,Stub,Step), stubStartPoint(Stub,StartStub), stubEndPoint(Stub,EndStub), situationForStub(Stub,StartStub,EndStub,State),not(analizedStub(ResponsibilityID,Stub,Step)). +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_JOIN_AND'):- existsJoin (ResponsibilityID,Join), join(ResponsibilityId,CurrentScenario,_,0,_). +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_JOIN_OR'):- existsJoin (ResponsibilityID,Join), join(ResponsibilityId,CurrentScenario,_,1,_). +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_MAPPING_AND_CONSTRAINT'):- evaluateMappingANDConstraint(Step), retractRule(evaluatePreconditionANDConstraint(Step)). +chooseEvaluateCommand (Step,ResponsibilityID,'EVALUATE_DEFAULT'). + +existsJoin(ResponsibilityID,PreResponsibilityId):- previous(ResponsibilityID,PreResponsibilityId,_,_,_), join(PreResponsibilityId,_,_,_,_). + +existsStub(ResponsibilityID,PreResponsibilityId):- previous(ResponsibilityID,PreResponsibilityId,_,_,_), stub(PreResponsibilityId). +existsStub(ResponsibilityID,PreResponsibilityId):- precondition(ResponsibilityID,_, PreResponsibilityId, _, _), stub(PreResponsibilityId). +existsStub(ResponsibilityID,PreResponsibilityId):- mapping(ResponsibilityID,_,PreResponsibilityId,_,_), stub(PreResponsibilityId). +existsStub(ResponsibilityID,PreResponsibilityId):- constraint(ResponsibilityID,_,PreResponsibilityId,_,_), stub(PreResponsibilityId). + +getStub(ResponsibilityID,PreResponsibilityId):- previous(ResponsibilityID,PreResponsibilityId,_,_,_), stub(PreResponsibilityId), not (analizedStub(ResponsibilityID,PreResponsibilityId,Step)), assertRule(analizedStub(ResponsibilityID,PreResponsibilityId,Step)). +getStub(ResponsibilityID,PreResponsibilityId):- precondition(ResponsibilityID,_, PreResponsibilityId, _, _), stub(PreResponsibilityId), not (analizedStub(ResponsibilityID,PreResponsibilityId,Step)), assertRule(analizedStub(ResponsibilityID,PreResponsibilityId,Step)). +getStub(ResponsibilityID,PreResponsibilityId):- mapping(ResponsibilityID,_,PreResponsibilityId,_,_), stub(PreResponsibilityId), not (analizedStub(ResponsibilityID,PreResponsibilityId,Step)), assertRule(analizedStub(ResponsibilityID,PreResponsibilityId,Step)). +getStub(ResponsibilityID,PreResponsibilityId):- constraint(ResponsibilityID,_,PreResponsibilityId,_,_), stub(PreResponsibilityId), not (analizedStub(ResponsibilityID,PreResponsibilityId,Step)), assertRule(analizedStub(ResponsibilityID,PreResponsibilityId,Step)). + +getJoin(ResponsibilityID,PreResponsibilityId):- previous(ResponsibilityID,PreResponsibilityId,_,_,_), join(PreResponsibilityId,_,_,_,_). + +situationForAndJoin(StepToLog,Step,Join,none,none,'Executed'):- assertRule(responsibilityLog(Join,Instance,Component,Event,ExecutionScenario,'Executed',Step)). +situationForAndJoin(StepToLog,Step,Join,none,R2,'Executed'):- responsibilityLog(R2,Instance,Component,Event,CurrentScenario,'Executed',StepToLog), + assertRule(responsibilityLog(Join,Instance,Component,Event,ExecutionScenario,'Executed',Step)). +situationForAndJoin(StepToLog,Step,Join,R1,none,'Executed'):- responsibilityLog(R1,Instance,Component,Event,CurrentScenario,'Executed',StepToLog), + assertRule(responsibilityLog(Join,Instance,Component,Event,ExecutionScenario,'Executed',Step)). +situationForAndJoin(StepToLog,Step,Join,R1,R2,'Executed'):- responsibilityLog(R2,Instance,Component,Event,CurrentScenario,'Executed',StepToLog), + responsibilityLog(R1,Instance,Component,Event,CurrentScenario,'Executed',StepToLog), + assertRule(responsibilityLog(Join,Instance,Component,Event,ExecutionScenario,'Executed',Step)). +situationForAndJoin(StepToLog,Step,Join,R1,R2,'NotExecuted'):- assertRule(responsibilityLog(Join,Instance,Component,Event,ExecutionScenario,'NotExecuted',Step)). + + +situationForStub(Stub,StartStub,EndStub,'Executed',Family):- + getInstance(EndStub,Family,Instance), + faultyComponent(EndStub,Instance,state(Family,'Executed',current)), + assertRule(faultyComponent(Stub,aStubComponent,state(Family,'Executed',current))), + assertRule(responsibilityLog(Stub,aStubComponent,Component,Event,ExecutionScenario,'Executed',Step)). +situationForStub(Stub,StartStub,EndStub,'NotExecuted',Family):- faultyComponent(StartStub,Instance,state(Family,'NotExecuted',current)), + assertRule(faultyComponent(Stub,aStubComponent,state(Family,'NotExecuted',current))), + assertRule(responsibilityLog(Stub,aStubComponent,Component,Event,ExecutionScenario,'NotExecuted',Step)). +situationForStub(Stub,StartStub,EndStub,'Faulty',Family):- assertRule(faultyComponent(Stub,aStubComponent,state(Family,'Faulty',current))), + assertRule(responsibilityLog(Stub,aStubComponent,Component,Event,ExecutionScenario,'Faulty',Step)). + +getDependenciesForType([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,TypeI)|Rest],TypeI,[state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,TypeI)|Result]):- + getDependenciesForType(Rest,TypeI,Result). +getDependenciesForType([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,TypeI)|Rest],TypeII,Result):- + TypeI \= TypeII, + getDependenciesForType(Rest,TypeII,Result). +getDependenciesForType([],Type,[]). + +getFinalResult(Result):- +findall(faultyComponent(Responsibility,Instance,State),faultyComponent(Responsibility,Instance,State) , List), + processList(List,Result). + +processList([faultyComponent(Responsibility,Instance,State)|T],[faultyComponent(Responsibility,Instance,ResponsibilityName,State)|PT]):- + responsibilityOption(Responsibility,X,Y), + processList(T,PT). +processList([],[]). + +resetLog(X):- responsibilityLog(X,Instance, Component, Event, Scenario,State), + retractRule(responsibilityLog(X,Instance, Component, Event, Scenario,State)), + fail. +resetLog(X). + +reset(X):- resetLog(X),resetState(X). + +assertModification(X):- + executionStateDialog(Dialog),send(Dialog,preprocessGoal,[X],XWithoutVar), + assertRule(XWithoutVar). + +showLogInfo(LogInfo):- + executionStateDialog(Dialog),!, + send(Dialog,showLogInfo,[LogInfo],Result),!. + +selectResponsibilities(ResponsibilityList,Result):- + executionStateDialog(Dialog), + send(Dialog,selectResponsibilities,[ResponsibilityList],Elements), + deleteAllElements(Elements,ResponsibilityList,Result). + +assertRule (Rule):- + %assert(Rule), + executionStateDialog(Dialog), + send(Dialog,assertRule,[Rule],ExecutionInfo). + +retractRule (Rule):- + %retractall(Rule), + executionStateDialog(Dialog), + send(Dialog,retractRule,[Rule],ExecutionInfo). + +resetResponsibilityState(ResponsibilityID,Step):- retractRule(evaluateCommand(Step,ResponsibilityID)),!, + retractRule(analyzeCommand(Step,ResponsibilityID)),!, + retractRule(situationCommand(Step,ResponsibilityID)),!. + +updateDependencies(PreviousResponsibilityList,Result,Branch):- + evalBranchCondition(PreviousResponsibilityList,Branch,Result). + +evalBranchCondition ([],Branch,[]). +evalBranchCondition ([state(ResponsibilityId,Branch,PreviousScenario,NextEvent,State,previous)|Z],Branch,[state(ResponsibilityId,Branch,PreviousScenario,NextEvent,State,previous)|Rest]):- evalBranchCondition(Z,Branch,Rest). +evalBranchCondition ([state(ResponsibilityId,Branch1,PreviousScenario,NextEvent,State,previous)|Z],Branch,Rest) :- Branch \= Branch1, evalBranchCondition(Z,Branch,Rest). + + + + + + + + \ No newline at end of file diff --git a/org.isistan.flabot.engine/resource/LogicModuleConstraint.pl b/org.isistan.flabot.engine/resource/LogicModuleConstraint.pl new file mode 100755 index 0000000..aec47ad --- /dev/null +++ b/org.isistan.flabot.engine/resource/LogicModuleConstraint.pl @@ -0,0 +1,51 @@ +analyzeResponsibilities(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)):- + analyzeResponsibility(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibilities(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain)):- + State = 'Executed', + responsibilityOption(CurrentResponsibility,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(CurrentResponsibility,Instance,state(Family,'FaultyConstrain',constrain)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)):- + State = 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)):- + State \= 'Executed', + responsibilityOption(PreResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(PreResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(PreResponsibilityId,Instance,state(Family,State,current))). + +situationCommand (ResponsibilityId,[],'FaultyConstraintStart',Family):- + responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,'Executed',Step), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyConstraintStart',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyConstraintStart',Family):- + notExecutedDependencies (Dependencies), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyConstraintStart',current))). + +situationCommand (ResponsibilityId,Dependencies,'Executed',Family):- + responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,'Executed',Step), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,State)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'Executed',current))). + +situationCommand (ResponsibilityId,Dependencies,'Faulty',Family):- + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(ResponsibilityId,Instance,state(Family,'Faulty',current)). + +notExecutedDependencies ([]). +notExecutedDependencies ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed', + notExecutedDependencies (Rest). \ No newline at end of file diff --git a/org.isistan.flabot.engine/resource/LogicModuleGeneral.pl b/org.isistan.flabot.engine/resource/LogicModuleGeneral.pl new file mode 100755 index 0000000..ab6a09f --- /dev/null +++ b/org.isistan.flabot.engine/resource/LogicModuleGeneral.pl @@ -0,0 +1,149 @@ +analyzeResponsibilities(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)):- + analyzeResponsibility(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibilities(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain)):- + State = 'Executed', + responsibilityOption(CurrentResponsibility,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(CurrentResponsibility,Instance, state(Family,'Faulty',constrain)). +% markResponsibility(PreResponsibilityId,state(Family,'Faulty',path)), +% markAllPreviousResponsilitiesFrom(PreResponsibilityId,state(Family,'Faulty',path)) + + +analyzeResponsibility(-1,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain)):- + State \= 'Executed', + responsibilityOption(PreResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(PreResponsibilityId,Instance,State)), + assertRule(faultyComponent(PreResponsibilityId,Instance,state(Family,State,current))). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,precondition)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,precondition)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,PreComponentType,_), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + markResponsibility(PreResponsibilityId,PreInstance,state(Family,State,precondition)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,previous)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,previous)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,PreComponentType,_), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + markResponsibility(PreResponsibilityId,PreInstance,state(Family,State,previous)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,mapping)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,mapping)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,PreComponentType,_), + getFamilyToState(CurrentResponsibility,PreResponsibilityId,Family,NewFamily), + getComponentInstanceSource (NewFamily, PreComponentType, PreInstance), + markResponsibility(PreResponsibilityId,PreInstance,state(NewFamily,State,mapping)). + +evaluateMultipleErrors([state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1)|R]):- + analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),R). + +evaluateMultipleErrors([state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1)|R]):- + evaluateMultipleErrors(R). + +analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),[state(CurrentResponsibility2,PreResponsibilityId2,PreviousScenario2,PreviousEvent2,State2,Type2)|R]):- + Type1 \= Type2, verifyStates(State1,State2). + +analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),[state(CurrentResponsibility2,PreResponsibilityId2,PreviousScenario2,PreviousEvent2,State2,Type2)|R]):- + analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),R). + + +verifyStates(State1,State2):- + State1 = 'NotExecuted', + State2 = 'NotExecuted'. + +verifyStates(State1,State2):- + State1 = 'NotExecuted', + State2 = 'Faulty'. + +verifyStates(State1,State2):- + State1 = 'Faulty', + State2 = 'NotExecuted'. + +verifyStates(State1,State2):- + State1 = 'Faulty', + State2 = 'Faulty'. + +situationCommand (ResponsibilityId,Dependencies,'MultipleErrors',Family):- + evaluateMultipleErrors(Dependencies), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'MultipleErrors',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyPrecondition',Family):- + getDependenciesForType(Dependencies,precondition,Result), + situationForPrecondition(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyPrecondition',precondition))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyNextLevels',Family):- + getDependenciesForType(Dependencies,mapping,Result), + situationForMapping(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyNextLevels',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyPrevious',Family):- + getDependenciesForType(Dependencies,previous,Result), + situationForPrevious(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyPrevious',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyConstrain',Family):- + getDependenciesForType(Dependencies,constrain,Result), + situationForConstrain(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyConstrain',current))). + +situationCommand (ResponsibilityId,Dependencies,'Executed',Family):- + responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,'Executed',Step), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,State)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'Executed',current))). + +situationCommand (ResponsibilityId,Dependencies,'Faulty',Family):- + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(ResponsibilityId,Instance,state(Family,'Faulty',current)). + +situationForPrecondition ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed'. +situationForPrecondition ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForPrecondition (Rest). + +situationForPrevious ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed'. +situationForPrevious ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForPrevious (Rest). + +situationForMapping ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed'. +situationForMapping ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForMapping (Rest). + +situationForConstrain ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State = 'Executed'. + +situationForConstrain ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForConstrain (Rest). \ No newline at end of file diff --git a/org.isistan.flabot.engine/resource/LogicModuleStub.pl b/org.isistan.flabot.engine/resource/LogicModuleStub.pl new file mode 100755 index 0000000..ca03355 --- /dev/null +++ b/org.isistan.flabot.engine/resource/LogicModuleStub.pl @@ -0,0 +1,163 @@ +analyzeResponsibilities(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)):- + analyzeResponsibility(Result,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibilities(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain)):- + State = 'Executed', + responsibilityOption(CurrentResponsibility,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(CurrentResponsibility,Instance,state(Family,'Faulty',constrain)). +% markResponsibility(PreResponsibilityId,state(Family,'Faulty',path)), +% markAllPreviousResponsilitiesFrom(PreResponsibilityId,state(Family,'Faulty',path)) + +analyzeResponsibility(-1,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,constrain)):- + State \= 'Executed', + responsibilityOption(PreResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(PreResponsibilityId,Instance,State)), + assertRule(faultyComponent(PreResponsibilityId,Instance,state(Family,State,current))). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,precondition)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,precondition)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,PreComponentType,_), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + markResponsibility(PreResponsibilityId,PreInstance,state(Family,State,precondition)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,previous)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,previous)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,PreComponentType,_), + getComponentInstanceSource (Family, PreComponentType, PreInstance), + markResponsibility(PreResponsibilityId,PreInstance,state(Family,State,previous)). + +analyzeResponsibility(PreResponsibilityId,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,mapping)):- + State \= 'Executed'. + +analyzeResponsibility(-1,Family,CurrentScenario,ExecutionScenario,state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,mapping)):- + State = 'Executed', + responsibilityOption(PreResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(PreResponsibilityId,Instance,state(Family,State,mapping)). + +evaluateMultipleErrors([state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1)|R]):- + analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),R). + +evaluateMultipleErrors([state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1)|R]):- + evaluateMultipleErrors(R). + +analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),[state(CurrentResponsibility2,PreResponsibilityId2,PreviousScenario2,PreviousEvent2,State2,Type2)|R]):- + Type1 \= Type2, verifyStates(State1,State2). + +analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),[state(CurrentResponsibility2,PreResponsibilityId2,PreviousScenario2,PreviousEvent2,State2,Type2)|R]):- + analizeState(state(CurrentResponsibility1,PreResponsibilityId1,PreviousScenario1,PreviousEvent1,State1,Type1),R). + +verifyStates(State1,State2):- + State1 = 'NotExecuted', + State2 = 'NotExecuted'. + +verifyStates(State1,State2):- + State1 = 'NotExecuted', + State2 = 'Faulty'. + +verifyStates(State1,State2):- + State1 = 'Faulty', + State2 = 'NotExecuted'. + +verifyStates(State1,State2):- + State1 = 'Faulty', + State2 = 'Faulty'. + +situationCommand (ResponsibilityId,Dependencies,'MultipleErrors',Family):- + evaluateMultipleErrors(Dependencies), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'MultipleErrors',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyPrecondition',Family):- + getDependenciesForType(Dependencies,precondition,Result), + situationForPrecondition(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyPrecondition',precondition))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyNextLevels',Family):- + getDependenciesForType(Dependencies,mapping,Result), + situationForMapping(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyNextLevels',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyPrevious',Family):- + getDependenciesForType(Dependencies,previous,Result), + situationForPrevious(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyPrevious',current))). + +situationCommand (ResponsibilityId,Dependencies,'FaultyConstrain',Family):- + getDependenciesForType(Dependencies,constrain,Result), + situationForConstrain(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'FaultyConstrain',current))). + +situationCommand (ResponsibilityId,Dependencies,'Executed',Family):- + responsibilityLog(ResponsibilityId,Instance,Component,Event,Scenario,'Executed',Step), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,State)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'Executed',current))). + +situationCommand (ResponsibilityId,Dependencies,'Faulty',Family):- + getDependenciesForType(Dependencies,previous,Result), + situationForNotExecuted(Result), + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + retractRule(faultyComponent(ResponsibilityId,Instance,PrevState)), + assertRule(faultyComponent(ResponsibilityId,Instance,state(Family,'Faulty',current))). + +situationCommand (ResponsibilityId,Dependencies,'NotExecuted',Family):- + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(ResponsibilityId,Instance,state(Family,'NotExecuted',current)). + +situationCommand (ResponsibilityId,Dependencies,'Faulty',Family):- + responsibilityOption(ResponsibilityId,ComponentType,_), + getComponentInstanceSource (Family, ComponentType, Instance), + markResponsibility(ResponsibilityId,Instance,state(Family,'Faulty',current)). + +situationForPrecondition ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed', faultyComponent(PreResponsibilityId,Instance,state(Family,NewState,current)), NewState \= 'NotExecuted'. +situationForPrecondition ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForPrecondition (Rest). + +situationForPrevious ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed', faultyComponent(PreResponsibilityId,Instance,state(Family,NewState,current)), NewState \= 'NotExecuted'. +situationForPrevious ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForPrevious (Rest). + +situationForMapping ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed', faultyComponent(PreResponsibilityId,Instance,state(Family,NewState,current)), NewState \= 'NotExecuted'. +situationForMapping ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForMapping (Rest). + +situationForConstrain ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State \= 'Executed', faultyComponent(PreResponsibilityId,Instance,state(Family,NewState,current)), NewState \= 'NotExecuted'. +situationForConstrain ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForConstrain (Rest). + +situationForNotExecuted ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + State = 'Executed'. +situationForNotExecuted ([state(CurrentResponsibility,PreResponsibilityId,PreviousScenario,PreviousEvent,State,Type)|Rest]):- + situationForNotExecuted (Rest). \ No newline at end of file diff --git a/org.isistan.flabot.engine/resource/TraceInferencePredicates.pl b/org.isistan.flabot.engine/resource/TraceInferencePredicates.pl new file mode 100755 index 0000000..3112692 --- /dev/null +++ b/org.isistan.flabot.engine/resource/TraceInferencePredicates.pl @@ -0,0 +1,565 @@ +% adapter between the internally consulted executionState/5 and the user-specified +% eventState/2 that was asserted by the fault locator engine +executionState(LogQueryPredicates, ResponsibilityId, PreResponsibilityId, EventId, State) :- + assert(logQueryPredicates(LogQueryPredicates)), + assert(responsibilityId(ResponsibilityId)), + assert(preResponsibilityId(PreResponsibilityId)), + assert(eventId(EventId)), + indirectEventState(EventId, State), + retract(eventId(EventId)), + retract(preResponsibilityId(PreResponsibilityId)), + retract(responsibilityId(ResponsibilityId)), + retract(logQueryPredicates(LogQueryPredicates)). + +% indirect event state (uses event state) +indirectEventState(EventId, State) :- + eventState(EventId, State). + +% indirect event state (uses execution state) +indirectEventState(_, State) :- + executionState(State). + +% print the given object on the output stream (specifying first its class if not null) +printObject(Object) :- + logQueryPredicates(P), + send(P, printObject, [Object], _), !. + +% show a popup dialog with the given object (specifying first its class if not null) +popupDialog(Object) :- + logQueryPredicates(P), + send(P, popupDialog, [Object], _), !. + +% show a popup dialog with the given tags list and instantiate the list of user selected tags +popupTagsSelect(TagsList, SelectedTagsList) :- + logQueryPredicates(P), + send(P, plPopupTagsSelect, [TagsList], SelectedTagsList), !. + +% check if the given string matches the given regular expression +regexMatch(String, Regex) :- + logQueryPredicates(P), + send(P, plRegexMatch, [String, Regex], Return), + Return == true, !. + +% check if the 2 given strings are equal +stringsEqual(String1, String2) :- + logQueryPredicates(P), + send(P, plStringsEqual, [String1, String2], Return), + Return == true, !. + +% check if the given string contains the given substring +stringContains(String, Substring) :- + logQueryPredicates(P), + send(P, plStringContains, [String, Substring], Return), + Return == true, !. + +% instantiate the execution tag list for the current context +tags(TagList) :- + logQueryPredicates(P), + send(P, plTags, [], TagList), + TagList \== null, !. + +% instantiate the current filter settings (event override) +filterSettings(Filter) :- + eventId(EventId), + filter(EventId, Filter). + +% instantiate the current filter settings (provided by the responsibility) +filterSettings([]). + +% instantiate the current scope +scope(CurrentScope) :- + responsibilityId(ResponsibilityId), + scope(ResponsibilityId, CurrentScope). + +% instantiate the previous scope +preScope(PreScope) :- + preResponsibilityId(PreResponsibilityId), + scope(PreResponsibilityId, PreScope). + +% instantiate a correlated execution tag from the current context (deprecated, use correlatedTag instead) +executionTag(ExecutionTag) :- + correlatedTag(ExecutionTag). + +% instantiate a correlated execution tag from the current context +correlatedTag(Tag) :- + correlatedTags(TagList), !, + member(Tag, TagList). + +% instantiate an (uncorrelated) execution tag from the current context +tag(Tag) :- + tags(TagList), + member(Tag, TagList). + +% instantiate the list of correlated tags for the current context (cached) +correlatedTags(TagList) :- + responsibilityId(ResponsibilityId), + cachedCorrelatedTags(ResponsibilityId, TagList), !. + +% instantiate the pre filtered tag list (tags that were accepted by the preFilter) +preFilteredTags([], []). + +preFilteredTags([Tag| TagList], [Tag| FilteredTagList]) :- + generalPreFilter(Tag), + preFilterAccepts(Tag), + preFilteredTags(TagList, FilteredTagList), !. + +preFilteredTags([Tag| TagList], FilteredTagList) :- + preFilteredTags(TagList, FilteredTagList), !. + +% check if the preFilter accepts the given tag +generalPreFilter(Tag) :- + generalPreFilter, + generalPreFilterAccepts(Tag). + +preFilterAccepts(Tag) :- + eventId(EventId), + eventPreFilter(EventId), + eventPreFilterAccepts(EventId, Tag). + +preFilterAccepts(Tag) :- + eventId(EventId), + not(eventPreFilter(EventId)), + responsibilityPreFilter, + responsibilityPreFilterAccepts(Tag). + +preFilterAccepts(Tag) :- + not(responsibilityPreFilter), + eventId(EventId), + not(eventPreFilter(EventId)). + +% instantiate the list of correlated tags for the current context (calculate) +correlatedTags(CorrelatedTagList) :- + tags(TagList), + preFilteredTags(TagList, FilteredTagList), + preCorrelatedTags(PreTagList), + correlationParams(CorrelationParams), + correlatedTags(FilteredTagList, PreTagList, CorrelationParams, CorrelatedTagList), !. + +% get the correlation parameters specified by the user in the correlationSettings +correlationParams(CorrelationParams) :- + correlationSettings(CorrelationParams), !. + +% default correlation parameters +correlationParams([and, [sameThread], [lastExecution]]). + +% instantiate the list of correlated tags for the previous context (cached) +preCorrelatedTags(PreTagList) :- + preResponsibilityId(PreResponsibilityId), + cachedCorrelatedTags(PreResponsibilityId, PreTagList). + +% instantiate the list of correlated tags for the previous context (cache failed, instantiate the empty list) +preCorrelatedTags([]). + +% instantiate the list of correlated tags using the given +% tag list, previous tag list and correlation parameters +correlatedTags(TagList, PreTagList, CorrelationParams, CorrelatedTagList) :- + filterSettings(Filter), + logQueryPredicates(P), + send(P, plCorrelatedTags, [TagList, Filter, PreTagList, CorrelationParams], CorrelatedTagList), + CorrelatedTagList \== null, + assertCorrelated(CorrelatedTagList), !. + +% assert the current correlated tag list (add to cache) +assertCorrelated(CorrelatedTagList) :- + responsibilityId(Id), + retractCorrelated(Id), + assert(cachedCorrelatedTags(Id, CorrelatedTagList)). + +% retract the correlated tag list with the given id from the cache +retractCorrelated(Id) :- + retract(cachedCorrelatedTags(Id,_)). + +% retract the correlated tag list with the given id from the cache +retractCorrelated(Id). + +% instantiate the behavior tag for the given execution tag +behavior(ExecutionTag, BehaviorTag) :- + logQueryPredicates(P), + send(P, plBehavior, [ExecutionTag], BehaviorTag), + BehaviorTag \== null, !. + +% instantiate the behavior descriptor for the given behavior tag +behaviorDescriptor(BehaviorTag, BehaviorDescriptor) :- + logQueryPredicates(P), + send(P, plBehaviorDescriptor, [BehaviorTag], BehaviorDescriptor), + BehaviorDescriptor \== null, !. + +% check if the given execution tags behavior descriptor equals the given descriptor and +% instantiate the behavior tag +behaviorEquals(ExecutionTag, Descriptor, BehaviorTag) :- + behavior(ExecutionTag, BehaviorTag), + behaviorDescriptor(BehaviorTag, BehaviorDescriptor), + stringsEqual(BehaviorDescriptor, Descriptor). + +% check if the given execution tags behavior descriptor equals the given descriptor +behaviorEquals(ExecutionTag, Descriptor) :- + behaviorEquals(ExecutionTag, Descriptor, _). + +% check if the given execution tags behavior descriptor matches the given regex +% and instantiate the behavior tag +behaviorMatches(ExecutionTag, Regex, BehaviorTag) :- + behavior(ExecutionTag, BehaviorTag), + behaviorDescriptor(BehaviorTag, BehaviorDescriptor), + regexMatch(BehaviorDescriptor, Regex). + +% check if the given execution tags behavior descriptor matches the given regex +behaviorMatches(ExecutionTag, Regex) :- + behaviorMatches(ExecutionTag, Regex, _). + +% instantiate the declaring class tag for the given behavior tag +declaringClass(BehaviorTag, ClassTag) :- + logQueryPredicates(P), + send(P, plDeclaringClass, [BehaviorTag], ClassTag), + ClassTag \== null, !. + +% instantiate the class descriptor for the given class tag +classDescriptor(ClassTag, ClassDescriptor) :- + logQueryPredicates(P), + send(P, plClassDescriptor, [ClassTag], ClassDescriptor), + ClassDescriptor \== null, !. + +% instantiate the internal event tag list for the given execution tag +internalEventList(ExecutionTag, InternalEventTagList) :- + logQueryPredicates(P), + send(P, plInternalEvents, [ExecutionTag], InternalEventTagList), !. + +% instantiate an internal event tag from the given execution tag +internalEvent(ExecutionTag, InternalEventTag) :- + internalEventList(ExecutionTag, InternalEventTagList), + member(InternalEventTag, InternalEventTagList). + +% check if the given event tag is a method call +isMethodCall(Tag) :- + logQueryPredicates(P), + send(P, plIsMethodCall, [Tag], Result), + Result == true, !. + +% instantiate an internal method call from the given execution tag +internalMethodCall(ExecutionTag, MethodCallTag) :- + internalEvent(ExecutionTag, MethodCallTag), + isMethodCall(MethodCallTag). + +% check if the given execution or method call tags exit event is an error (an exception was thrown) +isExitError(ExecutionTag) :- + logQueryPredicates(P), + send(P, plExceptionThrown, [ExecutionTag], Result), + Result == true, !. + +% check if the given execution or method call tags exit event is null (the execution never ended) +isExitNull(ExecutionTag) :- + logQueryPredicates(P), + send(P, plIsExitNull, [ExecutionTag], Result), + Result == true, !. + +% check if the given execution or method call tags exit event is error or null +% (an exception was thrown or the execution never ended) +isExitErrorOrNull(ExecutionTag) :- + isExitError(ExecutionTag); + isExitNull(ExecutionTag). + +% instantiate the target behavior tag from the given call tag +targetBehavior(CallTag, BehaviorTag) :- + logQueryPredicates(P), + send(P, plTargetBehavior, [CallTag], BehaviorTag), + BehaviorTag \== null, !. + +% check if the target behavior descriptor equals the given descriptor and instantiate the +% target behavior tag +targetBehaviorEquals(CallTag, Descriptor, BehaviorTag) :- + targetBehavior(CallTag, BehaviorTag), + behaviorDescriptor(BehaviorTag, BehaviorDescriptor), + stringsEqual(BehaviorDescriptor, Descriptor). + +% check if the target behavior descriptor equals the given descriptor +targetBehaviorEquals(CallTag, Descriptor) :- + targetBehaviorEquals(CallTag, Descriptor, _). + +% check if the target behavior descriptor matches the given descriptor and instantiate the +% target behavior tag +targetBehaviorMatches(CallTag, Regex, BehaviorTag) :- + targetBehavior(CallTag, BehaviorTag), + behaviorDescriptor(BehaviorTag, BehaviorDescriptor), + regexMatch(BehaviorDescriptor, Regex). + +% check if the target behavior descriptor matches the given descriptor +targetBehaviorMatches(CallTag, Descriptor) :- + targetBehaviorMatches(CallTag, Descriptor, _). + +% instantiate an internal method call tag from the given execution tag whos target +% behavior descriptor equals the given descriptor +internalMethodCallEquals(ExecutionTag, Descriptor, MethodCallTag) :- + internalMethodCall(ExecutionTag, MethodCallTag), + targetBehaviorEquals(MethodCallTag, Descriptor). + +% check if the given execution tag has an internal method call tag whos target +% behavior descriptor equals the given descriptor +internalMethodCallEquals(ExecutionTag, Descriptor) :- + internalMethodCallEquals(ExecutionTag, Descriptor, _). + +% instantiate an internal method call tag from the given execution tag whos target +% behavior descriptor matches the given regular expresion +internalMethodCallMatches(ExecutionTag, Regex, MethodCallTag) :- + internalMethodCall(ExecutionTag, MethodCallTag), + targetBehaviorMatches(MethodCallTag, Regex). + +% check if the given execution tag has an internal method call tag whos target +% behavior descriptor matches the given regular expresion +internalMethodCallMatches(ExecutionTag, Regex) :- + internalMethodCallMatches(ExecutionTag, Regex, _). + +% check if the given event tag represents a field read +isFieldRead(Tag) :- + logQueryPredicates(P), + send(P, plIsFieldRead, [Tag], Result), + Result == true, !. + +% instantiate an internal field read tag from the given execution tag +internalFieldRead(ExecutionTag, FieldReadTag) :- + internalEvent(ExecutionTag, FieldReadTag), + isFieldRead(FieldReadTag). + +% check if the given event tag represents a field write +isFieldWrite(Tag) :- + logQueryPredicates(P), + send(P, plIsFieldWrite, [Tag], Result), + Result == true, !. + +% instantiate an internal field write event from the given execution tag +internalFieldWrite(ExecutionTag, FieldWriteTag) :- + internalEvent(ExecutionTag, FieldWriteTag), + isFieldWrite(FieldWriteTag). + +% check if the given tag is a field (read or write) event +isFieldEvent(FieldEvent) :- + isFieldRead(FieldEvent); + isFieldWrite(FieldEvent). + +% instantiate an internal field (read or write) event from the given execution tag +internalFieldEvent(ExecutionTag, FieldEventTag) :- + internalEvent(ExecutionTag, FieldEventTag), + isFieldEvent(FieldEventTag). + +% instantiate the target field tag for the given field event tag +targetField(FieldEventTag, FieldTag) :- + logQueryPredicates(P), + send(P, plTargetField, [FieldEventTag], FieldTag), + FieldTag \== null, !. + +% instantiate the field descriptor for the given field tag +fieldDescriptor(FieldTag, FieldDescriptor) :- + logQueryPredicates(P), + send(P, plFieldDescriptor, [FieldTag], FieldDescriptor), + FieldDescriptor \== null, !. + +% check if the target fields descriptor equals the given descriptor and +% instantiate the field tag +targetFieldEquals(FieldEventTag, Descriptor, FieldTag) :- + targetField(FieldEventTag, FieldTag), + fieldDescriptor(FieldTag, FieldDescriptor), + stringsEqual(Descriptor, FieldDescriptor). + +% check if the target fields descriptor equals the given descriptor +targetFieldEquals(FieldEventTag, Descriptor) :- + targetFieldEquals(FieldEventTag, Descriptor, _). + +% check if the target fields descriptor matches the given regular expression +% and instantiate the field tag +targetFieldMatches(FieldEventTag, Regex, FieldTag) :- + targetField(FieldEventTag, FieldTag), + fieldDescriptor(FieldTag, FieldDescriptor), + regexMatch(FieldDescriptor, Regex). + +% check if the target fields descriptor equals the given descriptor +targetFieldMatches(FieldEventTag, Regex) :- + targetFieldMatches(FieldEventTag, Regex, _). + +% instantiate a field read tag from the given execution tag whose target +% field descriptor equals the given descriptor +internalFieldReadEquals(ExecutionTag, Descriptor, FieldReadTag) :- + internalFieldRead(ExecutionTag, FieldReadTag), + targetFieldEquals(FieldReadTag, Descriptor). + +% check if the given execution tag has an internal field read tag whose target +% field descriptor equals the given descriptor +internalFieldReadEquals(ExecutionTag, Descriptor) :- + internalFieldReadEquals(ExecutionTag, Descriptor, _). + +% instantiate a field read tag from the given execution tag whose target +% field descriptor matches the given regular expression +internalFieldReadMatches(ExecutionTag, Regex, FieldReadTag) :- + internalFieldRead(ExecutionTag, FieldReadTag), + targetFieldMatches(FieldReadTag, Regex). + +% check if the given execution tag has an internal field read tag whose target +% field descriptor matches the given regular expression +internalFieldReadMatches(ExecutionTag, Regex) :- + internalFieldReadMatches(ExecutionTag, Regex, _). + +% instantiate a field write tag from the given execution tag whose target +% field descriptor equals the given descriptor +internalFieldWriteEquals(ExecutionTag, Descriptor, FieldWriteTag) :- + internalFieldWrite(ExecutionTag, FieldWriteTag), + targetFieldEquals(FieldWriteTag, Descriptor). + +% check if the given execution tag has an internal field write tag whose target +% field descriptor equals the given descriptor +internalFieldWriteEquals(ExecutionTag, Descriptor) :- + internalFieldWriteEquals(ExecutionTag, Descriptor, _). + +% instantiate a field write tag from the given execution tag whose target +% field descriptor matches the given regular expression +internalFieldWriteMatches(ExecutionTag, Regex, FieldWriteTag) :- + internalFieldWrite(ExecutionTag, FieldWriteTag), + targetFieldMatches(FieldWriteTag, Regex). + +% check if the given execution tag has an internal field write tag whose target +% field descriptor matches the given regular expression +internalFieldWriteMatches(ExecutionTag, Regex) :- + internalFieldWriteMatches(ExecutionTag, Regex, _). + +% instantiate a field event (read or write) tag from the given execution tag whose target +% field descriptor equals the given descriptor +internalFieldEventEquals(ExecutionTag, Descriptor, FieldEventTag) :- + internalFieldEvent(ExecutionTag, FieldEventTag), + targetFieldEquals(FieldEventTag, Descriptor). + +% check if the given execution tag has an internal field event (read or write) tag whose target +% field descriptor equals the given descriptor +internalFieldEventEquals(ExecutionTag, Descriptor) :- + internalFieldEventEquals(ExecutionTag, Descriptor, _). + +% instantiate a field event (read or write) tag from the given execution tag whose target +% field descriptor matches the given regular expression +internalFieldEventMatches(ExecutionTag, Regex, FieldEventTag) :- + internalFieldEvent(ExecutionTag, FieldEventTag), + targetFieldMatches(FieldEventTag, Regex). + +% check if the given execution tag has an internal field event (read or write) tag whose target +% field descriptor matches the given regular expression +internalFieldEventMatches(ExecutionTag, Regex) :- + internalFieldEventMatches(ExecutionTag, Regex, _). + +% instantiate the thread tag for the given execution tag +executionThread(ExecutionTag, ThreadTag) :- + logQueryPredicates(P), + send(P, plExecutionThread, [ExecutionTag], ThreadTag), + ThreadTag \== null, !. + +% instantiate the (entry) timestamp for the given event tag +timestamp(EventTag, Timestamp) :- + logQueryPredicates(P), + send(P, plTimestamp, [EventTag], Timestamp), + Timestamp \== null, !. + +% instantiate the object instance snapshot tag for given execution tag +executionInstanceSnapshot(ExecutionTag, SnapshotTag) :- + logQueryPredicates(P), + send(P, plExecutionInstanceSnapshot, [ExecutionTag], SnapshotTag), + SnapshotTag \== null, !. + +% instantiate the object instance tag for the given snapshot tag +snapshotObject(SnapshotTag, ObjectTag) :- + logQueryPredicates(P), + send(P, plSnapshotObject, [SnapshotTag], ObjectTag), + ObjectTag \== null, !. + +% instantiate the object id for the given object tag +objectId(ObjectTag, ObjectId) :- + logQueryPredicates(P), + send(P, plObjectId, [ObjectTag], ObjectId), + ObjectId \== null, !. + +% instantiate the class tag for the given object tag +objectClass(ObjectTag, ClassTag) :- + logQueryPredicates(P), + send(P, plObjectClass, [ObjectTag], ClassTag), + ClassTag \== null, !. + +% instantiate the list of arguments for the given execution tag +% (each argument is an object snapshot) +arguments(ExecutionTag, Arguments) :- + logQueryPredicates(P), + send(P, plArguments, [ExecutionTag], Arguments), + Arguments \== null, !. + +% instantiate an argument's object snapshot for the given execution tag +argument(ExecutionTag, Argument) :- + arguments(ExecutionTag, Arguments), + member(Argument, Arguments). + +% instantiate the return value for the given execution tag +returnValue(ExecutionTag, ReturnValue) :- + logQueryPredicates(P), + send(P, plReturnValue, [ExecutionTag], ReturnValue), + ReturnValue \== null, !. + +% get the toString value for the given object snapshot tag +snapshotToString(SnapshotTag, ToStringValue) :- + logQueryPredicates(P), + send(P, plSnapshotToString, [SnapshotTag], ToStringValue), + ToStringValue \== null, !. + +% instantiate the list of the given snapshots fields +snapshotFields(SnapshotTag, FieldList) :- + logQueryPredicates(P), + send(P, plSnapshotFields, [SnapshotTag], FieldList), + FieldList \== null, !. + +% instantiate a field from the given snapshot +snapshotField(SnapshotTag, Field) :- + snapshotFields(SnapshotTag, FieldList), + member(Field, FieldList). + +% check if the given snapshot tag is the snapshot of a null reference +snapshotIsNull(SnapshotTag) :- + logQueryPredicates(P), + send(P, plSnapshotIsNull, [SnapshotTag], Result), + Result == true. + +elemetAt([H|_], 0, H). +elemetAt([H|List], X, Y):- X1 is X - 1, elemetAt(List,X1, Y). + +% check if String1 is greater String2 (number format) +stringsGreater(String1, String2) :- + logQueryPredicates(P), + send(P, plStringsGreater, [String1, String2], Return), + Return == true, !. + +% check if String1 is greater equal String2 (number format) +stringsGreaterEqual(String1, String2) :- + logQueryPredicates(P), + send(P, plStringsGreaterEqual, [String1, String2], Return), + Return == true, !. + +% check if String1 is lower String2 (number format) +stringsLower(String1, String2) :- + logQueryPredicates(P), + send(P, plStringsLower, [String1, String2], Return), + Return == true, !. + +% check if String1 is lower equal String2 (number format) +stringsLowerEqual(String1, String2) :- + logQueryPredicates(P), + send(P, plStringsLowerEqual, [String1, String2], Return), + Return == true, !. + +targetInstance(CallTag, InstanceTag) :- + logQueryPredicates(P), + send(P, plTargetInstance, [CallTag], InstanceTag), + InstanceTag \== null, !. + +% check if the given scope accepts the given snapshot tag +scopeAcceptsSnapshot(Scope, [SnapshotTag]) :- + logQueryPredicates(P), + send(P, plScopeAcceptsSnapshotTag, [Scope, SnapshotTag], ReturnValue), + ReturnValue == true, !. + +scopeAcceptsSnapshot(Scope, [SnapshotTag|SnapshotTags]) :- + scopeAcceptsSnapshot(Scope, SnapshotTag), + scopeAcceptsSnapshot(Scope, SnapshotTags). + +% instantiate exception thrown for the given execution tag +exceptionThrown(ExecutionTag, Exception) :- + logQueryPredicates(P), + send(P, plExceptionThrown, [ExecutionTag], Exception), + Exception \== null, !. \ No newline at end of file diff --git a/org.isistan.flabot.engine/schema/failureLocatedAction.exsd b/org.isistan.flabot.engine/schema/failureLocatedAction.exsd new file mode 100755 index 0000000..4ec8228 --- /dev/null +++ b/org.isistan.flabot.engine/schema/failureLocatedAction.exsd @@ -0,0 +1,135 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/schema/generalLogFilterStrategyUIComboBox.exsd b/org.isistan.flabot.engine/schema/generalLogFilterStrategyUIComboBox.exsd new file mode 100755 index 0000000..3faa407 --- /dev/null +++ b/org.isistan.flabot.engine/schema/generalLogFilterStrategyUIComboBox.exsd @@ -0,0 +1,105 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/schema/strategyUIComboBox.exsd b/org.isistan.flabot.engine/schema/strategyUIComboBox.exsd new file mode 100755 index 0000000..73cd868 --- /dev/null +++ b/org.isistan.flabot.engine/schema/strategyUIComboBox.exsd @@ -0,0 +1,105 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlView.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlView.java new file mode 100755 index 0000000..97d360e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlView.java @@ -0,0 +1,259 @@ +/** + * $Id: ControlView.java,v 1.15 2006/03/22 03:28:54 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.controlview; + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuCreator; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.InterfacePluginEngine; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.executionmodel.ExecutionStep; + +/** + * @author $Author: franco $ + * + */ +public class ControlView extends PageBookView { + + FlabotMultiPageEditor actualEditor; + + /** + * Destroys a page in the pagebook for a particular part. + */ + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec rec) { + ControlViewPage page = (ControlViewPage) rec.page; + page.dispose(); + rec.dispose(); + } + + /** + * Creates and returns a new SequenceViewPage for the particular FlabotFileModel. + * This page will be made visible whenever the FlabotMultiPageEditor corresponding to this model is active. + * + * @return the new SequenceViewPage + */ + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + ControlViewPage page = new ControlViewPage(actualEditor.getModel(), InterfacePluginEngine.getExecutionInfoManager(actualEditor)); + initPage(page); + page.createControl(getPageBook()); + createActions(page, page.getSite().getActionBars().getToolBarManager()); + return new PageRec(part, page); + } + + /** + * The Sequence View is available only when a FlabotMultiPageEditor is open. + * In the case that the actual FlabotFileModel is not the equal to the selected FlabotMultiPageEditor, the SequenceView must be updated. + * + * @return true if the Sequence View must be updated + */ + @Override + protected boolean isImportant(IWorkbenchPart part) { + if (part instanceof FlabotMultiPageEditor) { + FlabotMultiPageEditor editor = (FlabotMultiPageEditor) part; + if (editor != actualEditor) { + actualEditor = editor; + return true; + } + } + return false; + } + + /** + * Returns the active, important workbench part for this view. + * + * @return the active important part, or null if none + */ + @Override + protected IWorkbenchPart getBootstrapPart() { + IWorkbenchPage page = getSite().getPage(); + if (page != null) { + //bootstrapSelection = page.getSelection(); + return page.getActivePart(); + } + return null; + } + + /** + * Creates and returns the default page for this view. + * When the Sequence View is not available. + * + * @return the default page + */ + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage page = new MessagePage(); + initPage(page); + page.createControl(book); + page.setMessage(Messages.getString("org.isistan.flabot.engine.SequenceView.controlViewNotAvailable")); //$NON-NLS-1$ + page.getControl().setBackground(ColorConstants.white); + return page; + } + + public void createActions(final ControlViewPage page, IToolBarManager manager) { + Action actionRR = new Action(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionRewind"), IAction.AS_DROP_DOWN_MENU) { //$NON-NLS-1$ + @Override + public void run() { + page.rrStep(); + } + }; + actionRR.setMenuCreator(new MenuCreator(page)); + actionRR.setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionRewindTooltipText")); //$NON-NLS-1$ + actionRR.setImageDescriptor(ImageDescriptor.createFromFile(EnginePlugin.class, "icons/rr.gif")); //$NON-NLS-1$ + + final Action actionFF = new Action(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionFF")) { //$NON-NLS-1$ + @Override + public void run() { + page.ffStep(); + } + }; + actionFF.setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionFFTooltipText")); //$NON-NLS-1$ + actionFF.setEnabled(false); + actionFF.setImageDescriptor(ImageDescriptor.createFromFile(EnginePlugin.class, "icons/ff.gif")); //$NON-NLS-1$ + + final Action actionPause = new Action(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPause"), IAction.AS_CHECK_BOX) { //$NON-NLS-1$ + @Override + public void run() { + if (isChecked()) { + actionFF.setEnabled(true); + setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFEnabled")); //$NON-NLS-1$ + } else { + actionFF.setEnabled(false); + setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFDisabled")); //$NON-NLS-1$ + } + page.pauseStep(isChecked()); + } + }; + actionPause.setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipText")); //$NON-NLS-1$ + actionPause.setImageDescriptor(ImageDescriptor.createFromFile(EnginePlugin.class, "icons/pause.gif")); //$NON-NLS-1$ + + final Action actionPlay = new Action(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPlay")) { //$NON-NLS-1$ + @Override + public void run() { + actionPause.setChecked(false); + actionFF.setEnabled(false); + page.playStep(); + } + }; + actionPlay.setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionPlayTooltipText")); //$NON-NLS-1$ + actionPlay.setImageDescriptor(ImageDescriptor.createFromFile(EnginePlugin.class, "icons/play.gif")); //$NON-NLS-1$ + + Action actionStop = new Action(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionStop")) { //$NON-NLS-1$ + @Override + public void run() { + actionPause.setChecked(false); + //actionPause.setEnabled(false); + actionFF.setEnabled(false); + page.stopStep(); + } + }; + actionStop.setToolTipText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.actionStopTooltipText")); //$NON-NLS-1$ + actionStop.setImageDescriptor(ImageDescriptor.createFromFile(EnginePlugin.class, "icons/stop.gif")); //$NON-NLS-1$ + + //Adds the action buttons to the tool bar manager + manager.add(new Separator()); + manager.add(actionRR); + manager.add(new Separator()); + manager.add(actionPlay); + manager.add(new Separator()); + manager.add(actionPause); + manager.add(new Separator()); + manager.add(actionFF); + manager.add(new Separator()); + manager.add(actionStop); + manager.add(new Separator()); + } + + class MenuCreator implements IMenuCreator { + + ControlViewPage controlViewPage; + + Menu activeMenu; + + public MenuCreator(ControlViewPage controlViewPage) { + this.controlViewPage = controlViewPage; + } + + /** + * Disposes the menu returned by getMenu. Does nothing + * if there is no menu. This method will be executed only when the + * parent of the menu is disposed. + */ + public void dispose() { + if (activeMenu != null) + activeMenu.dispose(); + } + + /** + * Returns the SWT menu, created as a pop up menu parented by the + * given control. In most cases, this menu can be created once, cached and reused + * when the pop-up/drop-down action occurs. If the menu must be dynamically + * created (i.e., each time it is popped up or dropped down), the old menu + * should be disposed of before replacing it with the new menu. + * + * @param parent the parent control + * @return the menu, or null if the menu could not + * be created + */ + public Menu getMenu(Control parent) { + dispose(); + activeMenu = createMenu(parent, controlViewPage.getActiveSteps()); + return activeMenu; + } + + private Menu createMenu(Control parent, List steps) { + Menu menu = new Menu(parent); + for(Iterator iter=steps.iterator(); iter.hasNext();) { + final ExecutionStep step = (ExecutionStep) iter.next(); + MenuItem item = new MenuItem(menu, SWT.NONE); + item.setText(Messages.getString("org.isistan.flabot.edit.controlview.ControlView.step") + step.getSource().getName() + " -> " + step.getTarget().getName()); //$NON-NLS-1$ //$NON-NLS-2$ + item.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + controlViewPage.rrToStep(step); + } + }); + } + return menu; + } + + /** + * Returns an SWT menu created as a drop down menu parented by the + * given menu. In most cases, this menu can be created once, cached and reused + * when the pop-up/drop-down action occurs. If the menu must be dynamically + * created (i.e., each time it is popped up or dropped down), the old menu + * should be disposed of before replacing it with the new menu. + * + * @param parent the parent menu + * @return the menu, or null if the menu could not + * be created + */ + public Menu getMenu(Menu parent) { + return null; + } + + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewContentProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewContentProvider.java new file mode 100755 index 0000000..59ee62f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewContentProvider.java @@ -0,0 +1,88 @@ +/** + * $Id: ControlViewContentProvider.java,v 1.7 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.controlview; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionStep; + +/** + * @author $Author: franco $ + * + */ +public class ControlViewContentProvider implements ITreeContentProvider { + + private static Object[] EMPTY_ARRAY = new Object[0]; + + protected ExecutionInfo root; + + /* + * @see IContentProvider#dispose() + */ + public void dispose() {} + + /** + * Notifies this content provider that the given viewer's input + * has been switched to a different element. + *

+ * A typical use for this method is registering the content provider as a listener + * to changes on the new input (using model-specific means), and deregistering the viewer + * from the old input. In response to these change notifications, the content provider + * propagates the changes to the viewer. + *

+ * + * @param viewer the viewer + * @param oldInput the old input element, or null if the viewer + * did not previously have an input + * @param newInput the new input element, or null if the viewer + * does not have an input + */ + public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { + if(newInput != null) + root = (ExecutionInfo) newInput; + } + + /* + * @see ITreeContentProvider#getChildren(Object) + */ + @SuppressWarnings("deprecation") //$NON-NLS-1$ + public Object[] getChildren(Object parentElement) { + if(parentElement instanceof ExecutionInfo) { + return ((ExecutionInfo)parentElement).getExecutionSteps().toArray(); + } + if(parentElement instanceof ExecutionStep) { + ExecutionStep step = (ExecutionStep)parentElement; + if (!step.getDependency().getType().equals("[]")) //$NON-NLS-1$ + return new Object[]{step.getSource(), step.getTarget(), step.getDependency()}; + else + return new Object[]{step.getSource(), step.getTarget()}; + } + return EMPTY_ARRAY; + } + + /* + * @see ITreeContentProvider#getParent(Object) + */ + public Object getParent(Object element) { + if(element instanceof ExecutionStep) + return root; + return null; + } + + /* + * @see ITreeContentProvider#hasChildren(Object) + */ + public boolean hasChildren(Object element) { + return getChildren(element).length > 0; + } + + /* + * @see IStructuredContentProvider#getElements(Object) + */ + public Object[] getElements(Object inputElement) { + return getChildren(inputElement); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.java new file mode 100755 index 0000000..1ca2c3f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewLabelProvider.java @@ -0,0 +1,106 @@ +/** + * $Id: ControlViewLabelProvider.java,v 1.11 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.controlview; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.IColorProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Image; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.edit.ucmeditor.editparts.DependencyToColorFactory; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.ExecutionStep; + +/** + * @author $Author: franco $ + * + */ +public class ControlViewLabelProvider extends LabelProvider implements IColorProvider { + + private Map imageCache = new HashMap(4); + + boolean isSource = true; + + /* + * @see ILabelProvider#getImage(Object) + */ + @Override + public Image getImage(Object element) { + ImageDescriptor descriptor = null; + if (element instanceof ExecutionStep) { + isSource = true; + descriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/step.gif"); //$NON-NLS-1$ + } + if (element instanceof SimplePathNode) { + if (isSource) + descriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/source.gif"); //$NON-NLS-1$ + else + descriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/target.gif"); //$NON-NLS-1$ + isSource = !isSource; + } + if (element instanceof Dependency) { + descriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/dependency.gif"); //$NON-NLS-1$ + } + + //obtain the cached image corresponding to the descriptor + Image image = imageCache.get(descriptor); + if (image == null && descriptor != null) { + image = descriptor.createImage(); + imageCache.put(descriptor, image); + } + return image; + } + + /* + * @see ILabelProvider#getText(Object) + */ + @Override + public String getText(Object element) { + if (element instanceof List) { + return Messages.getString("org.isistan.flabot.edit.controlview.ControlViewLabelProvider.steps"); //$NON-NLS-1$ + } + if (element instanceof ExecutionStep) { + ExecutionStep step = (ExecutionStep) element; + return Messages.getString("org.isistan.flabot.edit.controlview.ControlViewLabelProvider.step") + step.getSource().getName() + " -> " + step.getTarget().getName(); //$NON-NLS-1$ //$NON-NLS-2$ + } + if (element instanceof SimplePathNode) { + return ((SimplePathNode)element).getName(); + } + if (element instanceof Dependency) { + return ((Dependency)element).getType(); + } + + return ""; //$NON-NLS-1$ + } + + @Override + public void dispose() { + for (Iterator i = imageCache.values().iterator(); i.hasNext();) { + ((Image) i.next()).dispose(); + } + imageCache.clear(); + } + + public Color getForeground(Object element) { + if (element instanceof ExecutionStep) { + ExecutionStep step = (ExecutionStep) element; + return DependencyToColorFactory.getColor(step.getDependency().getType()); + } + + return null; + } + + public Color getBackground(Object o) { + return null; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewPage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewPage.java new file mode 100755 index 0000000..d415dc9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/controlview/ControlViewPage.java @@ -0,0 +1,294 @@ +/** + * $Id: ControlViewPage.java,v 1.23 2006/03/29 00:55:37 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.controlview; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.internal.Workbench; +import org.eclipse.ui.part.IPageBookViewPage; +import org.eclipse.ui.part.IPageSite; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.engine.locator.FlabotEngineLocator; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; +import org.isistan.flabot.util.locator.ComponentLocatorException; +import org.isistan.flabot.util.locator.ComponentLocatorManager; + +/** + * @author $Author: franco $ + * + */ +public class ControlViewPage implements IPageBookViewPage, Adapter { + + private ExecutionInfoManager executionInfoManager; + + private RuntimeManager runtimeManager; + + private TreeViewer viewer; + + private IPageSite site; + + private Notifier target; + + /** + * Instantiates the SequenceViewPage with and an ExecutionInfoManager. + */ + public ControlViewPage(FlabotFileModel model, ExecutionInfoManager executionInfoManager) { + this.executionInfoManager = executionInfoManager; + setRuntimeManager(model); + activate(); + } + + + /** + * Returns the Execution Info Manager + * + * @return the execution info manager + */ + private ExecutionInfoManager getExecutionInfoManager() { + return executionInfoManager; + } + + protected void activate() { + getExecutionInfoManager().eAdapters().add(this); + } + + protected void deactivate() { + getExecutionInfoManager().eAdapters().remove(this); + } + + private void setRuntimeManager(FlabotFileModel flabotFileModel) { + // add the file model to the parameters map + Map parameters = new HashMap(2); + parameters.put(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, + flabotFileModel); + parameters.put(FlabotEngineLocator.PARAMETER_EXECUTION_INFO_MANAGER, + executionInfoManager); + // obtain a reference to the component locator manager + ComponentLocatorManager locatorManager = + FlabotPlugin.getDefault().getComponentLocatorManager(); + + try { + // ask the locator manager to find a runtime manager reference + runtimeManager = (RuntimeManager) + locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, + parameters); + } catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.engine.RunEngineAction.exceptionTryingToLocateTheFlabotEngine"), e); //$NON-NLS-1$ + runtimeManager = null; + } + } + + protected TreeViewer getViewer() { + return viewer; + } + + /** + * Creates the SWT control for this page under the given parent + * control. Creates a viewer for the Sequence View, with a SequenceViewFactory. + */ + public void createControl(Composite parent) { + viewer = new TreeViewer(parent); + + getViewer().getControl().setBackground(ColorConstants.white); + getViewer().setContentProvider(new ControlViewContentProvider()); + getViewer().setLabelProvider(new ControlViewLabelProvider()); + + getViewer().setInput(getCurrentExecutionInfo()); + + + //Double click edition over conditions + /* getViewer().getTree().addListener( SWT.MouseDoubleClick, new Listener() { + public void handleEvent(Event event) { + TreeItem[] items = getViewer().getTree().getSelection(); + if (items.length == 1 && items[0].getData() instanceof ExecutionStep) { + ExecutionStep step = (ExecutionStep)items[0].getData(); + if (step.getDiagnosticToSource() != null) { + List tags = (List) step.getDiagnosticToSource().getAdditionalData().get(TraceBasedStateDeterminationStrategy.ANALYZED_TAGS_KEY); + if (tags != null) + TagFilterDialogManager.INSTANCE.filterTags("Show Tags", tags, Collections.EMPTY_LIST); + } + } + + } + }); */ + + /*getViewer().addSelectionChangedListener(new ISelectionChangedListener() { + public void selectionChanged(SelectionChangedEvent event) { + // if the selection is empty clear the label + if(event.getSelection().isEmpty()) { + itemSelected = null; + return; + } + if(event.getSelection() instanceof IStructuredSelection) { + IStructuredSelection selection = (IStructuredSelection)event.getSelection(); + for (Iterator iterator = selection.iterator(); iterator.hasNext();) { + Object o = iterator.next(); + if (o instanceof ExecutionStep) + itemSelected = (ExecutionStep) o; + } + } + } + } + );*/ + } + + public ExecutionInfo getCurrentExecutionInfo() { + return getExecutionInfoManager().getCurrentExecution(); + } + + /** + * Disposes of this page. + */ + public void dispose() { + deactivate(); + } + + public void playStep() { + runtimeManager.playStep(); + } + + public void rrStep() { + int size = getActiveSteps().size(); + if (size > 1) + runtimeManager.rrToStep(getActiveSteps().get(size - 2)); + } + + public void ffStep() { + runtimeManager.ffStep(); + } + + public void stopStep() { + runtimeManager.stopStep(); + } + + public void pauseStep(boolean isChecked) { + runtimeManager.pauseStep(isChecked); + } + + public void rrToStep(ExecutionStep step) { + runtimeManager.rrToStep(step); + } + + /** + * Returns the SWT control for this page. + * + * @return the SWT control for this page, or null if this + * page does not have a control + */ + public Control getControl() { + return getViewer().getControl(); + } + + public void setActionBars(IActionBars actionBars) { + //Do nothing + } + + /** + * Asks this page to take focus within its pagebook view. + */ + public void setFocus() { + getViewer().getControl().setFocus(); + } + + public IPageSite getSite(){ + return site; + } + + public void init(IPageSite site) { + this.site = site; + } + + protected void addNewStep(ExecutionStep step) { + getViewer().refresh(); + } + + protected void removeStep(ExecutionStep step) { + getViewer().refresh(); + } + + private void changeExecutionInfo() { + getViewer().getTree().removeAll(); + getViewer().setInput(getCurrentExecutionInfo()); + } + + @SuppressWarnings("deprecation") //$NON-NLS-1$ + public List getActiveSteps() { + return getCurrentExecutionInfo().getExecutionSteps(); + } + + /* + * Adapter Implementation + */ + public Notifier getTarget() { + return target; + } + + public void setTarget(Notifier newTarget) { + target = newTarget; + } + + public boolean isAdapterForType(Object type) { + return getExecutionInfoManager() == type; + } + + public void internalNotifyChanged(Notification notification) { + if (notification.getNotifier() instanceof ExecutionInfo) { + switch (notification.getEventType()) { + case Notification.ADD: { + ExecutionStep newStep = (ExecutionStep)notification.getNewValue(); + if (newStep.getEnabled() == ExecutionContext.enabled_Step) + addNewStep(newStep); + break; + } + case Notification.REMOVE: { + ExecutionStep oldStep = (ExecutionStep)notification.getOldValue(); + if (oldStep.getEnabled() == ExecutionContext.enabled_Step) + removeStep((ExecutionStep)notification.getOldValue()); + break; + } + case ExecutionmodelPackage.EXECUTION_INFO__RESET: + if (notification.getEventType() == Notification.SET) { + changeExecutionInfo(); + } + break; + } + } else + if (notification.getEventType() == Notification.SET) + switch (notification.getFeatureID(ExecutionmodelPackage.class)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + changeExecutionInfo(); + break; + } + } + + public void notifyChanged(final Notification notification) { + Workbench.getInstance().getDisplay().syncExec( + new Runnable() { + public void run(){ + internalNotifyChanged(notification); + } + } + ); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapView.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapView.java new file mode 100755 index 0000000..c72c589 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapView.java @@ -0,0 +1,105 @@ +/** + * $Id: MapView.java,v 1.10 2006/03/29 19:27:28 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.gef.commands.CommandStack; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.engine.InterfacePluginEngine; +import org.isistan.flabot.engine.messages.Messages; + +/** + * The Map View is used to show the route followed by the Fault Locator Engine. + * This route is shown uding the same UCM diagrams done by the user, but the path followed by the engine is added to it. + * Also the responsibilities have the color of its state. + * + * @author $Author: franco $ + * + */ +public class MapView extends PageBookView { + + FlabotMultiPageEditor actualEditor; + CommandStack commandStack; + + /** + * Destroys a page in the pagebook for a particular part. + */ + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec rec) { + MapViewPage page = (MapViewPage) rec.page; + page.dispose(); + rec.dispose(); + } + + /** + * Creates and returns a new SequenceViewPage for the particular FlabotFileModel. + * This page will be made visible whenever the FlabotMultiPageEditor corresponding to this model is active. + * + * @return the new SequenceViewPage + */ + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + MapViewPage page = new MapViewPage(actualEditor.getModel(), InterfacePluginEngine.getExecutionInfoManager(actualEditor), actualEditor); + initPage(page); + page.createControl(getPageBook()); + return new PageRec(part, page); + } + + /** + * The Sequence View is available only when a FlabotMultiPageEditor is open. + * In the case that the actual FlabotFileModel is not the equal to the selected FlabotMultiPageEditor, the SequenceView must be updated. + * + * @return true if the Sequence View must be updated + */ + @Override + protected boolean isImportant(IWorkbenchPart part) { + if (part instanceof FlabotMultiPageEditor) { + FlabotMultiPageEditor editor = (FlabotMultiPageEditor) part; + commandStack = editor.getCommandStack(); + if (editor != actualEditor) { + actualEditor = editor; + return true; + } + } + return false; + } + + /** + * Returns the active, important workbench part for this view. + * + * @return the active important part, or null if none + */ + @Override + protected IWorkbenchPart getBootstrapPart() { + IWorkbenchPage page = getSite().getPage(); + if (page != null) { + //bootstrapSelection = page.getSelection(); + return page.getActivePart(); + } + return null; + } + + /** + * Creates and returns the default page for this view. + * When the Sequence View is not available. + * + * @return the default page + */ + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage page = new MessagePage(); + initPage(page); + page.createControl(book); + page.setMessage(Messages.getString("org.isistan.flabot.engine.MapView.mapViewNotAvailable")); //$NON-NLS-1$ + page.getControl().setBackground(ColorConstants.white); + return page; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapViewPage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapViewPage.java new file mode 100755 index 0000000..040026b --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/MapViewPage.java @@ -0,0 +1,1212 @@ +/** + * $Id: MapViewPage.java,v 1.47 2006/04/04 03:37:06 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.draw2d.FigureCanvas; +import org.eclipse.draw2d.LightweightSystem; +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.gef.EditDomain; +import org.eclipse.gef.GraphicalViewer; +import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; +import org.eclipse.jface.util.Assert; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.ControlListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Canvas; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.internal.Workbench; +import org.eclipse.ui.part.IPageBookViewPage; +import org.eclipse.ui.part.IPageSite; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.coremodel.CoreModel; +import org.isistan.flabot.coremodel.Family; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.coremodel.UseCaseMap; +import org.isistan.flabot.edit.editormodel.Color; +import org.isistan.flabot.edit.editormodel.ConnectionVisualModel; +import org.isistan.flabot.edit.editormodel.Diagram; +import org.isistan.flabot.edit.editormodel.EditormodelFactory; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.edit.editormodel.NodeVisualModel; +import org.isistan.flabot.edit.editormodel.Point; +import org.isistan.flabot.edit.editormodel.Util; +import org.isistan.flabot.edit.editormodel.VisualDiagramJump; +import org.isistan.flabot.edit.editormodel.VisualModel; +import org.isistan.flabot.edit.mapview.editparts.MapViewFactory; +import org.isistan.flabot.edit.mapview.editparts.ScalableFreeformMapViewRootEditPart; +import org.isistan.flabot.edit.mapview.editparts.StateColorFactory; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.edit.ucmeditor.editparts.DependencyToColorFactory; +import org.isistan.flabot.edit.ucmeditor.editparts.DependencyToLineStyleFactory; +import org.isistan.flabot.edit.ucmeditor.figures.ResponsibilityNodeFigure; +import org.isistan.flabot.edit.ucmeditor.figures.VisualDiagramJumpFigure; +import org.isistan.flabot.edit.ucmmodel.UCMDiagram; +import org.isistan.flabot.edit.ucmmodel.UcmmodelFactory; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * The MapViewPage represents a sequence for an opened FlabotFileModel. + * It shows the route followed by the Fault Locator Engine. + * + * @author $Author: franco $ + * + */ +public class MapViewPage implements IPageBookViewPage, Adapter { + + private SashForm sashForm; + + private CTabFolder container; + + private FlabotFileModel model; + + private ExecutionInfoManager manager; + + private IPageSite site; + + private Notifier target; + + private List diagramTabs = new ArrayList(); + + private Map mapsToDiagrams = new HashMap();; + + private Map> diagramsToMapNodes = new HashMap>(); + + private boolean isBarUp = false; + + private List steps = new ArrayList(); + + private Map nodesIDToFamilyID = new HashMap(); + + private EditDomain editDomain; + + /** + * Instantiates the MapViewPage with and a FlabotFileModel and an ExecutionInfoManager. + */ + public MapViewPage(FlabotFileModel model, ExecutionInfoManager manager, FlabotMultiPageEditor editor) { + this.manager = manager; + this.model = model; + editDomain = new EditDomain(); + editDomain.setCommandStack( new NoExecutionFlabotCommandStack(editor)); + + activate(); + } + + private org.eclipse.draw2d.geometry.Point getMinimun(VisualModel parent, NodeVisualModel child, int separationoffset, int paralleloffset) { + if (parent == null) + return new org.eclipse.draw2d.geometry.Point(child.getLocation().getX() + separationoffset, child.getLocation().getY() + paralleloffset); + + //horizontal left or right + int minHLeft = child.getLocation().getX(); + int minHRight = parent.getSize().getWidth() - child.getLocation().getX(); + + org.eclipse.draw2d.geometry.Point retH; int minH; + if (minHLeft < minHRight) { + retH = new org.eclipse.draw2d.geometry.Point(parent.getLocation().getX() - separationoffset, parent.getLocation().getY() + child.getLocation().getY() + paralleloffset); + minH = minHLeft; + } else { + retH = new org.eclipse.draw2d.geometry.Point(parent.getLocation().getX() + parent.getSize().getWidth() + separationoffset, parent.getLocation().getY() + child.getLocation().getY() + paralleloffset); + minH = minHRight; + } + + //vertical up or down + int minVUp = child.getLocation().getY(); + int minVDown = parent.getSize().getHeight() - child.getLocation().getY(); + + org.eclipse.draw2d.geometry.Point retV; int minV; + if (minVUp < minVDown) { + retV = new org.eclipse.draw2d.geometry.Point(parent.getLocation().getX() + child.getLocation().getX() + paralleloffset, parent.getLocation().getY() - separationoffset); + minV = minVUp; + } else { + retV = new org.eclipse.draw2d.geometry.Point(parent.getLocation().getX() + child.getLocation().getX() + paralleloffset, parent.getLocation().getY() + parent.getSize().getHeight() + separationoffset); + minV = minVDown; + } + + //the minimun + if (minH < minV) + return retH; + else + return retV; + } + + /** + * Returns the Execution Info Manager + * + * @return the execution info manager + */ + private ExecutionInfoManager getExecutionInfoManager() { + return manager; + } + + private void updateNoSteps() { + Label l = new Label(container, SWT.NONE); + l.setBackground(ColorConstants.white); + l.setText(Messages.getString("org.isistan.flabot.engine.mapview.MapViewPage.noExecutionStepsMapView")); //$NON-NLS-1$ + createItem(getContainer().getItemCount(), l, ""); //$NON-NLS-1$ + setActivePage(0); + } + + /** + * @see IWorkbenchPart#createPartControl(Composite) + */ + public void createControl(Composite parent) { + sashForm = new SashForm(parent, SWT.VERTICAL); + + container = createContainer(sashForm); + createControlStatesBar(sashForm); + + if (getExecutionInfoManager().getCurrentExecution() == null || getExecutionInfoManager().getCurrentExecution().getStepsCount() <= 0) { + updateNoSteps(); + } + + sashForm.addControlListener( new ControlListener() { + /** + * Sent when the location (x, y) of a control changes relative + * to its parent (or relative to the display, for Shells). + * + * @param e an event containing information about the move + */ + public void controlMoved(ControlEvent e) { + updateDependencyBarState(false); + } + + /** + * Sent when the size (width, height) of a control changes. + * + * @param e an event containing information about the resize + */ + public void controlResized(ControlEvent e) { + updateDependencyBarState(false); + } + + }); + + } + + private int calculatePercentage(int nro) { + int height = sashForm.getClientArea().height; + if (height == 0) height = 100; + return (100*nro) / height; + } + + private CTabFolder getContainer() { + return container; + } + + private void updateDependencyBarState(boolean changeState) { + if (changeState) + isBarUp = !isBarUp; + + int p = 0; + if (isBarUp) + p = calculatePercentage(100); + else + p = calculatePercentage(30); + + if (p<0 || p>100) p =0; + sashForm.setWeights(new int[]{100-p,p}); + } + + /** + * Adds a new diagram to the Map View. The different diagrams are shown in a container with tabs. + * An edit domain is created for the diagram and a new item is added to the container. + * + * @param diagram the diagram to add + */ + public void addNewDiagram(Diagram diagram) { + GraphicalViewer newViewer = createNewViewer(getContainer(), diagram); + newViewer.setEditDomain(editDomain); + createItem(getContainer().getItemCount(), newViewer.getControl(), diagram.getName()); + getContainer().setSelection(getContainer().getItemCount()-1); + diagramTabs.add(diagram); + } + + /** + * Creates a new viewer for a new diagram in the container. + * The content of the viewer is the diagram. + * + * @param parent the tab container + * @param diagram the contents of the viewer + * @return the graphical viewer created + */ + protected GraphicalViewer createNewViewer(Composite parent, Diagram diagram) { + ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer(); + viewer.createControl(parent); + viewer.getControl().setBackground(ColorConstants.white); + viewer.setEditPartFactory(new MapViewFactory()); + + ScalableFreeformMapViewRootEditPart rootEditPart = new ScalableFreeformMapViewRootEditPart(this); + viewer.setRootEditPart(rootEditPart); + + viewer.setContents(diagram); + return viewer; + } + + /** + * Returns a copy of a diagram. The Map View shows copies of the original diagrams. + * + * @param d the diagram to be copied + * @return the copied diagram + */ + private Diagram getCopiedDiagram(Diagram d) { + Diagram copyDiagram = UcmmodelFactory.eINSTANCE.createUCMDiagram(); + copyDiagram.setCoreModel(d.getCoreModel()); + copyDiagram.setGridEnabled(new Boolean(d.getGridEnabled().booleanValue())); + copyDiagram.setSnapToGeometryEnabled(new Boolean(d.getSnapToGeometryEnabled().booleanValue())); + copyDiagram.setName(d.getName()); + copyDiagram.getChildren().addAll(EcoreUtil.copyAll(d.getChildren())); + return copyDiagram; + } + + /** + * Creates a new item for the tab container. + * + * @param index the index in the tab container + * @param control the control + * @param text the name of the item to show + * @return the new tab item + */ + private CTabItem createItem(int index, Control control, String text) { + CTabItem item = new CTabItem(getContainer(), SWT.NONE, index); + item.setText(text); + item.setControl(control); + return item; + } + + /** + * Creates a new tab container. Each tab of this container represents a diagram. + * + * @param parent + * @return the new tab container + */ + private CTabFolder createContainer(Composite parent) { + // use SWT.FLAT style so that an extra 1 pixel border is not reserved + // inside the folder + final CTabFolder newContainer = new CTabFolder(parent, SWT.BOTTOM + | SWT.FLAT); + newContainer.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + // int newPageIndex = newContainer.indexOf((CTabItem) e.item); + // pageChange(newPageIndex); + } + }); + return newContainer; + } + + /** + * @see WorkbenchPart#setFocus() + */ + public void setFocus() { + getControl().setFocus(); + } + + public Control getControl() { + return sashForm; + } + + public IPageSite getSite(){ + return site; + } + + public void init(IPageSite site) { + this.site = site; + } + + public void dispose() { + deactivate(); + } + + public void setActionBars(IActionBars actionBars) { + //Do nothing + } + + protected void activate() { + getExecutionInfoManager().eAdapters().add(this); + } + + protected void activateStep(ExecutionStep step) { + if (step != null) + step.eAdapters().add(this); + } + + protected void deactivateStep(ExecutionStep step) { + if (step != null) + step.eAdapters().remove(this); + } + + protected void deactivate() { + getExecutionInfoManager().eAdapters().remove(this); + } + + protected Diagram getActualDiagram() { + int index = getContainer().getSelectionIndex(); + if ( index >= 0 && index < diagramTabs.size()) + return diagramTabs.get(index); + + return null; + } + + /** + * Adds a new step. A new interaction between two responsibilities node. + * The responsibilities are marked and a connection between them is added. + * + * @param step the new step + */ + protected void addNewStep(ExecutionStep step) { + if (step.getSource() != null && step.getTarget() != null) { + steps.add(step); + addNewStep(step.getSource(), step.getTarget(), step.getExecutionContext().getCurrentFamily(), ColorConstants.black, SWT.LINE_DASHDOTDOT, true); + } + } + + /** + * Adds a new step. A new interaction between two responsibilities node. + * The responsibilities are marked and a connection between them is added. + * + * @param step the new step + */ + protected void addNewStep(EvaluationStep step) { + if (step.getSource() != null && step.getTarget() != null) + addNewStep(step.getSource(), step.getTarget(), step.getCurrentFamily(), DependencyToColorFactory.getColor(step.getCondition()), DependencyToLineStyleFactory.getLineStyle(step.getCondition()), false); + } + + /** + * Adds a new step. A new interaction between two responsibilities node. + * The responsibilities are marked and a connection between them is added. + * + * @param step the new step + */ + protected void addNewStep(SimplePathNode source, SimplePathNode target, String currentFamilyID, org.eclipse.swt.graphics.Color lineColor, int lineStyle, boolean updateFamily) { + if (source != null && target != null) { + + //Gets the data for the source Responsibility: diagram and compound visual models + Diagram diagramSource = getUCMDiagram(source.getMap(), getSourceFamilyID(source.getID(), currentFamilyID, false)); + CompoundVisualSimplePathNode cvrSource = getCompoundVisualModelForResponsibilityNode(source, diagramSource); + NodeVisualModel markSource = markResponsibility(cvrSource); + + //If both responsibilities are the same + if (source == target) { + arrageViewerToPosition(cvrSource.getVisualResponsibility().getAbsoluteLocation().getX(), cvrSource.getVisualResponsibility().getAbsoluteLocation().getY()); + return; + } + + //Gets the data for the target Responsibility: diagram and compound visual models + Diagram diagramTarget = getUCMDiagram(target.getMap(), currentFamilyID); + + getSourceFamilyID(target.getID(), currentFamilyID, updateFamily); + + CompoundVisualSimplePathNode cvrTarget = getCompoundVisualModelForResponsibilityNode(target, diagramTarget); + NodeVisualModel markTarget = markResponsibility(cvrTarget); + + if (diagramTarget != getActualDiagram()) + showDiagram(diagramTarget); + + if (diagramSource == diagramTarget) { + ConnectionVisualModel c = doConnection(markSource, markTarget, lineColor, lineStyle); + cvrSource.getConnections().add(c); + } else { + int sourceSize = cvrSource.getOtherMarks().size(); + int targetSize = cvrTarget.getOtherMarks().size(); + + NodeVisualModel jumpSource = getJumpMapVisualModel(cvrSource.getVisualResponsibility(), diagramSource, diagramTarget, cvrTarget.getVisualResponsibility(), true, sourceSize * 25); + diagramSource.getChildren().add(jumpSource); + ConnectionVisualModel c1 = doConnection(cvrSource.getVisualResponsibility(), jumpSource, lineColor, lineStyle); + cvrSource.getConnections().add(c1); + cvrTarget.getOtherMarks().add(jumpSource); + + NodeVisualModel jumpTarget = getJumpMapVisualModel(cvrTarget.getVisualResponsibility(), diagramTarget, diagramSource, cvrSource.getVisualResponsibility(), false, targetSize * 25); + diagramTarget.getChildren().add(jumpTarget); + ConnectionVisualModel c2 = doConnection(jumpTarget, cvrTarget.getVisualResponsibility(), lineColor, lineStyle); + cvrSource.getConnections().add(c2); + cvrSource.getOtherMarks().add(jumpTarget); + } + arrageViewerToPosition(cvrTarget.getVisualResponsibility().getAbsoluteLocation().getX(), cvrTarget.getVisualResponsibility().getAbsoluteLocation().getY()); + } + } + + private String getSourceFamilyID(String nodeID, String familyID, boolean updatedFamily) { + String savedFamilyID = nodesIDToFamilyID.get(nodeID); + if (savedFamilyID == null) { + savedFamilyID = familyID; + nodesIDToFamilyID.put(nodeID, savedFamilyID); + } + if (updatedFamily) + nodesIDToFamilyID.put(nodeID, familyID); + return savedFamilyID; + } + + private void arrageViewerToPosition(int x, int y) { + int index = getActivePage(); + if (index >= 0) { + FigureCanvas control = (FigureCanvas)getItem(index).getControl(); + control.getViewport().setHorizontalLocation(x - control.getHorizontalBar().getThumb() / 2); + control.getViewport().setVerticalLocation(y - control.getVerticalBar().getThumb() / 2); + } + } + + private NodeVisualModel getJumpMapVisualModel(NodeVisualModel sourceVisual, Diagram sourceDiagram, Diagram targetDiagram, NodeVisualModel targetRn, boolean isTo, int paralleloffset) { + VisualDiagramJump visualJump = EditormodelFactory.eINSTANCE.createVisualDiagramJump(); + visualJump.setSourceDiagram(sourceDiagram); + visualJump.setTargetDiagram(targetDiagram); + visualJump.setTargetVisualNode(targetRn); + visualJump.setTo(Boolean.valueOf(isTo)); + //Sets the size of the visual jump + visualJump.setSize(EditormodelFactory.eINSTANCE.createDimension(21,21)); + //Sets the location of the visual jump + Point ps = EditormodelFactory.eINSTANCE.createPoint(); + org.eclipse.draw2d.geometry.Point point = getMinimun(sourceVisual.getParent(), sourceVisual, 40, paralleloffset); + ps.setX(point.x); + ps.setY(point.y); + + visualJump.setLocation(ps); + visualJump.setLineStyle(1); + visualJump.setLineWidth(2); + visualJump.setForegroundColor(Util.getColor(ColorConstants.black)); + return visualJump; + } + + /** + * Does a connection between two visual mark responsibilities. + * + * @param node1 the source + * @param node2 the target + */ + private ConnectionVisualModel doConnection(NodeVisualModel node1, NodeVisualModel node2, org.eclipse.swt.graphics.Color color, int lineStyle) { + ConnectionVisualModel c = EditormodelFactory.eINSTANCE.createConnectionVisualModel(); + c.setForegroundColor(Util.getColor(color)); + c.setLineStyle(lineStyle); + c.setLineWidth(2); + c.setSource(node1); + c.setTarget(node2); + return c; + } + + /** + * Returns a CompoundVisualResponsibility with all the visual nodes corresponding to the responsibility node in the diagram. + * + * @param rn the responsibility node + * @param d the diagram where the node is + * @return the list of visual nodes + */ + private CompoundVisualSimplePathNode getCompoundVisualModelForResponsibilityNode(SimplePathNode node, Diagram d) { + CompoundVisualSimplePathNode models = null; + Map responsibilitesToVisual = diagramsToMapNodes.get(d); + if (responsibilitesToVisual != null) + models = responsibilitesToVisual.get(node); + return models; + } + + /** + * Returns a node visual model corresponding to the an ellipse for the visual responsibility. + * + * @param visual the visual responsibility + * @return the visual mark for the visual responsibility + */ + protected NodeVisualModel getMarkResponsibility(VisualModel visual) { + NodeVisualModel visualMark = EditormodelFactory.eINSTANCE.createNodeVisualModel(); + + //Sets the size of the mark + visualMark.setSize(Util.getDimension(VisualDiagramJumpFigure.defaultsize)); + //Sets the location of the mark + Point p = EditormodelFactory.eINSTANCE.createPoint(); + p.setX(visual.getLocation().getX() + visual.getSize().getWidth()/2 - visualMark.getSize().getWidth() / 2); + p.setY(visual.getLocation().getY() + visual.getSize().getHeight()/2 - visualMark.getSize().getHeight()/2); + visualMark.setLocation(p); + + visualMark.setLineStyle(1); + visualMark.setLineWidth(2); + visualMark.setForegroundColor(Util.getColor(ColorConstants.black)); + return visualMark; + } + + private NodeVisualModel markResponsibility(CompoundVisualSimplePathNode model) { + if (!model.isMarked()) { + NodeVisualModel resp = model.getVisualResponsibility(); + NodeVisualModel mark = getMarkResponsibility(resp); + if (resp.getParent() != null) + resp.getParent().getChildren().add(0, mark); + else + resp.getDiagram().getChildren().add(0, mark); + model.setVisualMark(mark); + return mark; + } else + return model.getVisualMark(); + } + + /** + * Searchs if the given UseCaseMap already exists in this view, if not it will generate a copy from the diagrams of the Flabot File Model. + * + * @param map + * @return the ucm diagram + */ + private Diagram getUCMDiagram(UseCaseMap map, String familyID) { + Diagram d = mapsToDiagrams.get(map.getID() + familyID); + if (d == null) { + UCMDiagram modelDiagram = getUCMDiagramFromModel(map); + d = getCopiedDiagram(modelDiagram); + d.setName(d.getName() + " - " + getFamilyName(familyID, map.getCoreModel())); //$NON-NLS-1$ + addNewDiagram(d); + mapsToDiagrams.put(map.getID() + familyID, d); + diagramsToMapNodes.put(d, getResponsibilitiesToVisualMap(d)); + } else { + if (!diagramTabs.contains(d)) + addNewDiagram(d); + } + return d; + } + + /** + * Returns the UCM diagram corresponding to the given UseCaseMap. + * + * @param map + * @return the ucm diagram + */ + private UCMDiagram getUCMDiagramFromModel(UseCaseMap map) { + List diagrams = getFlabotFileModel().getDiagrams(); + for(Iterator iter=diagrams.iterator(); iter.hasNext();) { + Diagram d = (Diagram) iter.next(); + if (d instanceof UCMDiagram) { + UCMDiagram ucmd = (UCMDiagram) d; + if (ucmd.getMap() == map) + return ucmd; + } + } + return null; + } + + /** + * Returns the gamily name corresponding to the given family ID. + * + * @param familyID the family ID + * @param coreModel the CoreModel + * @return the family name + */ + private String getFamilyName(String familyID, CoreModel coreModel) { + for(Iterator iter=coreModel.getFamilies().iterator(); iter.hasNext();) { + Family family = (Family) iter.next(); + if (family.getID().equals(familyID)) + return family.getName(); + } + return ""; //$NON-NLS-1$ + } + + /** + * Returns a hash table where the key is a responsibility node and the values is a list with all the visual respresentations of that node. + + * @param d the diagram + * @return the hash table + */ + private Map getResponsibilitiesToVisualMap(Diagram d) { + //All the visual nodes in the diagram + List connectionsToRemove = new ArrayList(); + List visualsToRemove = new ArrayList(); + + List visuals = new ArrayList(); + for (Iterator iter=d.getChildren().iterator(); iter.hasNext();) { + NodeVisualModel visual = (NodeVisualModel) iter.next(); + + if (visual instanceof VisualDiagramJump) { + visualsToRemove.add((VisualDiagramJump)visual); + continue; + } + + if (visual.getSemanticModel() instanceof ComponentRole) { + //All the visual nodes in the component + for (Iterator iter2=visual.getChildren().iterator(); iter2.hasNext();) { + NodeVisualModel v = (NodeVisualModel) iter2.next(); + if (v.getSemanticModel() instanceof ResponsibilityNode) { + visuals.add(v); + addConditionConnectionsToRemove(connectionsToRemove, v.getSourceConnections()); + addConditionConnectionsToRemove(connectionsToRemove, v.getTargetConnections()); + } + } + continue; + } + + if (visual.getSemanticModel() instanceof ResponsibilityNode) { + visuals.add(visual); + addConditionConnectionsToRemove(connectionsToRemove, visual.getSourceConnections()); + addConditionConnectionsToRemove(connectionsToRemove, visual.getTargetConnections()); + continue; + } + + if (visual.getSemanticModel() instanceof StubNode) { + visuals.add(visual); + continue; + } + } + + Map semanticToVisual = new HashMap(); + for(int i=0; i=0; i--) { + ConnectionVisualModel c = (ConnectionVisualModel) connections.get(i); + c.setSource(null); + c.setTarget(null); + } + } + + private void addConditionConnectionsToRemove(List removedList, List connections) { + for(Iterator iter=connections.iterator(); iter.hasNext();) { + ConnectionVisualModel c = (ConnectionVisualModel) iter.next(); + if (c.getSemanticModel() instanceof Condition) + removedList.add(c); + } + } + + /** + * Returns the Flabot File Model + * + * @return the flabot file model + */ + public FlabotFileModel getFlabotFileModel() { + return model; + } + + /** + * Shows the diagram d. This diagram must exist in the container, if not current diagram is shown. + * The scroll of the diagram's viewer is moved so the position x,y is centered. + * + * @param d the diagram to show + * @param x the x position to show center + * @param y the y position to show center + */ + public void showDiagram(Diagram d, int x, int y) { + showDiagram(d); + arrageViewerToPosition(x, y); + } + + /** + * Shows the diagram d. This diagram must exist in the container, if not current diagram is shown. + * The scroll of the diagram's viewer is moved so the position x,y is centered. + * + * @param d the diagram to show + * @param x the x position to show center + * @param y the y position to show center + */ + public void showDiagram(Diagram d) { + int index = diagramTabs.indexOf(d); + if (index != -1) { + setActivePage(index); + } + } + + /** + * Sets the currently active page. + * + * @param pageIndex the index of the page to be activated; the index must be valid + */ + protected void setActivePage(int pageIndex) { + Assert.isTrue(pageIndex >= 0 && pageIndex < getPageCount()); + getContainer().setSelection(pageIndex); + } + + /** + * Removes the page with the given index . The + * controls for the page are disposed. + */ + public void removePage(int pageIndex) { + Assert.isTrue(pageIndex >= 0 && pageIndex < getPageCount()); + // dispose item + getItem(pageIndex).dispose(); + } + + + /** + * Returns the index of the currently active page, + * or -1 if there is no active page. + * + * @return the index of the active page, or -1 if there is no active page + */ + protected int getActivePage() { + CTabFolder tabFolder = getContainer(); + if (tabFolder != null && !tabFolder.isDisposed()) + return tabFolder.getSelectionIndex(); + return -1; + } + + /** + * Returns the number of pages in this multi-page editor. + * + * @return the number of pages + */ + protected int getPageCount() { + CTabFolder folder = getContainer(); + // May not have been created yet, or may have been disposed. + if (folder != null && !folder.isDisposed()) + return folder.getItemCount(); + return 0; + } + + /** + * Returns the control for the given page index, or null + * if no control has been set for the page. + * The page index must be valid. + *

+ * + * @param pageIndex the index of the page + * @return the control for the specified page, or null if none has been set + */ + protected Control getControl(int pageIndex) { + return getItem(pageIndex).getControl(); + } + + /** + * Returns the tab item for the given page index (page index is 0-based). + * The page index must be valid. + * + * @param pageIndex the index of the page + * @return the tab item for the given page index + */ + private CTabItem getItem(int pageIndex) { + return getContainer().getItem(pageIndex); + } + + private void backToStep(ExecutionStep step) { + if (steps.size() <= 0) + return; + + ExecutionStep actualStep = steps.get(steps.size() - 1); + while(actualStep != step && steps.size() > 0) { + removeStep(actualStep); + deactivateStep(actualStep); + actualStep = steps.get(steps.size() - 1); + } + } + + /* + * Adapter Implementation + */ + public Notifier getTarget() { + return target; + } + + public void setTarget(Notifier newTarget) { + target = newTarget; + } + + public boolean isAdapterForType(Object type) { + return getExecutionInfoManager() == type; + } + + public void setResponsibilitiesStates(ExecutionStep step) { + Diagram diagram = getUCMDiagram(step.getTarget().getMap(), step.getExecutionContext().getCurrentFamily()); + + Color color = Util.getColor(StateColorFactory.getStateColor(step.getFinalState())); + + CompoundVisualSimplePathNode cvr = getCompoundVisualModelForResponsibilityNode(step.getTarget(), diagram); + if (cvr.isMarked()) + cvr.getVisualMark().setForegroundColor(color.clone()); + cvr.getVisualResponsibility().setForegroundColor(color.clone()); + List list = cvr.getOtherMarks(); + for (Iterator iter=list.iterator(); iter.hasNext();) { + NodeVisualModel nvm = (NodeVisualModel) iter.next(); + nvm.setForegroundColor(color.clone()); + } + } + + private void changeExecutionInfo() { + for(ExecutionStep step: steps) + deactivateStep(step); + + steps.clear(); + diagramTabs.clear(); + mapsToDiagrams.clear(); + diagramsToMapNodes.clear(); + nodesIDToFamilyID.clear(); + for(int i=getContainer().getItemCount() - 1; i>=0; i--) + removePage(i); + } + + private void resetView() { + changeExecutionInfo(); + updateNoSteps(); + } + + private void removeStep(ExecutionStep step) { + steps.remove(step); + if (step.getSource() != null && step.getTarget() != null) + removeStep(step.getSource(), step.getTarget(), step.getExecutionContext().getCurrentFamily()); + } + + private void removeStep(SimplePathNode source, SimplePathNode target, String currentFamilyID) { + if (source != null && target != null) { + //Gets the data for the source Responsibility: diagram and compound visual models + Diagram diagramSource = getUCMDiagram(source.getMap(),getSourceFamilyID(source.getID(), currentFamilyID, false)); + CompoundVisualSimplePathNode cvrSource = getCompoundVisualModelForResponsibilityNode(source, diagramSource); + + //If both responsibilities are the same + if (source == target) { + finishCompoundVisualSimplePathNode(diagramSource, cvrSource); + return; + } + + //Gets the data for the target Responsibility: diagram and compound visual models + Diagram diagramTarget = getUCMDiagram(target.getMap(), currentFamilyID); + CompoundVisualSimplePathNode cvrTarget = getCompoundVisualModelForResponsibilityNode(target, diagramTarget); + + if (!removeConnection(cvrSource, cvrTarget.getVisualMark())) { + removeSourceFromOtherMarks(cvrSource, cvrTarget.getVisualResponsibility()); + removeTargetFromOtherMarks(cvrTarget, cvrSource.getVisualResponsibility()); + } + + finishCompoundVisualSimplePathNode(diagramSource, cvrSource); + finishCompoundVisualSimplePathNode(diagramTarget, cvrTarget); + + //checkRemoveMap(diagramTarget); + } + } + + private void checkRemoveMap(Diagram diagram) { + Map maps = diagramsToMapNodes.get(diagram); + + boolean isEmpty = true; + for(Iterator iter = maps.values().iterator(); iter.hasNext() && isEmpty;) { + CompoundVisualSimplePathNode cv = (CompoundVisualSimplePathNode) iter.next(); + if (cv.isMarked() || cv.getOtherMarks().size() > 0) + isEmpty = false; + } + + if (isEmpty) { + int index = diagramTabs.indexOf(diagram); + if (index >= 0) { + diagramTabs.remove(index); + removePage(index); + } + } + } + + private void removeStep(EvaluationStep step) { + if (step.getSource() != null && step.getTarget() != null) + removeStep(step.getSource(), step.getTarget(), step.getCurrentFamily()); + } + + private void finishCompoundVisualSimplePathNode(Diagram diagram , CompoundVisualSimplePathNode cvr) { + if (cvr.getOtherMarks().size() <= 0 && cvr.getVisualMark() != null && + cvr.getVisualMark().getTargetConnections().size() <= 0 && + cvr.getVisualMark().getSourceConnections().size() <= 0) { + + finishNodeVisualModel(cvr.getVisualMark()); + cvr.getVisualResponsibility().setForegroundColor(Util.getColor(ColorConstants.black)); + cvr.setVisualMark(null); + } + } + + private boolean removeConnection(CompoundVisualSimplePathNode source, NodeVisualModel target) { + List connections = source.getConnections(); + for(int i = connections.size()-1; i >= 0; i--) { + ConnectionVisualModel c = (ConnectionVisualModel) connections.get(i); + if (c.getTarget() == target) { + finishConnectionVisualModel(c); + source.getConnections().remove(i); + return true; + } + } + return false; + } + + private void finishConnectionVisualModel(ConnectionVisualModel c) { + c.setSource(null); + c.setTarget(null); + } + + private void finishNodeVisualModel(NodeVisualModel node) { + VisualModel parent = node.getParent(); + if (parent == null) + node.getDiagram().getChildren().remove(node); + else + parent.getChildren().remove(node); + } + + private void removeSourceFromOtherMarks(CompoundVisualSimplePathNode source, NodeVisualModel target) { + for(Iterator iter=source.getOtherMarks().iterator(); iter.hasNext();) { + VisualDiagramJump jump = (VisualDiagramJump) iter.next(); + if (jump.getTargetVisualNode() == source.getVisualResponsibility()) { + if (jump.getSourceConnections().size() > 0) + finishConnectionVisualModel((ConnectionVisualModel) jump.getSourceConnections().get(0)); + finishNodeVisualModel(jump); + source.getOtherMarks().remove(jump); + break; + } + } + } + + private void removeTargetFromOtherMarks(CompoundVisualSimplePathNode target, NodeVisualModel source) { + for(Iterator iter=target.getOtherMarks().iterator(); iter.hasNext();) { + VisualDiagramJump jump = (VisualDiagramJump) iter.next(); + if (jump.getTargetVisualNode() == target.getVisualResponsibility()) { + if (jump.getTargetConnections().size() > 0) + finishConnectionVisualModel((ConnectionVisualModel) jump.getTargetConnections().get(0)); + finishNodeVisualModel(jump); + target.getOtherMarks().remove(jump); + break; + } + } + } + + public void internalNotifyChanged(Notification notification) { + int featureID = notification.getFeatureID(ExecutionmodelPackage.class); + + if (notification.getNotifier() instanceof ExecutionInfo) { + switch (featureID) { + case ExecutionmodelPackage.EXECUTION_INFO__BACK_TO_STEP: + if (notification.getEventType() == Notification.SET) { + ExecutionStep backStep = (ExecutionStep) notification.getNewValue(); + if (backStep.getEnabled() == ExecutionContext.enabled_Step) + backToStep(backStep); + } + break; + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + if (notification.getEventType() == Notification.ADD) { + ExecutionStep newStep = (ExecutionStep)notification.getNewValue(); + if (newStep.getEnabled() == ExecutionContext.enabled_Step){ + addNewStep(newStep); + activateStep(newStep); + } + } + break; + case ExecutionmodelPackage.EXECUTION_INFO__START_EVALUATING_NODE: + if (notification.getEventType() == Notification.SET) { + EvaluationStep newStep = (EvaluationStep)notification.getNewValue(); + addNewStep(newStep); + } + break; + + case ExecutionmodelPackage.EXECUTION_INFO__FINISH_EVALUATING_NODE: + if (notification.getEventType() == Notification.SET) { + EvaluationStep newStep = (EvaluationStep)notification.getOldValue(); + removeStep(newStep); + } + break; + + case ExecutionmodelPackage.EXECUTION_INFO__RESET: + if (notification.getEventType() == Notification.SET) { + resetView(); + } + break; + + } + return; + } + + if (notification.getNotifier() instanceof ExecutionInfoManager) { + if (notification.getEventType() == Notification.SET && + featureID == ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION) + changeExecutionInfo(); + return; + } + + if (notification.getNotifier() instanceof ExecutionStep) { + if (notification.getEventType() == Notification.SET && + featureID == ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE) { + ExecutionStep step = (ExecutionStep)notification.getNotifier(); + setResponsibilitiesStates(step); + } + return; + } + } + + public void notifyChanged(final Notification notification) { + Workbench.getInstance().getDisplay().syncExec( + new Runnable() { + public void run(){ + internalNotifyChanged(notification); + } + } + ); + } + + + protected Control createControlStatesBar(Composite parent) { + ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer(); + viewer.createControl(parent); + viewer.getControl().setBackground(ColorConstants.white); + Composite composite = (Composite)viewer.getControl(); + composite.setBackground(ColorConstants.white); + + GridLayout layout = new GridLayout(6, false); + layout.marginWidth = 0; + layout.marginHeight = 0; + layout.verticalSpacing = 5; + layout.horizontalSpacing = 5; + composite.setLayout(layout); + composite.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.HORIZONTAL_ALIGN_CENTER)); + + Composite c = new Composite(composite, SWT.BORDER | SWT.BEGINNING); + + layout = new GridLayout(3, false); + layout.marginWidth = 0; + layout.marginHeight = 0; + c.setLayout(layout); + + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + gd.horizontalSpan = 6; + gd.heightHint=25; + c.setLayoutData(gd); + + Button button = new Button(c, SWT.ARROW); + button.setAlignment(SWT.UP); + gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); + gd.widthHint = 25; + gd.heightHint = 25; + button.setLayoutData(gd); + button.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + updateDependencyBarState(true); + + Button b = (Button)e.getSource(); + if (isBarUp) + b.setAlignment(SWT.DOWN); + else + b.setAlignment(SWT.UP); + } + }); + + Label label = new Label(c, SWT.NONE); + label.setText(Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.states")); //$NON-NLS-1$ + gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER); + label.setLayoutData(gd); + + addResponsibilityFigure(composite, ExecutionState.FAULTY_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faulty")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.EXECUTED_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.executed")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.NOT_EXECUTED_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.notExecuted")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.FAULTY_PREVIOUS_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faultyPrevious")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.FAULTY_NEXT_LEVELS_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faultyNextLevel")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.FAULTY_PRECONDITION_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faultyPrecondition")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.FAULTY_CONSTRAIN_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faultyConstraint")); //$NON-NLS-1$ + + addResponsibilityFigure(composite, ExecutionState.FAULTY_CONSTRAINT_START_LITERAL); + addLabel(composite, Messages.getString("org.isistan.flabot.edit.mapview.MapViewPage.faultyStartConstraint")); //$NON-NLS-1$ + + return composite; + } + + private void addLabel(Composite composite, String name) { + Label label = new Label(composite, SWT.NONE); + label.setText(name); + GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | + GridData.HORIZONTAL_ALIGN_BEGINNING); + gd.widthHint = 130; + label.setLayoutData(gd); + label.setBackground(ColorConstants.white); + } + + private void addResponsibilityFigure(Composite composite, ExecutionState state) { + ResponsibilityNodeFigure f = new ResponsibilityNodeFigure(null, StateColorFactory.getStateColor(state).getRGB()); + Canvas c = new Canvas(composite, SWT.NULL); + c.setBackground(ColorConstants.white); + GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END); + gd.widthHint = 15; + gd.heightHint = 15; + c.setLayoutData(gd); + LightweightSystem l = new LightweightSystem(c); + l.setContents(f); + } + + + class CompoundVisualSimplePathNode { + private NodeVisualModel visualSimplePathNode; + + private NodeVisualModel visualMark; + + private List otherMarks = new ArrayList(); + + private List connections = new ArrayList(); + + public void setVisualSimplePathNode(NodeVisualModel visualResponsibility) { + this.visualSimplePathNode = visualResponsibility; + } + + public NodeVisualModel getVisualResponsibility() { + return visualSimplePathNode; + } + + public void setVisualMark(NodeVisualModel visualMark) { + this.visualMark = visualMark; + } + + public NodeVisualModel getVisualMark() { + return visualMark; + } + + public List getOtherMarks() { + return otherMarks; + } + + public boolean isMarked() { + return visualMark != null; + } + + public List getConnections() { + return connections; + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.java new file mode 100755 index 0000000..1991e52 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/NoExecutionFlabotCommandStack.java @@ -0,0 +1,36 @@ +/** + * $Id: NoExecutionFlabotCommandStack.java,v 1.1 2006/03/29 19:27:28 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview; + +import org.eclipse.gef.commands.Command; +import org.isistan.flabot.edit.editor.FlabotCommandStack; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; + +/** + * @author $Author: franco $ + * + */ +public class NoExecutionFlabotCommandStack extends FlabotCommandStack { + + public NoExecutionFlabotCommandStack(FlabotMultiPageEditor multipageEditor) { + super(multipageEditor); + } + + public void execute(Command command) { + //Do nothing + } + + public void redo() { + //Do nothing + } + + public void undo() { + //Do nothing + } + + public void appendToLastAndExecute(Command command) { + //Do nothing + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/EllipseEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/EllipseEditPart.java new file mode 100755 index 0000000..8921c56 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/EllipseEditPart.java @@ -0,0 +1,51 @@ +/** + * $Id: EllipseEditPart.java,v 1.4 2006/03/29 20:21:58 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.draw2d.ConnectionAnchor; +import org.eclipse.draw2d.EllipseAnchor; +import org.eclipse.draw2d.IFigure; +import org.eclipse.swt.widgets.Display; +import org.isistan.flabot.edit.editor.editparts.ConnectedEditPart; +import org.isistan.flabot.edit.editormodel.Util; +import org.isistan.flabot.edit.editormodel.VisualModel; +import org.isistan.flabot.edit.mapview.figure.EllipseFigure; + +/** + * Respresents the connections between the ellipses used in the Map View. + * + * @author $Author: franco $ + * + */ +public class EllipseEditPart extends ConnectedEditPart { + + @Override + protected void createEditPolicies() { + //Do nothing + } + + @Override + protected IFigure createFigure() { + EllipseFigure figure = new EllipseFigure(); + VisualModel visual = (VisualModel) getModel(); + figure.setLineStyle(visual.getLineStyle()); + figure.setLineWidth(visual.getLineWidth()); + figure.setBackgroundColor(Util.getSWRColor(Display.getCurrent(), visual.getBackgroundColor())); + figure.setForegroundColor(Util.getSWRColor(Display.getCurrent(), visual.getForegroundColor())); + return figure; + } + + /** + * Returns the connection anchor of an ellipse + * + * @return the connection anchor of an ellipse + */ + @Override + protected ConnectionAnchor getConnectionAnchor() { + if (anchor == null) + anchor = new EllipseAnchor(getFigure()); + return anchor; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.java new file mode 100755 index 0000000..79242bf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewComponentEditPart.java @@ -0,0 +1,21 @@ +/** + * $Id: MapViewComponentEditPart.java,v 1.1 2006/01/31 23:30:38 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.gef.EditPolicy; +import org.isistan.flabot.edit.ucmeditor.editparts.ComponentEditPart; + +/** + * @author usuario + * + */ +public class MapViewComponentEditPart extends ComponentEditPart { + + @Override + protected void createEditPolicies() { + super.createEditPolicies(); + installEditPolicy(EditPolicy.LAYOUT_ROLE, null); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.java new file mode 100755 index 0000000..1ffe242 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewDiagramEditPart.java @@ -0,0 +1,20 @@ +/** + * $Id: MapViewDiagramEditPart.java,v 1.2 2006/02/03 21:03:06 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.gef.EditPolicy; +import org.isistan.flabot.edit.ucmeditor.editparts.UCMDiagramEditPart; + +/** + * @author $Author: dacostae $ + * + */ +public class MapViewDiagramEditPart extends UCMDiagramEditPart { + + @Override + protected void createEditPolicies() { + installEditPolicy(EditPolicy.LAYOUT_ROLE, null); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewFactory.java new file mode 100755 index 0000000..bc3c835 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewFactory.java @@ -0,0 +1,94 @@ +/** + * $Id: MapViewFactory.java,v 1.8 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.ForkNode; +import org.isistan.flabot.coremodel.JoinNode; +import org.isistan.flabot.coremodel.Note; +import org.isistan.flabot.coremodel.Path; +import org.isistan.flabot.coremodel.PathNode; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.edit.editor.editparts.NoteConnectionEditPart; +import org.isistan.flabot.edit.editor.editparts.NoteEditPart; +import org.isistan.flabot.edit.editormodel.ConnectionVisualModel; +import org.isistan.flabot.edit.editormodel.NodeVisualModel; +import org.isistan.flabot.edit.editormodel.VisualDiagramJump; +import org.isistan.flabot.edit.editormodel.VisualModel; +import org.isistan.flabot.edit.ucmeditor.editparts.ConditionConnectionEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.ForkNodeEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.JoinNodeEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.PathNodeEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.PathSegmentEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.ResponsibilityNodeEditPart; +import org.isistan.flabot.edit.ucmeditor.editparts.StubNodeEditPart; +import org.isistan.flabot.edit.ucmmodel.UCMDiagram; + +/** + * @author $Author: franco $ + * + */ +public class MapViewFactory implements EditPartFactory { + + public EditPart createEditPart(EditPart context, Object model) { + // get EditPart for model element + EditPart part = getPartForElement(model); + // store model element in EditPart + part.setModel(model); + return part; + } + + private EditPart getPartForElement(Object model) { + if (model instanceof UCMDiagram) + return new MapViewDiagramEditPart(); + + + if (model instanceof VisualDiagramJump) + return new MapViewVisualJumpEditPart(); + + if (model instanceof ConnectionVisualModel) { + EObject semanticModel = ((VisualModel)model).getSemanticModel(); + if (semanticModel instanceof Path) + return new PathSegmentEditPart(); + if (semanticModel instanceof Note) + return new NoteConnectionEditPart(); + + return new ConditionConnectionEditPart(); + } + + if (model instanceof NodeVisualModel) { + // since many semantic models may have the same visual model + // but different editparts and figures, further discrimination is + // required to create the right EditPart + EObject semanticModel = ((VisualModel)model).getSemanticModel(); + if (semanticModel instanceof ComponentRole) + return new MapViewComponentEditPart(); + if (semanticModel instanceof ForkNode) + return new ForkNodeEditPart(); + if (semanticModel instanceof JoinNode) + return new JoinNodeEditPart(); + if (semanticModel instanceof ResponsibilityNode) + return new ResponsibilityNodeEditPart(); + if (semanticModel instanceof StubNode) + return new StubNodeEditPart(); + if (semanticModel instanceof PathNode) + return new PathNodeEditPart(); + if (semanticModel instanceof Note) + return new NoteEditPart(); + + return new EllipseEditPart(); + } + + + + throw new RuntimeException( + "Can't create part for model element:" //$NON-NLS-1$ + + ((model != null) ? model.getClass().getName() : "null")); //$NON-NLS-1$ + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.java new file mode 100755 index 0000000..f70f60d --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/MapViewVisualJumpEditPart.java @@ -0,0 +1,30 @@ +/** + * $Id: MapViewVisualJumpEditPart.java,v 1.1 2006/03/01 22:26:40 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.gef.Request; +import org.eclipse.gef.RequestConstants; +import org.isistan.flabot.edit.editormodel.NodeVisualModel; +import org.isistan.flabot.edit.mapview.MapViewPage; +import org.isistan.flabot.edit.ucmeditor.editparts.VisualDiagramJumpEditPart; + +/** + * @author franco + * + */ +public class MapViewVisualJumpEditPart extends VisualDiagramJumpEditPart { + + @Override + public void performRequest(Request req) { + if (req.getType() == RequestConstants.REQ_OPEN) { + // if the component is double-clicked, open its respective map + ScalableFreeformMapViewRootEditPart root = (ScalableFreeformMapViewRootEditPart) getRoot(); + MapViewPage page = root.getMapViewPage(); + NodeVisualModel targetNode = getCastedModel().getTargetVisualNode(); + page.showDiagram(getCastedModel().getTargetDiagram(), targetNode.getAbsoluteLocation().getX(), targetNode.getAbsoluteLocation().getY()); + } else + super.performRequest(req); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.java new file mode 100755 index 0000000..34de252 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/ScalableFreeformMapViewRootEditPart.java @@ -0,0 +1,25 @@ +/** + * $Id: ScalableFreeformMapViewRootEditPart.java,v 1.1 2006/01/31 23:30:38 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import org.eclipse.gef.editparts.ScalableFreeformRootEditPart; +import org.isistan.flabot.edit.mapview.MapViewPage; + +/** + * @author $Author: franco $ + * + */ +public class ScalableFreeformMapViewRootEditPart extends ScalableFreeformRootEditPart{ + + MapViewPage page; + + public ScalableFreeformMapViewRootEditPart(MapViewPage page) { + this.page = page; + } + + public MapViewPage getMapViewPage() { + return page; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/StateColorFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/StateColorFactory.java new file mode 100755 index 0000000..e0af8e2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/editparts/StateColorFactory.java @@ -0,0 +1,49 @@ +/** + * $Id: StateColorFactory.java,v 1.4 2006/03/28 21:59:48 apersson Exp $ + * $Author: apersson $ + */ +package org.isistan.flabot.edit.mapview.editparts; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.swt.graphics.Color; +import org.isistan.flabot.engine.executionstate.ExecutionState; + +/** + * Contains the color that a responsibility nodes can have according to its state during the execution of the Engine + * + * @author $Author: apersson $ + */ +public class StateColorFactory { + + private static final Map stateColorsMapping = new HashMap(); + + static { + stateColorsMapping.put(ExecutionState.NO_ACTION_STATE_LITERAL, ColorConstants.black); + stateColorsMapping.put(ExecutionState.FAULTY_LITERAL, ColorConstants.red); + stateColorsMapping.put(ExecutionState.EXECUTED_LITERAL, ColorConstants.green); + stateColorsMapping.put(ExecutionState.NOT_EXECUTED_LITERAL, ColorConstants.cyan); + stateColorsMapping.put(ExecutionState.FAULTY_CURRENT_LITERAL, ColorConstants.white); + stateColorsMapping.put(ExecutionState.FAULTY_PREVIOUS_LITERAL, ColorConstants.orange); + stateColorsMapping.put(ExecutionState.FAULTY_NEXT_LEVELS_LITERAL, ColorConstants.yellow); + stateColorsMapping.put(ExecutionState.FAULTY_PRECONDITION_LITERAL, ColorConstants.blue); + stateColorsMapping.put(ExecutionState.FAULTY_CONSTRAIN_LITERAL, ColorConstants.gray); + stateColorsMapping.put(ExecutionState.FAULTY_CONSTRAINT_START_LITERAL, ColorConstants.lightGray); + stateColorsMapping.put(ExecutionState.MULTIPLE_ERRORS_LITERAL, ColorConstants.darkBlue); + } + + /** + * Returns the color used to represent the current state of a responsibility + * + * @param stateCode the code of teh state (specified in isistan.model.Component) + * @return color the color used to represent the current state + */ + public static Color getStateColor(ExecutionState stateCode){ + Color color = (Color)StateColorFactory.stateColorsMapping.get(stateCode); + if (color == null) + color = ColorConstants.black; + return color; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/figure/EllipseFigure.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/figure/EllipseFigure.java new file mode 100755 index 0000000..b217f41 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/mapview/figure/EllipseFigure.java @@ -0,0 +1,44 @@ +/** + * $Id: EllipseFigure.java,v 1.1 2006/03/29 20:21:58 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.mapview.figure; + +import org.eclipse.draw2d.Ellipse; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.Label; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.widgets.Display; + +/** + * @author $Author: franco $ + * + */ +public class EllipseFigure extends Ellipse { + + private static final Font defaultFont = new Font(Display.getCurrent(), "Verdana", 9 , SWT.BOLD); //$NON-NLS-1$ + + private Label label = new Label(); + + public EllipseFigure() { + label.setFont(defaultFont); + } + + public void setText(String text) { + label.setText(text); + } + + /** + * Outlines the ellipse. + * @see org.eclipse.draw2d.Shape#outlineShape(org.eclipse.draw2d.Graphics) + */ + @Override + protected void outlineShape(Graphics graphics) { + graphics.drawOval(getBounds().x + 1, getBounds().y + 1, getBounds().width - 2, getBounds().height - 2); + Font oldfont = graphics.getFont(); + graphics.setFont(defaultFont); + graphics.drawString(label.getText(), (getBounds().x + getBounds().width / 2) - (label.getTextBounds().width / 2), (getBounds().y + getBounds().height / 2) - (label.getTextBounds().height / 2)); + graphics.setFont(oldfont); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceView.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceView.java new file mode 100755 index 0000000..974faf0 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceView.java @@ -0,0 +1,101 @@ +/** + * $Id: SequenceView.java,v 1.9 2006/03/22 03:28:55 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.sequenceview; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.engine.InterfacePluginEngine; +import org.isistan.flabot.engine.messages.Messages; + +/** + * The Sequence View shows the route followed by the Fault Locator Engine. + * The arrows represents the interactions between two components (roles) done by a responsibility. + * + * @author $Author: franco $ + * + */ +public class SequenceView extends PageBookView { + + FlabotMultiPageEditor actualEditor; + + /** + * Destroys a page in the pagebook for a particular part. + */ + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec rec) { + SequenceViewPage page = (SequenceViewPage) rec.page; + page.dispose(); + rec.dispose(); + } + + /** + * Creates and returns a new SequenceViewPage for the particular FlabotFileModel. + * This page will be made visible whenever the FlabotMultiPageEditor corresponding to this model is active. + * + * @return the new SequenceViewPage + */ + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + SequenceViewPage page = new SequenceViewPage(InterfacePluginEngine.getExecutionInfoManager(actualEditor)); + initPage(page); + page.createControl(getPageBook()); + return new PageRec(part, page); + } + + /** + * The Sequence View is available only when a FlabotMultiPageEditor is open. + * In the case that the actual FlabotFileModel is not the equal to the selected FlabotMultiPageEditor, the SequenceView must be updated. + * + * @return true if the Sequence View must be updated + */ + @Override + protected boolean isImportant(IWorkbenchPart part) { + if (part instanceof FlabotMultiPageEditor) { + FlabotMultiPageEditor editor = (FlabotMultiPageEditor) part; + if (editor != actualEditor) { + actualEditor = editor; + return true; + } + } + return false; + } + + /** + * Returns the active, important workbench part for this view. + * + * @return the active important part, or null if none + */ + @Override + protected IWorkbenchPart getBootstrapPart() { + IWorkbenchPage page = getSite().getPage(); + if (page != null) { + //bootstrapSelection = page.getSelection(); + return page.getActivePart(); + } + return null; + } + + /** + * Creates and returns the default page for this view. + * When the Sequence View is not available. + * + * @return the default page + */ + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage page = new MessagePage(); + initPage(page); + page.createControl(book); + page.setMessage(Messages.getString("org.isistan.flabot.engine.SequenceView.sequenceViewNotAvailable")); //$NON-NLS-1$ + page.getControl().setBackground(ColorConstants.white); + return page; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceViewPage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceViewPage.java new file mode 100755 index 0000000..cbba77d --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/SequenceViewPage.java @@ -0,0 +1,249 @@ +/** + * $Id: SequenceViewPage.java,v 1.13 2006/03/29 20:21:58 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.sequenceview; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.gef.GraphicalViewer; +import org.eclipse.gef.editparts.FreeformGraphicalRootEditPart; +import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.events.ControlEvent; +import org.eclipse.swt.events.ControlListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.part.IPageBookViewPage; +import org.eclipse.ui.part.IPageSite; +import org.isistan.flabot.edit.sequenceview.editparts.SequenceViewFactory; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; + +/** + * The SequenceViewPage represents a sequence for an opened FlabotFileModel. + * It shows the route followed by the Fault Locator Engine. + * + * @author $Author: franco $ + * + */ +public class SequenceViewPage implements IPageBookViewPage { + + private ExecutionInfoManager manager; + + private GraphicalViewer viewer; + + private IPageSite site; + + private boolean isBarUp = false; + + SashForm sashForm; + + /** + * Instantiates the SequenceViewPage with and an ExecutionInfoManager. + */ + public SequenceViewPage(ExecutionInfoManager manager) { + this.manager = manager; + } + + protected GraphicalViewer getViewer() { + if (viewer == null) + viewer = new ScrollingGraphicalViewer(); + return viewer; + } + + /** + * Creates the SWT control for this page under the given parent + * control. Creates a viewer for the Sequence View, with a SequenceViewFactory. + */ + public void createControl(Composite parent) { + sashForm = new SashForm(parent, SWT.VERTICAL); + sashForm.setBackground(ColorConstants.white); + + + getViewer().createControl(sashForm); + getViewer().getControl().setBackground(ColorConstants.white); + + getViewer().setEditPartFactory(new SequenceViewFactory()); + + FreeformGraphicalRootEditPart rootEditPart = new FreeformGraphicalRootEditPart(); + getViewer().setRootEditPart(rootEditPart); + getViewer().setContents(manager); + + createControlDependeciesBar(sashForm); + + sashForm.addControlListener( new ControlListener() { + /** + * Sent when the location (x, y) of a control changes relative + * to its parent (or relative to the display, for Shells). + * + * @param e an event containing information about the move + */ + public void controlMoved(ControlEvent e) { + updateDependencyBarState(false); + } + + /** + * Sent when the size (width, height) of a control changes. + * + * @param e an event containing information about the resize + */ + public void controlResized(ControlEvent e) { + updateDependencyBarState(false); + } + + }); + } + + protected Control createControlDependeciesBar(Composite parent) { + ScrollingGraphicalViewer viewer = new ScrollingGraphicalViewer(); + viewer.createControl(parent); + viewer.getControl().setBackground(ColorConstants.red); + + Composite composite = (Composite)viewer.getControl(); + composite.setBackground(ColorConstants.white); + + GridLayout layout = new GridLayout(8, false); + layout.horizontalSpacing = 5; + layout.verticalSpacing = 0; + layout.marginWidth = 0; + layout.marginHeight = 0; + composite.setLayout(layout); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + + + Composite c = new Composite(composite, SWT.BORDER | SWT.BEGINNING); + + layout = new GridLayout(2, false); + layout.marginWidth = 0; + layout.marginHeight = 0; + c.setLayout(layout); + + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + gd.horizontalSpan = 8; + gd.heightHint=25; + c.setLayoutData(gd); + + Button button = new Button(c, SWT.ARROW); + button.setAlignment(SWT.UP); + gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); + gd.widthHint = 25; + gd.heightHint = 25; + button.setLayoutData(gd); + button.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + updateDependencyBarState(true); + + Button b = (Button)e.getSource(); + if (isBarUp) + b.setAlignment(SWT.DOWN); + else + b.setAlignment(SWT.UP); + } + }); + + Label label = new Label(c, SWT.NONE); + label.setText(Messages.getString("org.isistan.flabot.edit.sequenceview.SequenceViewPage.dependencies")); //$NON-NLS-1$ + gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER); + label.setLayoutData(gd); + + addIconImage(composite, ImageDescriptor.createFromFile(EnginePlugin.class, "icons/arrow_previous.gif").createImage()); //$NON-NLS-1$ + addLabel(composite, Messages.getString("org.isistan.flabot.edit.sequenceview.SequenceViewPage.previous")); //$NON-NLS-1$ + + addIconImage(composite, ImageDescriptor.createFromFile(EnginePlugin.class, "icons/arrow_constraint.gif").createImage()); //$NON-NLS-1$ + addLabel(composite, Messages.getString("org.isistan.flabot.edit.sequenceview.SequenceViewPage.constraint")); //$NON-NLS-1$ + + addIconImage(composite, ImageDescriptor.createFromFile(EnginePlugin.class, "icons/arrow_mapping.gif").createImage()); //$NON-NLS-1$ + addLabel(composite, Messages.getString("org.isistan.flabot.edit.sequenceview.SequenceViewPage.mapping")); //$NON-NLS-1$ + + addIconImage(composite, ImageDescriptor.createFromFile(EnginePlugin.class, "icons/arrow_precondition.gif").createImage()); //$NON-NLS-1$ + addLabel(composite, Messages.getString("org.isistan.flabot.edit.sequenceview.SequenceViewPage.precondition")); //$NON-NLS-1$ + + return composite; + } + + private int calculatePorcentaje(int nro) { + int height = sashForm.getClientArea().height; + if (height == 0) height = 100; + return (100*nro) / height; + } + + private void addLabel(Composite composite, String name) { + Label label = new Label(composite, SWT.NONE); + label.setText(name); + GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | + GridData.HORIZONTAL_ALIGN_BEGINNING); + gd.widthHint = 70; + label.setLayoutData(gd); + label.setBackground(ColorConstants.white); + } + + private void addIconImage(Composite composite, Image image) { + Label label = new Label(composite, SWT.NONE); + GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_END); + label.setLayoutData(gd); + label.setBackground(ColorConstants.white); + label.setImage(image); + } + + private void updateDependencyBarState(boolean changeState) { + if (changeState) + isBarUp = !isBarUp; + + int p = 0; + if (isBarUp) + p = calculatePorcentaje(50); + else + p = calculatePorcentaje(30); + + if (p<0 || p>100) p =0; + sashForm.setWeights(new int[]{100-p,p}); + } + + /** + * Disposes of this page. + */ + public void dispose() { + //Do nothing + } + + /** + * Returns the SWT control for this page. + * + * @return the SWT control for this page, or null if this + * page does not have a control + */ + public Control getControl() { + return sashForm; + } + + public void setActionBars(IActionBars actionBars) { + //Do nothing + } + + /** + * Asks this page to take focus within its pagebook view. + */ + public void setFocus() { + sashForm.setFocus(); + } + + public IPageSite getSite(){ + return site; + } + + public void init(IPageSite site) { + this.site = site; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart.java new file mode 100755 index 0000000..6c77cab --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewEditPart.java @@ -0,0 +1,679 @@ +/** + * $Id: SequenceViewEditPart.java,v 1.1 2006/03/29 20:21:58 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.sequenceview.editparts; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + +import org.eclipse.draw2d.IFigure; +import org.eclipse.draw2d.MarginBorder; +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.gef.EditPolicy; +import org.eclipse.gef.editparts.AbstractGraphicalEditPart; +import org.eclipse.gef.editpolicies.RootComponentEditPolicy; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.ui.internal.Workbench; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.coremodel.UseCaseMap; +import org.isistan.flabot.edit.sequenceview.figures.SequenceDiagram; +import org.isistan.flabot.edit.ucmeditor.editparts.DependencyToColorFactory; +import org.isistan.flabot.edit.ucmeditor.editparts.DependencyToLineStyleFactory; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * This edit part is used by the Sequence View. It receives the notifications from the Execution Info Manager and updates this view. + * The notification includes the new steps done by the Fault Locator Engine. + * + * @author $Author: franco $ + * + */ +public class SequenceViewEditPart extends AbstractGraphicalEditPart + implements Adapter { + + private Map nodeToHeader = new HashMap(); + + private List headerList = new ArrayList(); + + private List footerList = new ArrayList(); + + private List stepsList = new ArrayList(); + + private List steps = new ArrayList(); + + //Buffers + private StringBuffer headerBuffer = new StringBuffer(); + + private StringBuffer bodyBuffer = new StringBuffer(); + + private StringBuffer footerBuffer = new StringBuffer(); + + ExecutionInfoManager getCastedModel() { + return (ExecutionInfoManager)getModel(); + } + + /** + * Upon activation, attach to the model element as a property change listener. + */ + @Override + public void activate() { + if (!isActive()) { + super.activate(); + getCastedModel().eAdapters().add(this); + } + } + + @Override + protected IFigure createFigure() { + SequenceDiagram f = new SequenceDiagram(); + f.setBorder(new MarginBorder(3)); + return f; + } + + /** + * Upon deactivation, detach from the model element as a property change listener. + */ + @Override + public void deactivate() { + if (isActive()) { + super.deactivate(); + getCastedModel().eAdapters().remove(this); + } + } + + @Override + protected void createEditPolicies() { + installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy()); + } + + private String getMapKey(SimplePathNode pathNode, ComponentRole instanceRole) { + String key = ""; //$NON-NLS-1$ + if (pathNode instanceof ResponsibilityNode) { + ResponsibilityNode responsibility = (ResponsibilityNode) pathNode; + if (responsibility.getRole() != null) { + key = responsibility.getRole().getID(); + if (instanceRole!=null && !responsibility.getRole().equals(instanceRole)) { + key = instanceRole.getID()+responsibility.getRole().getID(); + } + return key; + } + } + return pathNode.getID(); + } + + /** + * Returns the correct name for the given SimplePathNode + * + * @param pathNode + * @param role + * @return the correct name for the given SimplePathNode + */ + private String getCorrectName(SimplePathNode pathNode, ComponentRole instanceRole) { + if (pathNode instanceof ResponsibilityNode) { + ResponsibilityNode responsibility = (ResponsibilityNode) pathNode; + if (responsibility.getRole() != null){ + String roleName = responsibility.getRole().getName() + "##:"+ responsibility.getRole().getComponent().getName(); //$NON-NLS-1$ + if (instanceRole!=null && !responsibility.getRole().equals(instanceRole)) { + roleName = instanceRole.getFullName() + "##InstanceOf " + responsibility.getRole().getFullName(); //$NON-NLS-1$ + } + return roleName; + } + } + return pathNode.getName(); + } + + /** + * Returns the correct SequenceViewHeader for the given SimplePathNode + * + * @param pathNode + * @return the correct SequenceViewHeader for the given SimplePathNode + */ + private SequenceViewHeader getHeader(SimplePathNode pathNode, ComponentRole instanceRole) { + String key = getMapKey(pathNode, instanceRole); + if (nodeToHeader.containsKey(key)) + return nodeToHeader.get(key); + + return null; + } + + /** + * Adds a new header for the given SimplePathNode, it can be a Role Component/Stub/Fork/Join + * It also updates the footer list if the UCM diagram chaged. + * + * @param pathNode the simple path node + * @param role + * @return the new SequenceViewHeader + */ + private SequenceViewHeader addNewHeader(SimplePathNode pathNode, ComponentRole instanceRole) { + SequenceViewHeader svc = new SequenceViewHeader(nodeToHeader.size() + 1, 0, getCorrectName(pathNode, instanceRole)); + //Object key = getMapKey(pathNode); + String key = getMapKey(pathNode, instanceRole); + nodeToHeader.put(key, svc); + headerList.add(svc); + headerBuffer.append(getHeaderLine(svc)); + + //Updates the division between different use case maps + UseCaseMap actualMap = pathNode.getMap(); + UseCaseMap lastMap = getLastMap(); + if (lastMap == null || lastMap != actualMap) { + SequenceViewFooter svf = new SequenceViewFooter(svc.getNumber(), svc.getNumber(), actualMap); + footerList.add(svf); + footerBuffer.append(getFooterLine(svf)); + } else { + int lastcomponent = getLastComponent(); + if (footerList.size() > 0) + footerList.remove(footerList.size() - 1); + + SequenceViewFooter svf = new SequenceViewFooter(lastcomponent, svc.getNumber(), actualMap); + footerList.add(svf); + updateFooterBuffer(); + } + return svc; + } + + /** + * Returns the last Use Case Map added to the footer + * + * @return the last Use Case Map added to the footer + */ + private UseCaseMap getLastMap() { + if (footerList.size() > 0) + return footerList.get(footerList.size() - 1).getUseCaseMap(); + return null; + } + + /** + * Returns the number of the last component added to the footer + * + * @return the number of the last component added to the footer + */ + private int getLastComponent() { + if (footerList.size() > 0) + return footerList.get(footerList.size() - 1).getSource(); + return 0; + } + + /** + * Creates a string header line for a SequenceViewHeader + * + * @param svf the SequenceViewHeader + * @return the string header line + */ + private String getHeaderLine(SequenceViewHeader svh) { + return "_" + svh.getName() + "_|"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Creates a string footer line for a SequenceViewFooter + * + * @param svf the SequenceViewFooter + * @return the string footer line + */ + private String getFooterLine(SequenceViewFooter svf) { + return svf.getSource() + "==" + svf.getTarget() + ":" + svf.getName()+ "\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Creates a string body line for a step + * + * @param source the source component number + * @param target the target component number + * @param dependecyType the dependency type (for color and arrow type) + * @param name the name of the responsibility to showw in the arrow * + * @return a string body line + */ + private String getBodyLine(int source, int target, String dependecyType, String name) { + Color color = DependencyToColorFactory.getColor(dependecyType); + String arrowType = DependecyToArrowFactory.getArrow( + Integer.valueOf(DependencyToLineStyleFactory.getLineStyle(dependecyType)) + ); + return source + arrowType + target + ":" + source + "," + target + ":" + name + "_" + color.getRed() + ":" + color.getGreen() + ":" + color.getBlue() + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ + } + + /** + * Changes the current ExecutionInfo. + * All the lists and the figure are resetted. + */ + public void changeExecutionInfo() { + steps.clear(); + nodeToHeader.clear(); + headerList.clear(); + stepsList.clear(); + footerList.clear(); + headerBuffer.delete(0, headerBuffer.capacity()); + bodyBuffer.delete(0, bodyBuffer.capacity()); + footerBuffer.delete(0, footerBuffer.capacity()); + + updateStringBuffers(); + } + + /** + * Adds a new step to the Sequence View + * - Adds the step to the steps list. + * - Obtains the source and target SequenceViewHeader, if they do not exit, they are created. + * - Creates a new body line and adds it to the steps lines list and body buffer. + * - Updates the figure. + * + * @param step the new step to add + */ + private void addNewStep(ExecutionStep step) { + if (step.getSource() != null && step.getTarget() != null) { + steps.add(step); + + //steps start at 1 + SequenceViewHeader source = getSourceResponsibilityNumber(step.getSource(), Integer.parseInt(step.getExecutionContext().getCurrentStep()) - 1, step.getInstanceComponentToSource()); + if (source == null) + source = addNewHeader(step.getSource(), step.getInstanceComponentToSource()); + source.incReferences(); + + SequenceViewHeader target = getTargetResponsibilityNumber(step.getTarget(), step.getInstanceComponentToTarget()); + if (target == null) + target = addNewHeader(step.getTarget(), step.getInstanceComponentToTarget()); + target.incReferences(); + + //String line = getBodyLine(source.getNumber(), target.getNumber(), step.getDependency().getType(), step.getTarget().getName()); + String line = getBodyLine(target.getNumber(), source.getNumber(), step.getDependency().getType(), step.getSource().getName()); + stepsList.add(line); + bodyBuffer.append(line); + updateFigure(); + } + } + + /** + * Updates the figure with the content of the string buffers (header, body and footer) + * + */ + private void updateFigure() { + getCastedFigure().setText(headerBuffer.toString() + "\n" + bodyBuffer.toString() + footerBuffer); //$NON-NLS-1$ + } + + /** + * Return the casted SequenceDiagram figure. + * + * @return the SequenceDiagram figure + */ + private SequenceDiagram getCastedFigure() { + return (SequenceDiagram) getFigure(); + } + + /** + * Return the corresponding SequenceViewHeader for the source. + * In case the source is a StubNode, the source is the taget of the previous step. + * + * @param source the source of the step + * @return the corresponding SequenceViewHeader for the source + */ + private SequenceViewHeader getSourceResponsibilityNumber(SimplePathNode source, int stepNumber, ComponentRole instanceRole) { + SequenceViewHeader svh = null; + if (source instanceof StubNode) { + //the target of the previus step + int lastTargetNumber = getTargetNumber(steps.size() - 2) - 1; + if (lastTargetNumber >= 0 && lastTargetNumber < headerList.size()) + svh = headerList.get(lastTargetNumber); + } else + svh = getHeader(source, instanceRole); + return svh; + } + + /** + * Returns the target number for the given step number. + * + * @param stepNumber + * @return the target number for the given step number + */ + private int getTargetNumber(int stepNumber) { + if (stepNumber >= 0 && stepNumber < stepsList.size()) { + String lastStep = stepsList.get(stepNumber); + int[] numbers = getStepNumbers(lastStep); + if (numbers != null) + return numbers[1]; + } + return 0; + } + + /** + * Returns the step numbers start and end (source, target) for a step line. + * + * @param stepLine the step line + * @return the step numbers, start and end + */ + private int[] getStepNumbers(String stepLine) { + int[] ret = null; + + // Finds the number of source and target + int start = stepLine.indexOf(":") + 1; //$NON-NLS-1$ + int end = stepLine.indexOf(":", start); //$NON-NLS-1$ + String numbers = stepLine.substring(start, end); + + StringTokenizer st = new StringTokenizer(numbers, ","); //$NON-NLS-1$ + if (st.countTokens() == 2) { + ret = new int[2]; + ret[0] = Integer.parseInt(st.nextToken()); + ret[1] = Integer.parseInt(st.nextToken()); + } + + return ret; + } + + /** + * Return the corresponding SequenceViewHeader for the target. + * + * @param target the target of the step + * @return the corresponding SequenceViewHeader for the target + */ + private SequenceViewHeader getTargetResponsibilityNumber(SimplePathNode target, ComponentRole instanceRole) { + return getHeader(target, instanceRole); + } + + /** + * Removes a step from the sequence view. + * First obtains the headers from the responsibilities source and target; gets the step line and removes it from the steps list; then removes the components and updates the buffers and figure. + * + * @param step the step to remove + */ + private void removeStep(ExecutionStep step) { + steps.remove(step); + + //steps start at 1 + SequenceViewHeader source = getSourceResponsibilityNumber(step.getSource(), Integer.parseInt(step.getExecutionContext().getCurrentStep()) - 1, step.getInstanceComponentToSource()); + SequenceViewHeader target = getTargetResponsibilityNumber(step.getTarget(), step.getInstanceComponentToTarget()); + if (source != null && target != null) { + String line = getBodyLine(source.getNumber(), target.getNumber(), step.getDependency().getType(), step.getTarget().getName()); + if (stepsList.remove(line)) { + removeComponent(source.getNumber()); + removeComponent(target.getNumber()); + updateStringBuffers(); + } + } + } + + /** + * Updates the footer buffer with the footer list. + * + */ + private void updateFooterBuffer() { + footerBuffer.delete(0, footerBuffer.capacity()); + for(Iterator iter=footerList.iterator(); iter.hasNext();) + footerBuffer.append(getFooterLine((SequenceViewFooter) iter.next())); + } + + /** + * Updates the header buffer with the header list. + * + */ + private void updateHeaderBuffer() { + headerBuffer.delete(0, headerBuffer.capacity()); + for(Iterator iter=headerList.iterator(); iter.hasNext();) + headerBuffer.append(getHeaderLine((SequenceViewHeader) iter.next())); + } + + /** + * Updates the body buffer with the steps list. + * + */ + private void updateBodyBuffer() { + bodyBuffer.delete(0, bodyBuffer.capacity()); + for(Iterator iter=stepsList.iterator(); iter.hasNext();) + bodyBuffer.append((String) iter.next()); + } + + /** + * Updates the string buffers and the figure. + * + */ + private void updateStringBuffers() { + updateHeaderBuffer(); + updateBodyBuffer(); + updateFooterBuffer(); + updateFigure(); + } + + /** + * Decremets the reference for the header, if the references are 0, this component is removed from the map, and the footer is updated. + * + * @param number the component number + */ + private void removeComponent(int number) { + int index = number - 1; + if (index < 0 || index >= headerList.size()) + return; + + SequenceViewHeader svc = headerList.get(index); + svc.decReferences(); + if (svc.getReferences() == 0) { + removeFromMap(svc); + headerList.remove(index); + removeFooter(number); + } + } + + /** + * + * Removes the SequenceViewHeader from the map. + * + * @param removedHeader the removed SequenceViewHeader + */ + private void removeFromMap(SequenceViewHeader removedHeader) { + for(Iterator iter=nodeToHeader.keySet().iterator(); iter.hasNext();) { + Object o = iter.next(); + SequenceViewHeader svh = nodeToHeader.get(o); + if (svh == removedHeader) { + nodeToHeader.remove(o); + break; + } + } + } + + /** + * Updates the footer list extracting the componet number that was removed. + * + * @param number the component number that was removed + */ + private void removeFooter(int number) { + int index = 0; + for(Iterator iter=footerList.iterator(); iter.hasNext();) { + SequenceViewFooter svf = (SequenceViewFooter) iter.next(); + if (number >= svf.getSource() && number <= svf.getTarget()) { + svf.setTarget(svf.getTarget() - 1); + if (svf.getSource() > svf.getTarget()) + footerList.remove(index); + break; + } + index++; + } + } + + /** + * Goes back to a step. All the steps beetween the last step and the given are removed. + * The gives step is not removed. + * + * @param step the step to go back to + */ + private void backToStep(ExecutionStep step) { + if (steps.size() <= 0) + return; + + ExecutionStep actualStep = steps.get(steps.size() - 1); + while(actualStep != step && steps.size() > 0) { + removeStep(actualStep); + actualStep = steps.get(steps.size() - 1); + } + } + + /** + * Adapter implementation + */ + public void internalNotifyChanged(Notification notification) { + if (notification.getNotifier() instanceof ExecutionInfo) { + switch (notification.getFeatureID(ExecutionmodelPackage.class)) { + case ExecutionmodelPackage.EXECUTION_INFO__BACK_TO_STEP: + if (notification.getEventType() == Notification.SET) { + ExecutionStep backStep = (ExecutionStep) notification.getNewValue(); + if (backStep.getEnabled() == ExecutionContext.enabled_Step) + backToStep(backStep); + } + break; + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + if (notification.getEventType() == Notification.ADD) { + ExecutionStep newStep = (ExecutionStep)notification.getNewValue(); + if (newStep.getEnabled() == ExecutionContext.enabled_Step) + addNewStep(newStep); + } + break; + + case ExecutionmodelPackage.EXECUTION_INFO__RESET: + if (notification.getEventType() == Notification.SET) { + changeExecutionInfo(); + } + break; + } + } else + if (notification.getEventType() == Notification.SET) + switch (notification.getFeatureID(ExecutionmodelPackage.class)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + changeExecutionInfo(); + break; + } + } + + public void notifyChanged(final Notification notification) { + Workbench.getInstance().getDisplay().syncExec( + new Runnable() { + public void run(){ + internalNotifyChanged(notification); + } + } + ); + } + + public Notifier getTarget() { + return getCastedModel(); + } + + public void setTarget(Notifier newTarget) { + // do nothing + } + + public boolean isAdapterForType(Object type) { + return ExecutionInfoManager.class.isAssignableFrom((Class)type); + } + + /** + * Factory used to translate a line style in a string used to represent the line style in the SequenceDiagram figure. + * + * @author usuario + * + */ + static class DependecyToArrowFactory { + private static final Map arrows = new HashMap(); + + static { + arrows.put(new Integer(SWT.LINE_SOLID), "->"); //$NON-NLS-1$ + arrows.put(new Integer(SWT.LINE_DOT), "->>"); //$NON-NLS-1$ + arrows.put(new Integer(SWT.LINE_DASH), ".>>"); //$NON-NLS-1$ + } + + public static String getArrow(Integer lineStyle) { + String arrow = arrows.get(lineStyle); + if (arrow == null) + arrow = "->"; //$NON-NLS-1$ + return arrow; + } + } + + /** + * This class is used to represent a component in the SequenceView. + * It has its name, number (position in the sequence) and references (number of arrows leaving or entering this component) + * + * @author usuario + */ + class SequenceViewHeader { + private int number; + private int references; + private String name; + + public SequenceViewHeader(int number, int references, String name) { + this.number = number; + this.references = references; + this.name = name; + } + + public int getNumber() { + return number; + } + + public int getReferences() { + return references; + } + + public void incReferences() { + references++; + } + + public void decReferences() { + references--; + } + + public String getName() { + return name; + } + } + + /** + * This class is used to reprensent a group of component in a UCM diagram. + * + * @author usuario + */ + class SequenceViewFooter { + private UseCaseMap map; + private int source; + private int target; + + public SequenceViewFooter(int source, int target, UseCaseMap map) { + this.source = source; + this.target = target; + this.map = map; + } + + public int getSource() { + return source; + } + + public int getTarget() { + return target; + } + + public void setSource(int source) { + this.source = source; + } + + public void setTarget(int target) { + this.target = target; + } + + public UseCaseMap getUseCaseMap() { + return map; + } + + public String getName() { + if (map != null) + return map.getName(); + return ""; //$NON-NLS-1$ + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewFactory.java new file mode 100755 index 0000000..523dfd2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/editparts/SequenceViewFactory.java @@ -0,0 +1,36 @@ +/** + * $Id: SequenceViewFactory.java,v 1.1 2006/03/29 20:21:58 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.sequenceview.editparts; + +import org.eclipse.gef.EditPart; +import org.eclipse.gef.EditPartFactory; + +/** + * The factory used for the edit parts in the Sequence View. + * + * @author $Author: franco $ + * + */ +public class SequenceViewFactory implements EditPartFactory { + + /* + * (non-Javadoc) + * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object) + */ + public EditPart createEditPart(EditPart context, Object modelElement) { + // get EditPart for model element + EditPart part = getPartForElement(modelElement); + // store model element in EditPart + part.setModel(modelElement); + return part; + } + + /** + * Maps an object to an EditPart. In this view only one edit part is used SequenceViewEditPart + */ + private EditPart getPartForElement(Object modelElement) { + return new SequenceViewEditPart(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/Constants.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/Constants.java new file mode 100755 index 0000000..6773705 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/Constants.java @@ -0,0 +1,2 @@ +/** * $Id: Constants.java,v 1.3 2006/02/03 20:46:47 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.edit.sequenceview.figures; + import java.util.Vector; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.widgets.Display; public abstract class Constants { public static final String DELIMITER_ENTITIES="~~~~~|||||~~~~~|||||"; //$NON-NLS-1$ public static final String DELIMITER_STATE_AND_HIDDEN_STATE="/////<<<< decomposeStrings(String s, String delimiter) { Vector ret=new Vector(); for (;;) { int index = s.indexOf(delimiter); if (index<0) { s=filterComment(s); if (!s.equals("")) ret.add(s); //$NON-NLS-1$ return ret; } String tmp=s.substring(0,index); tmp=filterComment(tmp); if (!tmp.equals("")) ret.add(tmp); //$NON-NLS-1$ s=s.substring(index+delimiter.length(), s.length()); } } private static String filterComment(String s) { int pos1 = s.indexOf("//"); //$NON-NLS-1$ int pos2 = s.indexOf("///"); //$NON-NLS-1$ if(pos1>=0 && (pos2 != pos1)) { if(pos1==0) return ""; //$NON-NLS-1$ else return s.substring(0,pos1); } return s; } private static final int _fontsize = 8; public static int getFontsize() { return _fontsize; } public static int getDistLineToText() { return _fontsize/4; } public static int getDistTextToLine() { return _fontsize/4; } public static int getDistTextToText() { return _fontsize/4; } //SansSerif private static final Font _font = new Font(Display.getCurrent(),"Verdana",getFontsize(), SWT.NONE); //$NON-NLS-1$ public static Font getFont() { return _font; } private static final Font _fontItalic = new Font(Display.getCurrent(), "Verdana", getFontsize(), SWT.ITALIC); //$NON-NLS-1$ public static Font getFontItalic() { return _fontItalic; } public static int RESIZE_TOP = 1; public static int RESIZE_RIGHT = 2; public static int RESIZE_BOTTOM = 4; public static int RESIZE_LEFT = 8; } \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.java new file mode 100755 index 0000000..c9d3d04 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/sequenceview/figures/SequenceDiagram.java @@ -0,0 +1,808 @@ +/** + * $Id: SequenceDiagram.java,v 1.19 2006/04/04 03:29:05 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.sequenceview.figures; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.draw2d.Graphics; +import org.eclipse.draw2d.Label; +import org.eclipse.draw2d.Shape; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.draw2d.geometry.PointList; +import org.eclipse.draw2d.geometry.Rectangle; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.widgets.Display; +import org.isistan.flabot.engine.messages.Messages; + +/** + * An interaction represents a synchronous/asynchronous message that is sent between two components. + * + * @author $Author: franco $ + */ +class Interaction +{ + private int srcObj; + private boolean srcObjHasControl; + private Color lineColor; + private int arrowKind; //1=SYNC, 2= ASYNC, 3=EDGE, 4=FILLED + private int lineKind; //1=SOLID, 2=DOTTED + private int destObj; + private boolean destObjHasControl; + private String methodName; + + + public Interaction(int srcObj, boolean srcObjHasControl, Color lineColor, int arrowKind, int lineKind, + int destObj, boolean destObjHasControl, String methodName) + { + this.srcObj= srcObj; + this.srcObjHasControl= srcObjHasControl; + this.lineColor = lineColor; + this.arrowKind= arrowKind; + this.lineKind = lineKind; + this.destObj= destObj; + this.destObjHasControl= destObjHasControl; + this.methodName= methodName; + } + + public boolean hasControl(int objNum) { + if ((srcObjHasControl && srcObj== objNum) || + (destObjHasControl && destObj== objNum)) + return true; + else return false; + } + + + @Override + public boolean equals(Object o) { + if (!(o instanceof Interaction)) return false; + Interaction i = (Interaction)o; + + return srcObj==i.srcObj && srcObjHasControl==i.srcObjHasControl && + arrowKind==i.arrowKind && destObj==i.destObj && + destObjHasControl==i.destObjHasControl && + (methodName == null | methodName.equals(i.methodName)); + } + + @Override + public int hashCode() { + return (methodName!=null?methodName.hashCode():1) + srcObj + + (srcObjHasControl?1:0) + arrowKind + destObj + (destObjHasControl?1:0); + } + + public int getSrcObj() {return srcObj;} + public boolean getSrcObjHasControl() {return srcObjHasControl;} + public int getArrowKind() {return arrowKind;} + public Color getLineColor() {return lineColor;} + public int getLineKind() {return lineKind;} + public int getDestObj() {return destObj;} + public boolean getDestObjHasControl() {return destObjHasControl; } + public String getMethodName() {return methodName; } +} + +/** + * Contains all interactions entered by the user and offers various comfort-functions for finding and working with interactions. + * + * @author $Author: franco $ + */ +class InteractionManagement +{ + private Set[] level; + + InteractionManagement(int numLevels) { + level= new HashSet[numLevels]; + for (int i=0; i < numLevels; i++) { + level[i]= new HashSet(); + } + } + + public boolean controlBoxExists(int levelNum, int objNum) { + Iterator it= level[levelNum-1].iterator(); + while (it.hasNext()) { + Interaction ia= it.next(); + if (ia.hasControl(objNum)) return true; + } + return false; + } + + public void add(int numLevel, Interaction i) { + level[numLevel-1].add(i); + } + + public Set getInteractionsInLevel(int levelNum) { + return level[levelNum-1]; + } + + public int getNumLevels() { + return level.length; + } +} + +/** + * The sequence diagram is used to show the route followed by the Fault Locator Engine. + * It shows the components and the interactions between them representing the responsibilities visited by the engine; it also shows the kind of condition (eg: precondition, mapping) with the color of the arrow. + * + * @author $Author: franco $ + * + */ +public class SequenceDiagram extends Shape { + + public int controlFlowBoxWidth = 10; + + //the dimensions for the rectangle(s) (=roles/components) in the first line + public final int rectDistance = 10; //distance between two columns + public int rectHeight; //computed + public int rectWidth; //computed + int extraTextSpace = 0; + + private Vector obj; + private int numObjects = 0; + String boxStrings; + + public final int borderDistance= 30; //d between the component bordeR and the diagram + + public int rectToFirstLevelDistance= 20; + public int levelHeight= 30; + + //these two constants are important for the arrowhead + public final int arrowX= 5; + public final int arrowY= 5; + + //Arrow Kind + public final int SYNC= 1; + public final int ASYNC= 2; + public final int EDGE= 3; + public final int FILLED= 4; + public final int MAP= 5; + + //Line Kind + public final int SOLID= SWT.LINE_SOLID; + public final int DOTTED= SWT.LINE_DOT; + public final int DASH= SWT.LINE_DASH; + + private int levelNum= 0; + private InteractionManagement im; + + private int maps = 0; + private int offset = 0; + + //Colors + private Color _activeColor=ColorConstants.black; + private Color _mapColor= new Color(Display.getCurrent(), new RGB(200,200,200)); + private Color _fillComponentsColor= new Color(Display.getCurrent(), new RGB(235,235,235)); + + String text = ""; //$NON-NLS-1$ + + /** + * Instantiates the sequence diagram. + */ + public SequenceDiagram() { + setSize(100,100); //initial size + setVisible(true); + + //Added double Components size. + rectHeight= 2*Constants.getDistLineToText() + Constants.getFontsize() + 22; + im = new InteractionManagement(0); + + updateText(); + } + + @Override + public void outlineShape(Graphics g) { + //g.setAntialias(SWT.ON); + if (text.length() > 0) + drawSequence(g); + else { + setSize(300, 20); + g.drawString(Messages.getString("org.isistan.flabot.engine.SequenceDiagram.noExecutionStepsSequenceView"), 0, 0); //$NON-NLS-1$ + } + } + + @Override + public void fillShape(Graphics g) { + //Do nothing + } + + /** + * Sets the text to be parsed. + * + * @param text the text to parse + */ + public void setText(String text) { + this.text = text; + updateText(); + repaint(); + } + + /** + * Parses the messages and sets the diagram configuration. + * The sequence diagram is build parsing a text, the first line represents the components, and the rest of the lines the interaction between this componets. + * + * eg: + * |_aProvider:ProviderComponent_|_aProcessOrderTask:ProcessOrderTaskComponent_|_aProcess:ProcessOrder_ + * 1->1:1,1:initTransaction + * 1->2:1,2:storeRequest + * 2->3:2,3:sendContract + */ + public void updateText() { + Vector lines=Constants.decomposeStrings(text, "\n"); //$NON-NLS-1$ + numObjects=0; + levelNum= 0; + if (lines.size() == 0) + return; + + for (int i=1; i < lines.size(); i++) { + if (lines.elementAt(i).matches("\\A\\s*\\z")) continue; //$NON-NLS-1$ + levelNum++; + } + + String firstLine= lines.elementAt(0); + obj= Constants.decomposeStrings(firstLine, "|"); //$NON-NLS-1$ + numObjects= obj.size(); + + //parse the messages + int curLevel= 0; maps = 0; + im= new InteractionManagement(levelNum); + double maxWidth = 0; + boxStrings=""; //$NON-NLS-1$ + for (int i=1; i < lines.size(); i++) { + if (lines.elementAt(i).matches("\\A\\s*\\z")) continue; //$NON-NLS-1$ + curLevel++; + Vector interactions= Constants.decomposeStrings(lines.elementAt(i), ";"); //$NON-NLS-1$ + + int j = 0; + for (; j < interactions.size(); j++) { + Pattern p = Pattern.compile("\\A(\\d+)(->>|->|-/>|.>>|.>|./>|->>>|.>>>|==)(\\d+):(\\d+),(\\d+):(.*)_(\\d+):(\\d+):(\\d+)$\\Z"); //$NON-NLS-1$ + //1->2:1,2:methodName_255:255:255 + + Matcher m= p.matcher(interactions.elementAt(j)); + if (!m.matches()) break; + + int srcObj= Integer.parseInt(m.group(1)); + + int arrowKind= -1; + int lineKind= -1; + if (m.group(2).equals("->")) {arrowKind= SYNC; lineKind=SOLID;} //$NON-NLS-1$ + else if (m.group(2).equals("->>")) {arrowKind= SYNC; lineKind=DASH;} //$NON-NLS-1$ + else if (m.group(2).equals("-/>")) {arrowKind= EDGE; lineKind=SOLID;} //$NON-NLS-1$ + else if (m.group(2).equals("->>>")) {arrowKind= FILLED; lineKind=SOLID;} //$NON-NLS-1$ + else if (m.group(2).equals(".>")) {arrowKind= ASYNC; lineKind=DOTTED;} //$NON-NLS-1$ + else if (m.group(2).equals(".>>")) {arrowKind= SYNC; lineKind=DOTTED;} //$NON-NLS-1$ + else if (m.group(2).equals("./>")) {arrowKind= EDGE; lineKind=DOTTED;} //$NON-NLS-1$ + else if (m.group(2).equals(".>>>")) {arrowKind= FILLED; lineKind=DOTTED;} //$NON-NLS-1$ + + int destObj= Integer.parseInt(m.group(3)); + String group = m.group(4) + "," + m.group(5); //get alive Objects //$NON-NLS-1$ + boxStrings += ";" + group; //get alive Objects //$NON-NLS-1$ + + boolean srcObjHasControl= group.contains(String.valueOf(srcObj));; + boolean destObjHasControl= group.contains(String.valueOf(destObj));; + + String methodName= m.group(6); + if (methodName != null) { + Label l1 = new Label(methodName); + l1.setFont(Constants.getFont()); + maxWidth = Math.max(l1.getTextBounds().width, maxWidth); + } + + if(destObj==srcObj) levelNum++; //expand the Entity's size + + if ((srcObj <= 0) || (destObj<= 0) || (srcObj > numObjects) || (destObj > numObjects)) continue; + + RGB rgb = new RGB(Integer.parseInt(m.group(7)), + Integer.parseInt(m.group(8)), + Integer.parseInt(m.group(9))); + Color c = new Color(Display.getCurrent(), rgb); + + im.add(curLevel, new Interaction(srcObj,srcObjHasControl, c, arrowKind, lineKind, destObj, destObjHasControl, methodName)); + } //#for + + for (; j < interactions.size(); j++) { + Pattern p = Pattern.compile("\\A(\\d+)(==)(\\d+):(.*)\\Z"); //$NON-NLS-1$ + //1->2:1,2:methodName_255:255:255 + + Matcher m= p.matcher(interactions.elementAt(j)); + if (!m.matches()) break; + + int srcObj= Integer.parseInt(m.group(1)); + int destObj= Integer.parseInt(m.group(3)); + int arrowKind= MAP; + int lineKind=SOLID; + levelNum = levelNum - 1; //This must not be consider a new level. + maps++; + + String mapName= m.group(4); + Label l1 = new Label(mapName); + l1.setFont(Constants.getFont()); + maxWidth = Math.max(l1.getTextBounds().width, maxWidth); + im.add(curLevel, new Interaction(srcObj,false, null, arrowKind, lineKind, destObj, false, mapName)); + } + } + + //end message parsing + + // find out the width of the column with the longest text + for (int i=0; i < numObjects; i++) { + String s= obj.elementAt(i); + if (s.startsWith("_") && s.endsWith("_") && s.length()>2) { //$NON-NLS-1$ //$NON-NLS-2$ + s=s.substring(1,s.length()-1); + } + + //The titles of the components are divided into three texts RoleName:ComponentName:InstanceOf + StringTokenizer st = new StringTokenizer(s, "##"); //$NON-NLS-1$ + int max = 0; + while(st.hasMoreTokens()) { + String token = st.nextToken(); + Label label = new Label(token); + label.setFont(Constants.getFont()); + max = Math.max(max, label.getTextBounds().width); + } + maxWidth= Math.max(max, maxWidth); + } + rectWidth= (int)Math.floor(maxWidth+1)+ 2* Constants.getDistLineToText() + Constants.getFontsize(); + + } + + /** + * Draws the sequence diagram. + * @param g + */ + public void drawSequence(Graphics g) { + if (numObjects == 0) + return; + + //Inicialization + g.setFont(Constants.getFont()); + g.setBackgroundColor(_activeColor); + g.setForegroundColor(_activeColor); + + //draw the border + g.drawRectangle(0, 0, getWidth()-1, getHeight()-1); + + //draw the first line of the sequence diagram (the componets) + int ypos= borderDistance; + int xpos= borderDistance; + for (int i=0; i < numObjects; i++) { + boolean underline= false; + String s= obj.elementAt(i); + if (s.startsWith("_") && s.endsWith("_") && s.length()>2) { //$NON-NLS-1$ //$NON-NLS-2$ + underline=true; + s=s.substring(1,s.length()-1); + } + + //Draws the rectangle + g.drawRectangle(xpos, ypos, rectWidth-1, rectHeight-1); + g.setBackgroundColor(_fillComponentsColor); + g.fillRectangle(xpos + 1, ypos + 1, rectWidth - 2, rectHeight - 2); + + int index = s.indexOf(":"); //$NON-NLS-1$ + if (index < 0) index = s.length(); + + + StringTokenizer st = new StringTokenizer(s, "##"); //$NON-NLS-1$ + Label label = new Label(); + int height = 0; + while(st.hasMoreTokens()) { + String token = st.nextToken(); + label = new Label(token); + label.setFont(Constants.getFont()); + + int dx= (rectWidth-2 - (int)Math.floor(label.getTextBounds().width+1)) / 2; + int dy= height; + int tx= xpos + dx; + int ty= ypos + dy; + g.drawString(label.getText(), tx, ty); + + if (underline) + g.drawLine(tx, + ty+label.getTextBounds().height, + tx+label.getTextBounds().width, + ty+label.getTextBounds().height); + height += label.getTextBounds().height + 1; + } + + xpos += rectWidth + rectDistance; + } + + offset = 0; + Set set = im.getInteractionsInLevel(im.getNumLevels() - maps); + Iterator it= set.iterator(); + if (it.hasNext()) { + Interaction i = it.next(); + if(i.getSrcObj() == i.getDestObj()) { + Label l = new Label(i.getMethodName()); + l.setFont(Constants.getFont()); + offset = l.getTextBounds().width - rectWidth / 2 + borderDistance; + if (offset < 0) offset = 0; + } + } + + //draw the messages + drawMessages(g); + if(boxStrings!=null && boxStrings.length()>1) + drawControlFlowBoxesWithLines(g, boxStrings.substring(1),numObjects); //1,2;1,2;... cut first ;-character + + //set our component to the correct size + setSize(rectWidth * numObjects + + rectDistance * (numObjects-1) + + 2 * borderDistance + offset, + 2 * borderDistance + + rectHeight + + rectToFirstLevelDistance + + levelNum * levelHeight); + } + + /** + * Draws all the interactions between the components with the name of the responsibility. + * It also draws the map boxes. + * + * @param g + */ + private void drawMessages(Graphics g) { + for (int i=0; i < im.getNumLevels(); i++) { + Set interactions= im.getInteractionsInLevel(i+1); + Iterator it= interactions.iterator(); + while (it.hasNext()) { + Interaction ia= it.next(); + + if (ia.getArrowKind() == MAP) { + //draw the maps boxes + int yOffset = 5; + int h = borderDistance + + rectHeight + + rectToFirstLevelDistance + + levelNum * levelHeight; + + int start = ia.getSrcObj(); + int end = ia.getDestObj(); + int total = end - start + 1; + + int endXOffset = 0; + if (end == numObjects) + endXOffset = offset; + + drawMapFrame(g, ia.getMethodName(), (rectDistance + rectWidth)*(start - 1) + borderDistance - rectDistance/2, yOffset, (rectDistance + rectWidth) * total + endXOffset, h); + continue; + } + + if (ia.getSrcObj() == ia.getDestObj()) { + //draw an arc-arrow + int xTextOffset=0; + int w= 30; + int h= (int)(levelHeight * 0.66); + int x= hCenterForObj(ia.getSrcObj()) - w/2; + int ay= vCenterForLevel(i+1) + 5; + if (im.controlBoxExists(i+1, ia.getSrcObj())) { + x += controlFlowBoxWidth/2; + xTextOffset=controlFlowBoxWidth/2; + } + Color oldColor = g.getForegroundColor(); + g.setForegroundColor(ia.getLineColor()); + + int oldLineWidth = g.getLineWidth(); + int lineWidth = 2; + g.setLineStyle(ia.getLineKind()); + g.setLineWidth(lineWidth); + g.drawArc(x,ay,w,h, 90,-180); + Point p1= new Point(x+w/2, ay+h); + Point d1= new Point(x+w/2 + 3, p1.y -6); + Point d2= new Point(x+w/2+4, p1.y +4); + g.setLineStyle(SWT.LINE_CUSTOM); + g.setLineWidth(oldLineWidth); + + switch(ia.getArrowKind()) { + case ASYNC: { + g.drawLine(p1.x,p1.y, d1.x, d1.y); + g.drawLine(p1.x,p1.y, d2.x,d2.y); + break; + } + + case SYNC: { + PointList pl = new PointList(); + pl.addPoint(p1.x, p1.y); + pl.addPoint(d1.x, d1.y); + pl.addPoint(d2.x, d2.y); + g.fillPolygon(pl); + g.drawPolygon(pl); + break; + } + + case EDGE: { + g.drawLine(p1.x,p1.y, d2.x,d2.y); + break; + } + + case FILLED: { + PointList pl = new PointList(); + pl.addPoint(p1.x, p1.y); + pl.addPoint(d1.x, d1.y); + pl.addPoint(d2.x, d2.y); + g.fillPolygon(pl); + break; + } + + } + g.setForegroundColor(oldColor); + + //print the methodname of a self transaction + if (ia.getMethodName() != null && !ia.getMethodName().equals("")){ //$NON-NLS-1$ + int fx1= x + w + 2; + int fy1= ay; + //rectWidth/4 so as the text is near the arrow + int fx2= hCenterForObj(ia.getSrcObj()) + rectWidth/4; + int fy2= ay; + printMethodName(g, ia.getMethodName(), fx1+xTextOffset,fx2+xTextOffset, + fy1, fy2, true, false); + } + + } else { + //draw an arrow from the source-object to the destination object + int begX= hCenterForObj(ia.getSrcObj()); + int endX= (ia.getSrcObj() < ia.getDestObj())? hCenterForObj(ia.getDestObj())-1: hCenterForObj(ia.getDestObj())+1; + int arrowY= vCenterForLevel(i+1) + levelHeight/2 -1; + + if (ia.getSrcObjHasControl()) { //shrink arrow if box exists + begX += (ia.getSrcObj() < ia.getDestObj()) ? (controlFlowBoxWidth/2) : (-controlFlowBoxWidth/2); + } + if(ia.getDestObjHasControl()) { //shrink arrow if box exists + endX += (ia.getSrcObj() < ia.getDestObj()) ? (-controlFlowBoxWidth/2) : (controlFlowBoxWidth/2); + } + + drawArrow(g, new Point(begX,arrowY), new Point(endX, arrowY), ia.getArrowKind(), ia.getLineKind(), ia.getLineColor()); + + if (ia.getMethodName() != null && !ia.getMethodName().equals("")){ //$NON-NLS-1$ + final int b= 2; + + if (ia.getSrcObj() < ia.getDestObj()) + printMethodName(g, ia.getMethodName(), begX+b, + endX-arrowX-b, + arrowY-1-levelHeight/1, arrowY-1, + false,true); + else + printMethodName(g, ia.getMethodName(), endX+arrowX+b, + begX-b, arrowY-1 - levelHeight/2, + arrowY-1, false,true); + } + } + } + } + } + + /** + * Prints the given methodName in an intelligent manner into the supplied rectangle. + * The method may put pixels anywhere into the supplied rectangle including the borders. + * + * @param g + * @param methodName + * @param begX + * @param endX + * @param begY + * @param endY + * @param centerVertically + * @param centerHorizontically + */ + private void printMethodName(Graphics g, String methodName, + int begX, int endX, int begY, int endY, + boolean centerVertically, boolean centerHorizontically) { + + Label layout= new Label(methodName); + layout.setFont(Constants.getFont()); + + //draw it horizontally centered + int dx=endX-begX-20+Constants.getDistLineToText(); + if(centerHorizontically) dx= (endX-begX - layout.getTextBounds().width) / 2; + int dy= (centerVertically)? + (endY-begY)/2 : layout.getTextBounds().height; + + g.drawString(methodName, begX + dx, endY - dy ); + } + + /** + * + * @param g + * @param s + * @param numObjects + */ + public void drawControlFlowBoxesWithLines(Graphics g, String s, int numObjects) { + int level=1; + StringTokenizer mainTokens = new StringTokenizer(s,";"); //$NON-NLS-1$ + + int tokNum = mainTokens.countTokens(); + int[][] tField = new int[numObjects][tokNum+2]; + + //collect all tokens into an array: create another view to sequentially access data of a scecific object + //1,2;#;1,3;1,3;1;3 will be transfomed to + // tField: [110] + // [000] + // [101] + // [101] + // [100] + // [001] + while(mainTokens.hasMoreTokens()) { + String main = mainTokens.nextToken(); + if(main.indexOf("#")>=0) { //if no box, clear entire row //$NON-NLS-1$ + for(int i=0;i width)?(width):(bounds.width); + + g.drawLine(x, y + bounds.height + Constants.getDistTextToText() * 2, x + textWidth + Constants.getDistTextToText() * 2,y + bounds.height + Constants.getDistTextToText() * 2); + g.drawLine(x + textWidth + Constants.getDistTextToText() * 2, y + bounds.height + Constants.getDistTextToText() * 2, x + textWidth + 10,y); + + g.setForegroundColor(_activeColor); + } + + /** + * Draws the line that links two components (representing a responsibility) and the arrowhead at the end of this line. + * + * @param g + * @param srcObj the source component + * @param destObj the target component + * @param arrowKind the kind of arrow + * @param lineKind the kind of the line + */ + public void drawArrow(Graphics g, Point srcObj, Point destObj, int arrowKind, int lineKind, Color color) { + int oldLineWidth = g.getLineWidth(); + Color oldColor = g.getForegroundColor(); + g.setForegroundColor(color); + int lineWidth = 2; + + Point p1, p2; + if (srcObj.x < destObj.x){ + p1 = new Point(destObj.x-arrowX, destObj.y+arrowY); + p2 = new Point(destObj.x-arrowX, destObj.y-arrowY); + } else { + p1 = new Point(destObj.x+arrowX, destObj.y+arrowY); + p2 = new Point(destObj.x+arrowX, destObj.y-arrowY); + } + + switch(arrowKind) { + case SYNC: + g.drawLine(p1.x, p1.y, p2.x, p2.y); + g.drawLine(destObj.x, destObj.y, p1.x, p1.y); + g.drawLine(destObj.x, destObj.y, p2.x, p2.y); + + g.setLineWidth(lineWidth); + g.setLineStyle(lineKind); + g.drawLine(srcObj.x,srcObj.y,p1.x, destObj.y); + break; + + case ASYNC: + g.drawLine(destObj.x, destObj.y, p1.x, p1.y); + g.drawLine(destObj.x, destObj.y, p2.x, p2.y); + + g.setLineWidth(lineWidth); + g.setLineStyle(lineKind); + g.drawLine(srcObj.x,srcObj.y,destObj.x, destObj.y); + break; + + case EDGE: + g.drawLine(destObj.x, destObj.y, p2.x, p2.y); + + g.setLineWidth(lineWidth); + g.setLineStyle(lineKind); + g.drawLine(srcObj.x,srcObj.y,destObj.x, destObj.y); + break; + + case FILLED: + PointList pl = new PointList(); + pl.addPoint(p1.x, p1.y); + pl.addPoint(p2.x, p2.y); + pl.addPoint(destObj.x, destObj.y); + g.fillPolygon(pl); + g.setLineStyle(lineKind); + + g.setLineWidth(lineWidth); + g.drawLine(srcObj.x,srcObj.y,p1.x, destObj.y); + break; + + } + + g.setLineWidth(oldLineWidth); + g.setLineStyle(SWT.LINE_CUSTOM); + g.setForegroundColor(oldColor); + } + + protected int hCenterForObj(int objNum) { + return (objNum*rectWidth + (objNum-1)*rectDistance + borderDistance - + rectWidth/2); + } + + protected int vCenterForLevel(int level) { + return (level*levelHeight + rectToFirstLevelDistance + + rectHeight + borderDistance - levelHeight/2); + } + + public int getX(){ + return this.getLocation().x; + } + + public int getY(){ + return this.getLocation().y; + } + + public int getWidth() { + return getSize().width; + } + + public int getHeight() { + return getSize().height; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/GeneralLogFilterAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/GeneralLogFilterAction.java new file mode 100755 index 0000000..4b16c03 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/GeneralLogFilterAction.java @@ -0,0 +1,22 @@ +/** * $Id: ResetAction.java,v 1.12 2006/04/04 03:29:05 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.edit.ucmeditor.actions; + +import org.eclipse.gef.commands.Command; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPart; import org.isistan.flabot.edit.editor.CommandExecutor; import org.isistan.flabot.edit.editor.FlabotGraphicalEditor; import org.isistan.flabot.edit.editor.commands.NotifierCommandWrapper; import org.isistan.flabot.edit.editor.dialogs.StandardEditionDialog; import org.isistan.flabot.edit.editormodel.FlabotFileModel; import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; import org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem; import org.isistan.flabot.engine.messages.Messages; import org.isistan.flabot.util.edition.tab.EditionTabItem; /** * Action that resets the fault location engine * @author usuario * */ public class GeneralLogFilterAction extends SelectionAction{ + + public static final String + GENERAL_LOG_FILTER = "GENERAL_LOG_FILTER"; //$NON-NLS-1$ + + public GeneralLogFilterAction(IWorkbenchPart part) { + super(part); + + setText(Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.text")); //$NON-NLS-1$ + setId(GENERAL_LOG_FILTER); + } + + @Override protected boolean calculateEnabled() { + return canPerformAction(); + } + /** * Check whether the action can be performed or not * @return */ + private boolean canPerformAction() { + return true; + } @SuppressWarnings("unchecked") private Command getCommand() { StandardEditionDialog dialog = new StandardEditionDialog( Display.getCurrent().getActiveShell(), Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.title"), //$NON-NLS-1$ Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.dialogCommandLabel"), //$NON-NLS-1$ new EditionTabItem[] { new GeneralLogFilterStrategyEditionItem()}); FlabotMultiPageEditor editor = (FlabotMultiPageEditor) ((FlabotGraphicalEditor)getWorkbenchPart()).getParent(); return dialog.open(editor.getModel()); } /** * Shows an edition dialog, creates a command and then executes it. */ @Override public void run() { Command command = getCommand(); if (command != null) { command = new NotifierCommandWrapper(command, getWorkbenchPart().getSite().getShell()); CommandExecutor commandExecutor = (CommandExecutor)getWorkbenchPart().getAdapter(CommandExecutor.class); commandExecutor.executeCommand(command, false); } } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.java new file mode 100755 index 0000000..5b65060 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/ResetAction.java @@ -0,0 +1,67 @@ +/** * $Id: ResetAction.java,v 1.12 2006/04/04 03:29:05 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.edit.ucmeditor.actions; + +import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.ui.IWorkbenchPart; import org.isistan.flabot.FlabotPlugin; import org.isistan.flabot.coremodel.CoreModel; import org.isistan.flabot.coremodel.ResponsibilityNode; import org.isistan.flabot.edit.editor.FlabotGraphicalEditor; import org.isistan.flabot.edit.editormodel.FlabotFileModel; import org.isistan.flabot.edit.editormodel.NodeVisualModel; import org.isistan.flabot.edit.ucmeditor.editparts.PathNodeEditPart; import org.isistan.flabot.engine.EnginePlugin; import org.isistan.flabot.engine.InterfacePluginEngine; import org.isistan.flabot.engine.RuntimeManager; import org.isistan.flabot.engine.locator.FlabotEngineLocator; import org.isistan.flabot.engine.messages.Messages; import org.isistan.flabot.util.locator.ComponentLocatorException; import org.isistan.flabot.util.locator.ComponentLocatorManager; /** * Action that resets the fault location engine * @author usuario * */ public class ResetAction extends SelectionAction{ + + public static final String + RESET = "RESET"; //$NON-NLS-1$ private RuntimeManager runtimeManager; + + public ResetAction(IWorkbenchPart part) { + super(part); + + setText(Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.ResetAction.text")); //$NON-NLS-1$ + setId(RESET); + } + + @Override protected boolean calculateEnabled() { + return canPerformAction(); + } + /** * Check whether the action can be performed or not * @return */ + private boolean canPerformAction() { + if (getSelectedObjects().isEmpty()) + return false; + List parts = getSelectedObjects(); + + if (parts.size() > 1) + return false; + + Object o = parts.get(0); + if (!(o instanceof PathNodeEditPart)) + return false; + + PathNodeEditPart part = (PathNodeEditPart)o; + if (!(part.getSemanticModel() instanceof ResponsibilityNode)) + return false; if (getRuntimeManager() == null || !getRuntimeManager().isActive()) return false; + return true; + } + private RuntimeManager getRuntimeManager() { if (runtimeManager == null) { List editparts = getSelectedObjects(); PathNodeEditPart part = (PathNodeEditPart)editparts.get(0); ResponsibilityNode responsibilityNode = (ResponsibilityNode)part.getSemanticModel(); FlabotFileModel flabotFileModel = responsibilityNode.getMap() .getCoreModel().getFile(); // add the file model to the parameters map Map parameters = new HashMap(2); parameters.put(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, flabotFileModel); parameters.put(FlabotEngineLocator.PARAMETER_EXECUTION_INFO_MANAGER, InterfacePluginEngine.getExecutionInfoManager(((FlabotGraphicalEditor)getWorkbenchPart()).getParent())); // obtain a reference to the component locator manager ComponentLocatorManager locatorManager = FlabotPlugin.getDefault().getComponentLocatorManager(); try { runtimeManager = (RuntimeManager) locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, parameters); }catch (ComponentLocatorException e) { EnginePlugin.getDefault().getLogger().error( Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.executionError"),e); //$NON-NLS-1$ return null; } } return runtimeManager; } /** * Execute the action */ + @Override public void run() { + List editparts = getSelectedObjects(); + PathNodeEditPart part = (PathNodeEditPart)editparts.get(0); NodeVisualModel visualNode = part.getCastedModel(); + CoreModel coreModel = visualNode.getDiagram().getCoreModel(); + + ResponsibilityNode responsibilityNode = + (ResponsibilityNode)part.getSemanticModel(); + // obtain the flabot file model parameter + FlabotFileModel flabotFileModel = responsibilityNode.getMap() + .getCoreModel().getFile(); + // add the file model to the parameters map + Map parameters = new HashMap(2); parameters.put(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, flabotFileModel); parameters.put(FlabotEngineLocator.PARAMETER_EXECUTION_INFO_MANAGER, InterfacePluginEngine.getExecutionInfoManager(((FlabotGraphicalEditor)getWorkbenchPart()).getParent())); + // obtain a reference to the component locator manager + ComponentLocatorManager locatorManager = + FlabotPlugin.getDefault().getComponentLocatorManager(); + try { + // ask the locator manager to find a runtime manager reference + RuntimeManager runtimeManager = (RuntimeManager) + locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, + parameters); + // finally, reset the runtime manager + runtimeManager.reset(coreModel); + } catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.ResetAction.componentLocatorError"), e); //$NON-NLS-1$ + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.ResetAction.exceptionError"), e); //$NON-NLS-1$ + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/RunEngineAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/RunEngineAction.java new file mode 100755 index 0000000..5a87bf7 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/RunEngineAction.java @@ -0,0 +1,224 @@ +/** + * $Id: RunEngineAction.java,v 1.24 2006/04/12 03:58:09 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.edit.ucmeditor.actions; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.gef.ui.actions.SelectionAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IPerspectiveDescriptor; +import org.eclipse.ui.IWorkbenchPart; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.CoreModel; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.edit.editor.FlabotGraphicalEditor; +import org.isistan.flabot.edit.editor.actions.RunConsistencyCheckAction; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.edit.editormodel.NodeVisualModel; +import org.isistan.flabot.edit.ucmeditor.editparts.PathNodeEditPart; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.InterfacePluginEngine; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.engine.locator.FlabotEngineLocator; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.locator.ComponentLocatorException; +import org.isistan.flabot.util.locator.ComponentLocatorManager; + +/** + * This action is used to run the Fault Locator Engine. + * It is active when a responsibility node is selected, so the execution can begin. + * + * @author $Author: franco $ + * + */ +public class RunEngineAction extends SelectionAction{ + + /** + * Action id + */ + public static final String + RUN_ENGINE = "RUN_ENGINE"; //$NON-NLS-1$ + + private IPerspectiveDescriptor perspective; + + private RuntimeManager runtimeManager; + + /** + * Creates a run engine action in the given workbench part + * @param part + */ + public RunEngineAction(IWorkbenchPart part) { + super(part); + + setText(Messages.getString("org.isistan.flabot.engine.RunEngineAction.runEngine")); //$NON-NLS-1$ + setId(RUN_ENGINE); + perspective = part.getSite().getWorkbenchWindow().getWorkbench().getPerspectiveRegistry().findPerspectiveWithId("org.isistan.flabot.engine.perspective"); //$NON-NLS-1$ + } + + /** + * Determines whether the action should be enabled or not. + * @return true if selection consists of only a responsibility node (responsibilities, forks and joins), false otherwise + */ + @Override + protected boolean calculateEnabled() { + return canPerformAction(); + } + + /** + * Determines whether the action should be enabled or not. + * @return true if selection consists of only a responsibility node (responsibilities, forks and joins), false otherwise + */ + private boolean canPerformAction() { + + if (getSelectedObjects().isEmpty()) + return false; + List parts = getSelectedObjects(); + + if (parts.size() > 1) + return false; + + Object o = parts.get(0); + if (!(o instanceof PathNodeEditPart)) + return false; + + PathNodeEditPart part = (PathNodeEditPart)o; + if (!(part.getSemanticModel() instanceof ResponsibilityNode)) + return false; + + if (getRuntimeManager() == null || !getRuntimeManager().isActive()) + return false; + + setText(Messages.getString("org.isistan.flabot.engine.RunEngineAction.runEngineAt", ((ResponsibilityNode)part.getSemanticModel()).getName())); //$NON-NLS-1$ + return true; + + } + + private RuntimeManager getRuntimeManager() { + if (runtimeManager == null) { + List editparts = getSelectedObjects(); + PathNodeEditPart part = (PathNodeEditPart)editparts.get(0); + ResponsibilityNode responsibilityNode = + (ResponsibilityNode)part.getSemanticModel(); + + FlabotFileModel flabotFileModel = responsibilityNode.getMap() + .getCoreModel().getFile(); + // add the file model to the parameters map + Map parameters = new HashMap(2); + parameters.put(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, + flabotFileModel); + parameters.put(FlabotEngineLocator.PARAMETER_EXECUTION_INFO_MANAGER, + InterfacePluginEngine.getExecutionInfoManager(((FlabotGraphicalEditor)getWorkbenchPart()).getParent())); + + + // obtain a reference to the component locator manager + ComponentLocatorManager locatorManager = + FlabotPlugin.getDefault().getComponentLocatorManager(); + + try { + runtimeManager = (RuntimeManager) + locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, + parameters); + }catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.executionError"),e); //$NON-NLS-1$ + return null; + } + } + return runtimeManager; + } + + /** + * Executes the Fault Locator Engine. It also asks the user if want to change to FLABot Engine perspective. + */ + @Override + public void run() { + + List editparts = getSelectedObjects(); + PathNodeEditPart part = (PathNodeEditPart)editparts.get(0); + NodeVisualModel visualNode = part.getCastedModel(); + ResponsibilityNode responsibilityNode = + (ResponsibilityNode)part.getSemanticModel(); + // obtain the flabot file model parameter + FlabotFileModel flabotFileModel = responsibilityNode.getMap() + .getCoreModel().getFile(); + +// workaround to bypass the consistency dialog because of compatibility problems + //RunConsistencyCheckAction checkAction = new RunConsistencyCheckAction(getWorkbenchPart()); + // checkAction.setFlabotFileModel(flabotFileModel); + if(true){ //if (checkAction.isEnabled()) { + /* checkAction.run(); + if (checkAction.getExitValue() == SWT.CANCEL) + return; + + if (checkAction.getTotalErrrors() > 0) { + MessageDialog dlg = new MessageDialog( + Display.getCurrent().getActiveShell(), + Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogTitle"), //$NON-NLS-1$ + null, + Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogDescription"), //$NON-NLS-1$ + MessageDialog.ERROR, + new String[]{"Run anyway", "Cancel"}, //$NON-NLS-1$ + 0); + + if (dlg.open() == 0) + runEngine(flabotFileModel, responsibilityNode, visualNode.getDiagram().getCoreModel()); + + } else {*/ + runEngine(flabotFileModel, responsibilityNode, visualNode.getDiagram().getCoreModel()); + //} + } + } + + private void runEngine(FlabotFileModel flabotFileModel, + ResponsibilityNode responsibilityNode, CoreModel coreModel) { + openPerspective(); + + // add the file model to the parameters map + Map parameters = new HashMap(2); + parameters.put(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, + flabotFileModel); + parameters.put(FlabotEngineLocator.PARAMETER_EXECUTION_INFO_MANAGER, + InterfacePluginEngine.getExecutionInfoManager(((FlabotGraphicalEditor)getWorkbenchPart()).getParent())); + + // obtain a reference to the component locator manager + ComponentLocatorManager locatorManager = + FlabotPlugin.getDefault().getComponentLocatorManager(); + try { + // ask the locator manager to find a runtime manager reference + RuntimeManager runtimeManager = (RuntimeManager) + locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, + parameters); + // finally, add the execution info to the runtime manager + runtimeManager.addExecutionInfo(responsibilityNode, coreModel); + if (!runtimeManager.getReady()){ + runtimeManager.start(); + } + else + runtimeManager.setExecute(true); + } catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.engine.RunEngineAction.exceptionTryingToLocateTheFlabotEngine"), e); //$NON-NLS-1$ + } + } + + /** + * Asks the user if want to change to FLABot Engine perspective. + */ + private void openPerspective() { + if (perspective != getWorkbenchPart().getSite().getWorkbenchWindow().getActivePage().getPerspective()) { + boolean answer = MessageDialog.openQuestion( + Display.getCurrent().getActiveShell(), + Messages.getString("org.isistan.flabot.engine.RunEngineAction.switchPespective"), //$NON-NLS-1$ + Messages.getString("org.isistan.flabot.engine.RunEngineAction.perspectiveQuestion")); //$NON-NLS-1$ + + if (answer) + getWorkbenchPart().getSite().getWorkbenchWindow().getActivePage().setPerspective(perspective); + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.java new file mode 100755 index 0000000..4775a3a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/edit/ucmeditor/actions/TreatFailureAction.java @@ -0,0 +1,56 @@ +/** * $Id: TreatFailureAction.java,v 1.4 2006/03/29 20:41:51 dacostae Exp $ * $Author: dacostae $ */ package org.isistan.flabot.edit.ucmeditor.actions; + +import java.util.LinkedList; import java.util.List; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPart; import org.isistan.flabot.coremodel.ResponsibilityNode; import org.isistan.flabot.edit.ucmeditor.editparts.ResponsibilityNodeEditPart; import org.isistan.flabot.engine.failurelocatedaction.FailureLocatedAction; import org.isistan.flabot.engine.failurelocatedaction.FailureLocatedActionLoader; import org.isistan.flabot.engine.messages.Messages; import org.isistan.flabot.util.problems.MessageAccumulator; import org.isistan.flabot.util.problems.log.LoggerMessageAccumulator; /** + * @author $Author: dacostae $ + * + */ +public class TreatFailureAction extends SelectionAction { + + public static final String + TREAT_FAILURE_ACTION = "TREAT_FAILURE_ACTION"; //$NON-NLS-1$ + + public TreatFailureAction(IWorkbenchPart part) { + super(part); + setId(TREAT_FAILURE_ACTION); + setText(Messages.getString("org.isistan.flabot.edit.ucmeditor.actions.TreatFailureAction.text")); //$NON-NLS-1$ + } + + @Override protected boolean calculateEnabled() { + return canPerformAction(); + } + + private boolean canPerformAction() { + List parts = getSelectedObjects(); + for (Object part : parts) { + if(part instanceof ResponsibilityNodeEditPart) { + return true; + } + } + return false; + } + + + private ResponsibilityNode[] getResponsibilityNodes() { + List parts = getSelectedObjects(); + List responsibilityNodes=new LinkedList(); + for (Object part : parts) { + if(part instanceof ResponsibilityNodeEditPart) { + ResponsibilityNodeEditPart responsibilityNodeEditPart= + (ResponsibilityNodeEditPart)part; + ResponsibilityNode responsibilityNode= + (ResponsibilityNode)responsibilityNodeEditPart.getSemanticModel(); + responsibilityNodes.add(responsibilityNode); + } + } + return responsibilityNodes.toArray(new ResponsibilityNode[responsibilityNodes.size()]); + } + + @Override public void run() { + ResponsibilityNode[] responsibilityNodes = getResponsibilityNodes(); + MessageAccumulator messageAccumulator=new LoggerMessageAccumulator(); + FailureLocatedAction[] actions= FailureLocatedActionLoader.getUserSelectedFailureLocatedActions(Display.getCurrent().getActiveShell(), messageAccumulator); + for (FailureLocatedAction action : actions) { for (ResponsibilityNode responsibilityNode : responsibilityNodes) { + action.execute(responsibilityNode, responsibilityNode.getRole(), messageAccumulator); + } } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePerspectiveFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePerspectiveFactory.java new file mode 100755 index 0000000..34d35a4 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePerspectiveFactory.java @@ -0,0 +1,43 @@ +/** + * $Id: EnginePerspectiveFactory.java,v 1.3 2006/03/22 22:13:05 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IPerspectiveFactory; + +/** + * Eclipse perspective that can be used when executing the Fault Locator Engine. + * + * @author usuario + * + */ +public class EnginePerspectiveFactory implements IPerspectiveFactory { + + /* (non-Javadoc) + * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout) + */ + public void createInitialLayout(IPageLayout layout) { + layout.createPlaceholderFolder("org.isistan.flabot.engine.perspective.topPlaceholderFolder", IPageLayout.TOP, 0.55f, IPageLayout.ID_EDITOR_AREA); //$NON-NLS-1$ + + IFolderLayout mapView = layout.createFolder("org.isistan.flabot.engine.perspective.topPlaceholderFolder.left", IPageLayout.LEFT, 0.50f, "org.isistan.flabot.engine.perspective.topPlaceholderFolder"); //$NON-NLS-1$ //$NON-NLS-2$ + IFolderLayout sequenceView = layout.createFolder("org.isistan.flabot.engine.perspective.topPlaceholderFolder.right", IPageLayout.RIGHT, 0.50f, "org.isistan.flabot.engine.perspective.topPlaceholderFolder"); //$NON-NLS-1$ //$NON-NLS-2$ + mapView.addView("org.isistan.flabot.engine.mapview"); //$NON-NLS-1$ + sequenceView.addView("org.isistan.flabot.engine.sequenceview"); //$NON-NLS-1$ + + layout.addView("org.isistan.flabot.engine.controlview", IPageLayout.RIGHT, 0.50f, IPageLayout.ID_EDITOR_AREA); //$NON-NLS-1$ + + layout.addShowViewShortcut("org.isistan.flabot.engine.controlview"); //$NON-NLS-1$ + layout.addShowViewShortcut("org.isistan.flabot.engine.mapview"); //$NON-NLS-1$ + layout.addShowViewShortcut("org.isistan.flabot.engine.sequenceview"); //$NON-NLS-1$ + layout.addShowViewShortcut("org.eclipse.pde.runtime.LogView"); //$NON-NLS-1$ + layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); + + layout.addPerspectiveShortcut("org.isistan.flabot.editor.perspective"); //$NON-NLS-1$ + layout.addPerspectiveShortcut("org.eclipse.jdt.ui.JavaPerspective"); //$NON-NLS-1$ + layout.addPerspectiveShortcut("org.eclipse.debug.ui.DebugPerspective"); //$NON-NLS-1$ + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePlugin.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePlugin.java new file mode 100755 index 0000000..53e293a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/EnginePlugin.java @@ -0,0 +1,103 @@ +package org.isistan.flabot.engine; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngineLocator; +import org.isistan.flabot.engine.locator.FlabotEngineLocator; +import org.isistan.flabot.util.log.DefaultLogStatusCodes; +import org.isistan.flabot.util.log.EclipsePlatformLogger; +import org.isistan.flabot.util.log.LogStatusCodes; +import org.osgi.framework.BundleContext; +import org.slf4j.Logger; + +/** + * The main plugin class to be used in the desktop. + */ +public class EnginePlugin extends AbstractUIPlugin { + + /** + * This plugin's id + */ + public static final String SYMBOLIC_NAME = "org.isistan.flabot.engine"; //$NON-NLS-1$ + + + //The shared instance. + private static EnginePlugin plugin; + + /** + * This plugin's logger + */ + private Logger logger; + + /** + * The constructor. + */ + public EnginePlugin() { + plugin = this; + } + + /** + * This method is called upon plug-in activation + */ + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + + // initialize locator + FlabotPlugin.getDefault().getComponentLocatorManager() + .registerLocator(FlabotEngineLocator.LOCATOR_ID, + new FlabotEngineLocator()); + + // trace inference javalog engine locator + FlabotPlugin.getDefault().getComponentLocatorManager() + .registerLocator(TraceInferenceJavalogEngineLocator.LOCATOR_ID, + new TraceInferenceJavalogEngineLocator()); + } + + /** + * This method is called when the plug-in is stopped + */ + @Override + public void stop(BundleContext context) throws Exception { + super.stop(context); + plugin = null; + } + + /** + * Returns the shared instance. + */ + public static EnginePlugin getDefault() { + return plugin; + } + + /** + * Returns an image descriptor for the image file at the given + * plug-in relative path. + * + * @param path the path + * @return the image descriptor + */ + public static ImageDescriptor getImageDescriptor(String path) { + return AbstractUIPlugin.imageDescriptorFromPlugin(SYMBOLIC_NAME, path); + } + + /** + * Returns the plugin's logger + * @return + */ + public Logger getLogger() { + if (logger == null) { + logger = new EclipsePlatformLogger(this, EnginePlugin.SYMBOLIC_NAME, getLogStatusCodes()); + } + return logger; + } + + /** + * Returns the plugin's LogStatusCodes + * @return + */ + public LogStatusCodes getLogStatusCodes() { + return DefaultLogStatusCodes.getInstance(); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/ExtensionPointConstants.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/ExtensionPointConstants.java new file mode 100755 index 0000000..0b8bb95 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/ExtensionPointConstants.java @@ -0,0 +1,50 @@ +package org.isistan.flabot.engine; + + +/** + * Constants for provided extension points + * @author $Author: dacostae $ + * + */ +public interface ExtensionPointConstants { + + + /** + * Prefix for every extension-point's id + */ + public static final String PREFIX = EnginePlugin.SYMBOLIC_NAME + "."; + + /** + * Extension-point for the failure located actions + */ + public static final String FAILURE_LOCATED_ACTION = + PREFIX +"failureLocatedAction"; + + public static final String FAILURE_LOCATED_ACTION__ACTION_TAG = "action"; + public static final String FAILURE_LOCATED_ACTION__NAME_ATTRIBUTE = "name"; + public static final String FAILURE_LOCATED_ACTION__DESCRIPTION_ATTRIBUTE = "description"; + public static final String FAILURE_LOCATED_ACTION__ICON_ATTRIBUTE = "icon"; + public static final String FAILURE_LOCATED_ACTION__CLASS_ATTRIBUTE = "class"; + + /** + * Extension-point for the strategy UI combo box + */ + public static final String STRATEGY_UI_COMBO_BOX = + PREFIX +"strategyUIComboBox"; + + public static final String STRATEGY_UI_COMBO_BOX_ACTION_TAG = "action"; + public static final String STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE = "class"; + + public static final String PROLOG_STRATEGY_UI_COMBO_BOX = + PREFIX +"prologStrategyUIComboBox"; + + public static final String PROLOG_STRATEGY_UI_COMBO_BOX_ACTION_TAG = "action"; + public static final String PROLOG_STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE = "class"; + + public static final String GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX = + PREFIX +"generalLogFilterStrategyUIComboBox"; + + public static final String GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX_ACTION_TAG = "action"; + public static final String GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE = "class"; + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfaceContextInfo.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfaceContextInfo.java new file mode 100755 index 0000000..285cd16 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfaceContextInfo.java @@ -0,0 +1,18 @@ +/** + * $Id: InterfaceContextInfo.java,v 1.5 2006/03/16 20:28:04 apersson Exp $ + */ + +package org.isistan.flabot.engine; + +/** + * @author $Author: apersson $ + */ + +public interface InterfaceContextInfo { + public static final String INSTANCE = "INSTANCE"; + public static final String PRE_INSTANCE = "PRE_INSTANCE"; + public static final String EVENT = "EVENT"; + public static final String CONDITION = "CONDITION"; + public static final String PRE_RESPONSIBILITY = "PRE_RESPONSIBILITY"; + public static final String PRE_RESPONSIBILITY_NODE = "PRE_RESPONSIBILITY_NODE"; +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfacePluginEngine.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfacePluginEngine.java new file mode 100755 index 0000000..876673b --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/InterfacePluginEngine.java @@ -0,0 +1,24 @@ +package org.isistan.flabot.engine; + +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; + +/** + * @author $Author: franco $ + */ + +public abstract class InterfacePluginEngine { + + public static final String PLUGIN_ENGINE_NAME = "org.isistan.flabot.engine"; //$NON-NLS-1$ + public static final String PLUGIN_ENGINE_MANAGER_INFO_EXECUTION = "PLUGIN_ENGINE_MANAGER_INFO_EXECUTION"; //$NON-NLS-1$ + + public static ExecutionInfoManager getExecutionInfoManager(FlabotMultiPageEditor editor){ + ExecutionInfoManager manager = (ExecutionInfoManager)editor.getExtendedData(InterfacePluginEngine.PLUGIN_ENGINE_NAME, InterfacePluginEngine.PLUGIN_ENGINE_MANAGER_INFO_EXECUTION); + if (manager==null){ + manager = ExecutionmodelFactory.eINSTANCE.createExecutionInfoManager(); + editor.putExtendedData(InterfacePluginEngine.PLUGIN_ENGINE_NAME, InterfacePluginEngine.PLUGIN_ENGINE_MANAGER_INFO_EXECUTION, manager); + } + return manager; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaLogEngine.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaLogEngine.java new file mode 100755 index 0000000..4d40cd6 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaLogEngine.java @@ -0,0 +1,425 @@ +/** + * $Id: JavaLogEngine.java,v 1.17 2006/03/22 03:28:54 franco Exp $ + */ + +package org.isistan.flabot.engine; + +import java.io.BufferedReader; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.net.URL; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import org.eclipse.core.runtime.Platform; +import org.isistan.flabot.util.javalog.JavalogUtil; + +import JavaLog.Brain; +import JavaLog.JMain; +import JavaLog.LogicKnowledge; +import JavaLog.LogicModule; +import JavaLog.PlClause; +import JavaLog.PlException; +import JavaLog.PlFVar; +import JavaLog.PlList; +import JavaLog.PlLocalLogicModule; +import JavaLog.PlObject; +import JavaLog.PlParser; +import JavaLog.PlStruct; +import JavaLog.PlStructArgs; +import JavaLog.PlUVar; + +import com.objectspace.jgl.SList; + + +/** + * @author $Author: franco $ + */ + +public class JavaLogEngine +{ + + private Hashtable logicModules = new Hashtable(); + private LogicKnowledge actualLogicModule; + private LogicKnowledge stateLogicModule; + //private SystemFactory systemFactory; + + //-- Instance Variables + private Brain engine; + + private JMain gui = null; + + //---- Constructor(s) + public JavaLogEngine() throws IOException, PlException + { + URL relativeURL = Platform.getPlugin("org.isistan.javalog").getBundle().getEntry("/"); + URL localURL = Platform.asLocalURL(relativeURL); + String pathJavalog = localURL.getPath(); + System.setProperty( "java.class.path",System.getProperty("java.class.path")+File.pathSeparator+pathJavalog+File.separator+"lib"+File.separator+"JavaLog"+File.separator+"web"+File.separator+"WEB-INF"+File.separator+"classes"+File.separator); + engine = new Brain(); + stateLogicModule = new LogicKnowledge(engine,"",0); + stateLogicModule.active(); + stateLogicModule.enable(); + } + + public void loadLogicModule(String logicModuleFileName) throws IOException { + LogicKnowledge lk = new LogicKnowledge(engine, loadModule(logicModuleFileName)); + engine.addKnowledge(lk); + logicModules.put(logicModuleFileName, lk); + lk.disable(); + } + + public void changeLogicModule (String logicModule){ + if (actualLogicModule != null) + actualLogicModule.disable(); + actualLogicModule = (LogicKnowledge) logicModules.get(logicModule); + if (actualLogicModule != null) { + actualLogicModule.active(); + actualLogicModule.enable(); + } + } + + /** + * Agrega al motor de prolog el código especificado en la variable prologCode + * @param prologCode código prolog a agregar + * @return true si pudo agregar el código prolog. + * false en caso contrario + * @throws PlException + */ + public boolean assertString(String prologCode) throws PlException{ + engine.call("assert("+prologCode+")."); + return true; + } + + public void runGUI(){ + this.gui.run(); + } + + //-- Instance Methods + + public JMain runInspectionGui(){ + gui.run(); + return (gui); + } + + public boolean queryGoals(String query) throws PlException{ + boolean ok = engine.call(query); + return (ok); + } + + public void reset() throws IOException, PlException{ + engine = new Brain(); + logicModules = new Hashtable(); + actualLogicModule = null; + stateLogicModule = new LogicKnowledge(engine,""); + stateLogicModule.disable(); + + } + + public Vector getEventFor(String responsibilityID) throws PlException{ + String query = "getEvents("+responsibilityID+",Result)."; + Vector ret = null; + + if(this.queryGoals(query)){ + ret = new Vector(); + Hashtable result = this.engine.goal().state(); + PlList list = (PlList)result.get("Result"); + System.out.println("El valor es "+list.toString()); + PlObject [] objects = list.toArray(); + if(objects!=null) + for (int i = 0; i < objects.length; i++) { + ret.addElement(((PlStructArgs)objects[i]).argument(0).toString()); + } + } + return ret; + + } + + + public String formatJavalogList(PlList list) + { + PlObject[] objects = list.toArray(); + String temp = ""; + String result = ""; + if (objects == null) + return (""); + for (int i = 0; i < objects.length; i++) + { + if (objects[i] instanceof PlList) + { + temp = this.formatJavalogList((PlList)objects[i]); + result = result + temp; + } + else + result = result + objects[i].toString(); + if (i < objects.length-1) + result = result + ","; + } + //System.out.println("FORMATING.. "+result); + return (result); + } + + public LogicModule javalogDatabase() + { + return (engine.database()); + } + + public PlParser javalogParser() + { + return (engine.parser()); + } + + public PlClause parseClause(String s) throws PlException{ + return (this.javalogParser().clause(new StringReader(s))); + } + + public void parseStruct(String struct) throws PlException{ + this.engine.builtIns()[0].builtIn("assert",new Object[]{engine.parser().clause("found("+struct+").")}); + } + + /** + * Transforma una lista prolog en un vector que contiene los + * elementos + * @param prologList PlList lista prolog + * @return Vector vector con los elementos + */ + + public static Vector getVectorFromList(PlList prologList){ + if (prologList == null) + return null; + Vector ret = new Vector(); + PlList tmp = prologList; + while(!tmp.equals(PlList.empty())){ + ret.addElement(tmp.car()); + tmp = (PlList)tmp.cdr(); + } + return ret; + } + + public Object executeQuery (String query, String parameter) throws PlException{ + if(this.queryGoals(query)){ + Hashtable result = this.engine.goal().state(); + return result.get(parameter); + } + return null; + } + + /** + * Execute the given query with the given java objects and then return the + * resulting value for the specified parameter + * @param query the prolog query + * @param objects the java objects that parametrize the query + * @param parameter the name of the parameter whose value must be returned + * @return the resulting value of the specified parameter + */ + public Object executeQuery(String query, Object[] objects, String parameter) { + stateLogicModule.enable(); + if (engine.answerQuery(query, objects)) { + Map result = engine.answer(); + return result.get(parameter); + } + stateLogicModule.disable(); + return null; + } + + public Hashtable executeQuery (String query) throws PlException{ + if(this.queryGoals(query)){ + return this.engine.goal().state(); + } + return null; + } + + + +/** + * Evalua el findAll y arma todos los valores que cumplan con la condicion expresada + * en condition de forma (o con la estructura) que lo especifica el + * parametro structure + * @param structure estructura que relaciona los elementos a ser extraidos + * @param condition condicion que tienen que cumplir las variables que sean retornadas + * @return Vector contiene las estrucuturas que fueron armadas y cumplen con a condicion. + * @throws PlException + */ + public Vector evaluateFindAll(String structure, String condition) throws PlException{ + + String query = "findall("+structure+"," + condition +",List)."; + Vector ret = null; + boolean okFindall = this.queryGoals(query); + if(okFindall){ + ret = new Vector(); + System.out.println("el query fue: "+okFindall); + Hashtable result = this.engine.goal().state(); + PlList list = (PlList)result.get("List"); + System.out.println("El valor es "+list.toString()); + PlObject [] objects = list.toArray(); + for (int i = 0; i < objects.length; i++) { + ret.addElement(objects[i]); + } + } + return ret; + + } + + private String loadModule(String file) throws IOException { + File archivo = new File(file); + String hechos = new String(); + DataInputStream in = new DataInputStream(new FileInputStream(archivo)); + BufferedReader buff = new BufferedReader( new InputStreamReader(in)); + String s = buff.readLine(); + while (s!=null) { + s.trim(); + hechos = hechos + s + "\n"; + s=buff.readLine(); + } + buff.close(); + return hechos; + } + + public void sendObjectPostMessage() throws IOException, ClassNotFoundException { + FileOutputStream fos = new FileOutputStream("filename.lks"); + DataOutputStream out = new DataOutputStream(fos); + out.writeUTF(getRules(actualLogicModule)); + out.flush(); + out.close(); + } + + public void getObjectPostMessage() throws IOException { + FileInputStream fis = new FileInputStream("filename.lks"); + DataInputStream ois = new DataInputStream(fis); + stateLogicModule = new LogicKnowledge (engine,ois.readUTF()); + engine.addKnowledge(stateLogicModule); + stateLogicModule.active(); + stateLogicModule.enable(); + } + + public void assertRule (String rule){ + actualLogicModule.disable(); + stateLogicModule.active(); + stateLogicModule.enable(); + rule += "."; + stateLogicModule.addPrivate(JavalogUtil.INSTANCE.mkClause(engine.parser().eQuery(rule))); + //stateLogicModule.disable(); + actualLogicModule.active(); + actualLogicModule.enable(); + } + + + public void retractRule (String rule) { + actualLogicModule.disable(); + stateLogicModule.active(); + stateLogicModule.enable(); + rule += "."; + removeEquals(JavalogUtil.INSTANCE.mkClause(engine.parser().eQuery(rule))); + //stateLogicModule.disable(); + actualLogicModule.active(); + actualLogicModule.enable(); + } + + private String getRules(LogicModule state){ + String rules = state.toString(); + String temp=""; + for (int i=0; i 0)// Borrar las que hacen match + { + SList auxb = bucket; + Enumeration e = auxb.elements(); + PlClause clause = null; + while (e.hasMoreElements()) { + clause = (PlClause) e.nextElement(); + if (clause.head().functor().equals(functor) && unify(clause,plc)) + bucket.remove(clause); + } + } + } + } + + public String getStateLogicModule(){ + return stateLogicModule.toString(); + } + + public void setStateLogicModule(String module, boolean redefineState) throws PlException, IOException, ClassNotFoundException{ + boolean existsModule = false; + String key=""; + PlLocalLogicModule value=null; + for (Enumeration e=engine.database().getModules().keys(); e.hasMoreElements();) { + key = (String)e.nextElement(); + value = (PlLocalLogicModule)engine.database().getModules().get(key); + if (stateLogicModule.equals(value.module())){ + existsModule = true; + break; + } + + } + if (redefineState){ + stateLogicModule = new LogicKnowledge(engine,"",0); + } + stateLogicModule.disable(); + List clauses = JavalogUtil.INSTANCE.splitClauses(module); + for (int i=0; i < clauses.size(); i++){ + stateLogicModule.add(JavalogUtil.INSTANCE.mkClause(engine.parser().eQuery((String)clauses.get(i)))); + } + if (!existsModule){ + engine.addKnowledge(stateLogicModule); + } + else{ + PlLocalLogicModule moduleToInsert = new PlLocalLogicModule(value.head(),stateLogicModule); + engine.database().getModules().put(key,moduleToInsert); + } + stateLogicModule.active(); + stateLogicModule.enable(); + } + + public Brain getBrain() { + return engine; + } + } + + + + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaRuntime.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaRuntime.java new file mode 100755 index 0000000..b0b246e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/JavaRuntime.java @@ -0,0 +1,163 @@ +/** + * $Id: JavaRuntime.java,v 1.17 2006/04/12 21:09:46 apersson Exp $ + */ + +package org.isistan.flabot.engine; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.commands.AnalyzeCommand; +import org.isistan.flabot.engine.commands.AnalyzeConstraintCommand; +import org.isistan.flabot.engine.commands.AnalyzeDefaultCommand; +import org.isistan.flabot.engine.commands.AnalyzeMappingCommand; +import org.isistan.flabot.engine.commands.AnalyzePostConstraintCommand; +import org.isistan.flabot.engine.commands.AnalyzePostDefaultCommand; +import org.isistan.flabot.engine.commands.AnalyzePostMappingCommand; +import org.isistan.flabot.engine.commands.Command; +import org.isistan.flabot.engine.commands.EvaluateAndJoinCommand; +import org.isistan.flabot.engine.commands.EvaluateCommand; +import org.isistan.flabot.engine.commands.EvaluateDefaultCommand; +import org.isistan.flabot.engine.commands.EvaluateOrJoinCommand; +import org.isistan.flabot.engine.commands.EvaluatePostAndJoinCommand; +import org.isistan.flabot.engine.commands.EvaluatePostMappingStubCommand; +import org.isistan.flabot.engine.commands.EvaluatePostOrJoinCommand; +import org.isistan.flabot.engine.commands.EvaluatePostStubCommand; +import org.isistan.flabot.engine.commands.EvaluateMappingAndConstraintCommand; +import org.isistan.flabot.engine.commands.EvaluateStubCommand; +import org.isistan.flabot.engine.commands.SituationCommand; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class JavaRuntime { + + private ExecutionContext context; + private JavaLogEngine javaLogEngine; + private RuntimeManager runtimeManager; + private Loader loader; + private Hashtable commands; + public boolean stopStep = false; + private Command currentCommand; + + public JavaRuntime (SimplePathNode responsibility, int step, + ExecutionContext currentContext, JavaLogEngine javaLogEngine, + RuntimeManager runtimeManager, Loader loader){ + this.javaLogEngine = javaLogEngine; + this.runtimeManager = runtimeManager; + this.loader = loader; + context = currentContext; + context.setCurrentResponsibility(responsibility); + context.setCurrentStep(String.valueOf(step)); + commands = new Hashtable(); + loadCommands(); + } + + public JavaRuntime (SimplePathNode responsibility, int step, + String Family, ExecutionContext currentContext, + JavaLogEngine javaLogEngine, RuntimeManager runtimeManager, + Loader loader){ + this.javaLogEngine = javaLogEngine; + this.runtimeManager = runtimeManager; + this.loader = loader; + context = currentContext; + context.setCurrentResponsibility(responsibility); + context.setCurrentStep(String.valueOf(step)); + commands = new Hashtable(); + loadCommands(); + } + + public void run () throws PlException, IOException{ + currentCommand = chooseFirstCommand(); + while (currentCommand != null && !stopStep && context.getStopStep().equals("RUN")){ + currentCommand.setExecutionContext(this.context); + currentCommand.execute(this.context); + currentCommand = chooseCommand(); + } + } + + private Command chooseCommand() throws PlException, IOException{ + String query = "chooseCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentDependency()+",Result)."; + PlAtom command = (PlAtom) javaLogEngine.executeQuery(query,"Result"); + if (!command.toString().equals("'NULL'")) + return (Command)commands.get(command.toString()); + return null; + } + + private Command chooseFirstCommand() throws PlException, IOException{ + String query = "chooseFirstCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentDependency()+",Result)."; + PlAtom command = (PlAtom) javaLogEngine.executeQuery(query,"Result"); + if (!command.toString().equals("'NULL'")) + return (Command)commands.get(command.toString()); + return null; + } + + public Hashtable getCommands(){ + return commands; + } + + private void loadCommands(){ + Command analyzeCommand = new AnalyzeCommand(javaLogEngine, loader, this); + commands.put(analyzeCommand.getNameCommand(),analyzeCommand); + Command evaluateCommand = new EvaluateCommand(javaLogEngine,this); + commands.put(evaluateCommand.getNameCommand(),evaluateCommand); + Command situationCommand = new SituationCommand(javaLogEngine); + commands.put(situationCommand.getNameCommand(),situationCommand); + Command analyzeMappingCommand = new AnalyzeMappingCommand(runtimeManager); + commands.put(analyzeMappingCommand.getNameCommand(),analyzeMappingCommand); + Command analyzeConstraintCommand = new AnalyzeConstraintCommand(javaLogEngine, runtimeManager); + commands.put(analyzeConstraintCommand.getNameCommand(),analyzeConstraintCommand); + Command analyzeDefaultCommand = new AnalyzeDefaultCommand(runtimeManager); + commands.put(analyzeDefaultCommand.getNameCommand(),analyzeDefaultCommand); + Command evaluateDefaultCommand = new EvaluateDefaultCommand(javaLogEngine); + commands.put(evaluateDefaultCommand.getNameCommand(),evaluateDefaultCommand); + Command evaluateStubCommand = new EvaluateStubCommand(javaLogEngine,loader,runtimeManager); + commands.put(evaluateStubCommand.getNameCommand(),evaluateStubCommand); + Command analyzePostConstraintCommand = new AnalyzePostConstraintCommand(runtimeManager); + commands.put(analyzePostConstraintCommand.getNameCommand(),analyzePostConstraintCommand); + Command analyzePostDefaultCommand = new AnalyzePostDefaultCommand(runtimeManager); + commands.put(analyzePostDefaultCommand.getNameCommand(),analyzePostDefaultCommand); + Command analyzePostMappingCommand = new AnalyzePostMappingCommand(runtimeManager); + commands.put(analyzePostMappingCommand.getNameCommand(),analyzePostMappingCommand); + Command evaluatePostStubCommand = new EvaluatePostStubCommand(runtimeManager); + commands.put(evaluatePostStubCommand.getNameCommand(),evaluatePostStubCommand); + Command evaluatePostMappingStubCommand = new EvaluatePostMappingStubCommand(runtimeManager); + commands.put(evaluatePostMappingStubCommand.getNameCommand(),evaluatePostMappingStubCommand); + Command evaluateAndoJoinCommand = new EvaluateAndJoinCommand(runtimeManager,loader); + commands.put(evaluateAndoJoinCommand.getNameCommand(),evaluateAndoJoinCommand); + Command evaluatePostAndJoinCommand = new EvaluatePostAndJoinCommand(runtimeManager); + commands.put(evaluatePostAndJoinCommand.getNameCommand(),evaluatePostAndJoinCommand); + Command evaluateOrJoinCommand = new EvaluateOrJoinCommand(runtimeManager,loader); + commands.put(evaluateOrJoinCommand.getNameCommand(),evaluateOrJoinCommand); + Command evaluatePostOrJoinCommand = new EvaluatePostOrJoinCommand(runtimeManager); + commands.put(evaluatePostOrJoinCommand.getNameCommand(),evaluatePostOrJoinCommand); + Command evaluatePreconditionAndConstraintCommand = new EvaluateMappingAndConstraintCommand(javaLogEngine); + commands.put(evaluatePreconditionAndConstraintCommand.getNameCommand(),evaluatePreconditionAndConstraintCommand); + } + + public ExecutionContext getExecutionContext(){ + return context; + } + + public void stopStep(){ + stopStep = true; + } + + public boolean acceptStepByStep() throws PlException { + String query = "evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+")."; + Hashtable command = (Hashtable) javaLogEngine.executeQuery(query); + if (command!=null){ + return false; + } + return true; + } + + +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/Loader.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/Loader.java new file mode 100755 index 0000000..27bf359 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/Loader.java @@ -0,0 +1,364 @@ +/** + * $Id: Loader.java,v 1.19 2006/04/13 01:56:53 apersson Exp $ + */ +package org.isistan.flabot.engine; + +import java.io.IOException; +import java.util.Collections; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Vector; + +import org.eclipse.emf.common.util.EList; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.coremodel.CoreModel; +import org.isistan.flabot.coremodel.Family; +import org.isistan.flabot.coremodel.FamilyElement; +import org.isistan.flabot.coremodel.Path; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.coremodel.UseCaseMap; +import org.isistan.flabot.coremodel.impl.ConditionEventToConditionEventMapEntryImpl; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.PrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.TraceLogManager; +import org.isistan.flabot.engine.executionstate.TraceLogManagerException; +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngine; +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngineLocator; +import org.isistan.flabot.trace.log.TraceLog; +import org.isistan.flabot.util.javalog.JavalogUtil; +import org.isistan.flabot.util.locator.ComponentLocatorException; + +import JavaLog.PlException; + +/** +* @author $Author: apersson $ +*/ + +public class Loader { + + protected Hashtable diagnosticByIDResponsibilityID = new Hashtable(); + protected Hashtable responsibilitiesNodeById = new Hashtable(); + protected Hashtable componentsByID = new Hashtable(); + protected Hashtable eventsByID = new Hashtable(); + private Hashtable responsabilities = new Hashtable(); + + private JavaLogEngine javaLogEngine; + + TraceLog traceLog = null; + + public Loader(JavaLogEngine javaLogEngine) { + this.javaLogEngine = javaLogEngine; + } + + public void initJavaLogEngine(JavaLogEngine javaLogEngine) { + this.javaLogEngine = javaLogEngine; + } + + public void generatePrologCode(ResponsibilityNode responsibilityNode, CoreModel Model) throws PlException, IOException{ + loadResponsabilities(Model); + loadComponents(Model); + loadFamilies(Model); + loadIntances(Model); + loadTraceLog(); + loadGeneralLogFilter(Model); + loadEvents(Model); + } + + private void loadComponents(CoreModel model) { + for (int i=0; i rules = JavalogUtil.INSTANCE.splitClauses(generalLogFilterStrategy.getPrologCode()); + for (String rule: rules) + { + engine.assertString(rule.substring(0, rule.length()-1)); + } + } catch (TraceLogManagerException e) { + EnginePlugin.getDefault().getLogger().error( + "Error trying to obtain the current log.", e); + } catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + "Error locating the trace inference engine.", e); + } catch (PlException e) { + EnginePlugin.getDefault().getLogger().error( + "Error asserting general log filter prolog code.", e); + } + } + + public Hashtable getResponsibilitiesNodeByID(){ + return responsibilitiesNodeById; + } + + public Hashtable getComponentsByID(){ + return componentsByID; + } + + public Hashtable getEventsByID(){ + return eventsByID; + } + + public Hashtable getDiagnosticByResponsibility(){ + return diagnosticByIDResponsibilityID; + } + + private void loadResponsabilities (CoreModel Model) throws PlException, IOException{ + for (int i=0; i < Model.getUseCaseMaps().size(); i++){ + UseCaseMap UCM = (UseCaseMap) Model.getUseCaseMaps().get(i); + for (int j=0; j < UCM.getPaths().size(); j++){ + responsabilities = new Hashtable(); + Path path = (Path) UCM.getPaths().get(j); + for (int k=0; k < path.getEndNodes().size(); k++){ + generateResponsabilities((SimplePathNode)path.getEndNodes().get(k), UCM.getID()); + } + } + } + } + + /** + * Generate the prolog code for each responsibility in the path + * @param node + * @param nameUCM + * @throws PlException + * @throws IOException + */ + private void generateResponsabilities (SimplePathNode node, String nameUCM) throws PlException, IOException{ + SimplePathNode intialNode = getPrevious (node); + responsabilities.put(intialNode,intialNode); + putPrologCode(intialNode.getPrologCode(responsabilities)); + Object key; + SimplePathNode value; + for (Enumeration e=responsabilities.keys(); e.hasMoreElements();) { + key = e.nextElement(); + value = (SimplePathNode)responsabilities.get(key); + storeInHashMap(value); + } + } + + public static SimplePathNode getPrevious (SimplePathNode node){ + if (node instanceof ResponsibilityNode || node instanceof StubNode){ + return (node); + } + else + if (node.uGetPrevious().size() > 0){ + return getPrevious ((SimplePathNode)node.uGetPrevious().get(0)); + } + else { + return null; + } + } + + public static SimplePathNode getNext (SimplePathNode node){ + if (node instanceof ResponsibilityNode || node instanceof StubNode){ + return (node); + } + else + if (node.uGetNext().size() > 0){ + return getNext ((SimplePathNode)node.uGetNext().get(0)); + } + else { + return null; + } + } + + /** + * Add the prolog code to Engine Prolog + * @param code + * @throws PlException + * @throws IOException + */ + private void putPrologCode (String code) throws PlException, IOException{ + javaLogEngine.queryGoals(code); + } + + private void putPrologCode (Vector code) throws PlException, IOException{ + for (int i=0; i < code.size(); i++){ + javaLogEngine.queryGoals((String)code.get(i)); + } + } + + private void storeInHashMap(SimplePathNode node){ + if (node instanceof ResponsibilityNode){ + Responsibility responsibility = ((ResponsibilityNode)node).getResponsibility(); + if (((ResponsibilityNode)node).getRole()!=null){ + componentsByID.put(((ResponsibilityNode)node).getRole().getID(),((ResponsibilityNode)node).getRole()); + } + } + responsibilitiesNodeById.put(node.getID(),node); + } + + /** + * Reset the Loader + * @param responsibilityNode + * @param Model + * @throws IOException + * @throws PlException + */ + public void reset (CoreModel Model) throws IOException, PlException{ + responsibilitiesNodeById.clear(); + componentsByID.clear(); + + PrologProviderStrategy strategy; + Iterator iterator = eventsByID.values().iterator(); + while (iterator.hasNext()) + { + strategy = ExecutionStateManager.getPrologProviderStrategy(iterator.next()); + strategy.resetProlog(); + } + eventsByID.clear(); + + GeneralLogFilterStrategy generalLogFilterStrategy = ExecutionStateManager.getGeneralLogFilterStrategy(Model.getFile()); + if (generalLogFilterStrategy != null) + { + generalLogFilterStrategy.resetProlog(); + } + + diagnosticByIDResponsibilityID.clear(); + loadResponsabilities(Model); + traceLog = null; + // free immediately the tracelog memory + System.gc(); + } + + /** + * Load the Families to Depedency Mappinps + * @param model + * @throws PlException + * @throws IOException + */ + private void loadFamilies(CoreModel model) throws PlException, IOException{ + EList list = model.getFamilies(); + for (int i=0; i < list.size(); i++){ + Family family = (Family)list.get(i); + EList familyElements = family.getFamilyElement(); + for (int j=0; j < familyElements.size(); j++){ + FamilyElement felement = (FamilyElement)familyElements.get(j); + String sentence = "assert(family("+family.getID()+","+felement.getFunctionalComponent().getID()+","+felement.getArchitecturalComponent().getID()+","+felement.getUseCaseMap().getID()+"))."; + putPrologCode(sentence); + } + ConditionEventToConditionEventMapEntryImpl key; + for (Iterator e=family.getEvents().iterator(); e.hasNext();) { + key = (ConditionEventToConditionEventMapEntryImpl)e.next(); + String sentence = "assert(familyEvent("+family.getID()+","+((ConditionEvent)key.getKey()).getID()+","+((ConditionEvent)key.getValue()).getID()+"))."; + putPrologCode(sentence); + } + EList respAssociated = family.getAssociatedResponsibilities(); + for (int k=0; k < respAssociated.size(); k++){ + String id = ((SimplePathNode)respAssociated.get(k)).getID(); + SimplePathNode node = ((SimplePathNode)respAssociated.get(k)); + if (node instanceof ResponsibilityNode){ + List preconditions = ((ResponsibilityNode)node).getResponsibility().getPreconditions(); + for (int j = 0; j < preconditions.size(); j++) { + Condition condition = (Condition)preconditions.get(j); + if (condition.getType().equals(Condition.mappingCondition)&&condition.getFamily().equals(family)){ + String sentence = "assert(responsibilityFamily("+id+","+condition.getDependencyResponsibility().getID()+","+family.getID()+"))."; + putPrologCode(sentence); + } + } + } + if (node instanceof StubNode){ + String sentence = "assert(responsibilityFamily("+id+","+((StubNode)node).getEndPointReference().getID()+","+family.getID()+"))."; + putPrologCode(sentence); + } + + } + } + } + + /** + * Load the intances for each Families + * @param model + * @throws PlException + * @throws IOException + */ + + private void loadIntances(CoreModel model) throws PlException, IOException { + for (Enumeration e=componentsByID.keys(); e.hasMoreElements();) { + String name = (String)e.nextElement(); + ComponentRole value = (ComponentRole)componentsByID.get(name); + if (value.getMap().getLevelInfo().equals(UseCaseMap.functionalLevel)){ + String query = "assert(instance("+value.getID()+","+value.getID()+","+value.getMap().getID()+"))."; + putPrologCode(query); + } + } + } + + private void loadEvents(CoreModel model) { + PrologProviderStrategy strategy; + for (int i=0; i < model.getEvents().size(); i++){ + ConditionEvent event = (ConditionEvent)model.getConditionEvents().get(i); + eventsByID.put(event.getID(),model.getConditionEvents().get(i)); + if (getTraceLog() != null) { + strategy = ExecutionStateManager.getPrologProviderStrategy(event); + assertTraceInferenceCode(strategy.getPrologCode(event)); + //String condition = event.getConditionEvent(); + //assertTraceInferenceCode(condition); + } + } + } + + private void assertTraceInferenceCode(String condition) { + try { + TraceInferenceJavalogEngine engine = getTraceInferenceEngine(); + List rules = JavalogUtil.INSTANCE.splitClauses(condition); + for (String rule: rules) { + engine.assertString(rule.substring(0, rule.length()-1)); + } + } catch (TraceLogManagerException e) { + EnginePlugin.getDefault().getLogger().error( + "Error trying to obtain the current log.", e); + } catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + "Error locating the trace inference engine.", e); + } catch (PlException e) { + EnginePlugin.getDefault().getLogger().error( + "Error asserting event prolog code.", e); + } + } + + private TraceInferenceJavalogEngine getTraceInferenceEngine() throws TraceLogManagerException, ComponentLocatorException { + TraceInferenceJavalogEngine engine = (TraceInferenceJavalogEngine) + FlabotPlugin.getDefault().getComponentLocatorManager().getComponent( + TraceInferenceJavalogEngineLocator.LOCATOR_ID, + Collections.singletonMap( + TraceInferenceJavalogEngineLocator.PARAMETER_TRACE_LOG, + traceLog + ) + ); + return engine; + } + + /** + * @return Returns the traceLog. + */ + public TraceLog getTraceLog() { + return traceLog; + } + + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/RuntimeManager.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/RuntimeManager.java new file mode 100755 index 0000000..aeb86cf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/RuntimeManager.java @@ -0,0 +1,577 @@ +/** + * $Id: RuntimeManager.java,v 1.59 2006/04/13 01:56:53 apersson Exp $ + * + */ + +package org.isistan.flabot.engine; + +import java.io.IOException; +import java.util.Hashtable; +import java.util.List; +import java.util.Vector; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.internal.Workbench; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.CoreModel; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.dialogs.ResultFaultLocatorEngineDialog; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.failurelocatedaction.FailureLocatedAction; +import org.isistan.flabot.engine.failurelocatedaction.FailureLocatedActionLoader; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.util.plugin.PluginUtils; +import org.isistan.flabot.util.problems.DefaultMessage; +import org.isistan.flabot.util.problems.MessageAccumulator; +import org.isistan.flabot.util.problems.MessageSeverity; +import org.isistan.flabot.util.problems.log.LoggerMessageAccumulator; + +import JavaLog.Brain; +import JavaLog.PlAtom; +import JavaLog.PlException; +import JavaLog.PlList; +import JavaLog.PlObject; +import JavaLog.PlStructArgs; + +/** + * @author $Author: apersson $ + * + */ + + public class RuntimeManager extends Thread{ + //--Constants + public static final String PrologFilename = PluginUtils.getPluginFolder(EnginePlugin.getDefault()) + "resource/LocatorMethod-Improved.pl"; + public static final String LogicModuleGeneral = PluginUtils.getPluginFolder(EnginePlugin.getDefault()) + "resource/LogicModuleGeneral.pl"; + public static final String LogicModuleConstraint = PluginUtils.getPluginFolder(EnginePlugin.getDefault()) + "resource/LogicModuleConstraint.pl"; + public static final String LogicModuleStub = PluginUtils.getPluginFolder(EnginePlugin.getDefault()) + "resource/LogicModuleStub.pl"; + + private ExecutionInfo currentExecutionInfo; + private JavaLogEngine javaLogEngine; + private Loader loader; + private SystemFactory systemFactory; + private Hashtable javaRuntimeToStep = new Hashtable(); + private ExecutionStep currentStep; + private boolean ready = false; + private boolean stepByStep = false; + private boolean execute; + private boolean stopExecution; + private boolean active = true; + private boolean activeToControl = true; + + private ExecutionInfoManager executionInfoManager; + + public void setExecutionInfo(ExecutionInfo currentExecutionInfo){ + this.currentExecutionInfo = currentExecutionInfo; + } + + public RuntimeManager(JavaLogEngine javaLogEngine, + Loader loader, SystemFactory systemFactory, ExecutionInfoManager executionInfoManager) throws IOException, PlException { + this.javaLogEngine = javaLogEngine; + this.loader = loader; + this.systemFactory = systemFactory; + this.executionInfoManager = executionInfoManager; + resetJavalog(); + } + + public synchronized void activedJavaRuntime (){ + synchronized(this){ + this.notify(); + } + } + + protected ExecutionInfoManager getExecutionInfoManager() { + return executionInfoManager; + } + + @Override + public void run(){ + while(true){ + active = false; + ExecutionStep step = (ExecutionStep)currentExecutionInfo.getExecutionSteps().get(0); + ExecutionContext context = step.getExecutionContext(); + String query = "runnedOK("+step.getExecutionContext().getCurrentResponsibility().getID()+","+step.getExecutionContext().getCurrentResponsibility().getID()+",Component,"+step.getExecutionContext().getEvent()+","+step.getExecutionContext().getCurrentFamily()+","+step.getExecutionContext().getCurrentResponsibility().getMap().getID()+","+step.getExecutionContext().getCurrentResponsibility().getMap().getID()+",ExecutionInfo,"+step.getExecutionContext().getCurrentStep()+",previous)."; + Object stateFirstNode = "'NotExecuted'"; + try { + javaLogEngine.setStateLogicModule(context.getPrologKnowledge(),false); + javaLogEngine.executeQuery(query); + activeToControl = false; + query = "responsibilityLog("+context.getCurrentResponsibility().getID()+",Instance,Component,Event,CurrentScenario,ExecutionInfo,"+ context.getCurrentStep()+")."; + stateFirstNode = javaLogEngine.executeQuery(query,"ExecutionInfo"); + activeToControl = true; + } catch (Exception e1) { + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e1); + } + ready=true; + execute = true; + stopExecution=false; + if (!stateFirstNode.toString().equals("'Executed'")){ + this.runSteps(); + } + else{ + query = "getInstance("+step.getExecutionContext().getCurrentResponsibility().getID()+",Family,Instance)."; + try { + Object instance = javaLogEngine.executeQuery(query,"Instance"); + query = "assertRule(faultyComponent("+step.getExecutionContext().getCurrentResponsibility().getID()+","+instance.toString()+",state(Family,"+stateFirstNode.toString()+",current)))."; + javaLogEngine.executeQuery(query); + currentExecutionInfo.getExecutionSteps().remove(step); + } catch (PlException e) { + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + } + if (!stopExecution){ + try{ + showResult(); + } + catch (Exception e){ + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + } + execute = false; + active = true; + while (!execute){ + try { + Thread.sleep(10); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + + public synchronized void runSteps (){ + try { + while(currentExecutionInfo.getExecutionSteps().size()>0){ + currentStep = (ExecutionStep) currentExecutionInfo.getExecutionSteps().get(currentExecutionInfo.getExecutionSteps().size()-1); + EList steps = currentExecutionInfo.getExecutionSteps(); + ExecutionContext context = currentStep.getExecutionContext(); + JavaRuntime currentJavaRuntime; + if (context.getStopStep().equals("RUN")){ + currentJavaRuntime = new JavaRuntime(context.getResponsibilityToExecute(),Integer.parseInt(context.getCurrentStep()),context.getCurrentFamily(),context, javaLogEngine, this, loader); + } + else{ + context.setStopStep("RUN"); + context.setResponsibilityToExecute(context.getPreResponsibility()); + currentJavaRuntime = new JavaRuntime(context.getCurrentResponsibility(),Integer.parseInt(context.getCurrentStep()),context.getCurrentFamily(),context, javaLogEngine, this, loader); + } + javaRuntimeToStep.put(currentStep,currentJavaRuntime); + synchronized(this){ + if (stepByStep && currentJavaRuntime.acceptStepByStep()){ + this.wait(); + } + } + if (execute){ + activeToControl = false; + currentJavaRuntime.run(); + activeToControl = true; + if (!currentJavaRuntime.stopStep&&context.getStopStep().equals("RUN")){ + // currentStep.getExecutionContext().setPrologKnowledge(javaLogEngine.getStateLogicModule()); + currentStep.setFinalState(getFinalState(currentStep.getTarget())); + steps.remove(currentStep); + } + } + } + } + catch (Exception e){ + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + + } + + + private ExecutionState getFinalState(SimplePathNode target) throws PlException { + String query = "faultyComponent("+target.getID()+",Instance,State)."; + PlStructArgs state = (PlStructArgs) javaLogEngine.executeQuery(query,"State"); + if (state!=null){ + String auxState = state.argument(1).toString().substring(1, state.argument(1).toString().length() - 1); + return ExecutionState.get(auxState); + } + return null; + } + + /** + * Add a new Execution Step at current Execution Information + * @param ExecutionContext + */ + + public void addExecutionStep(ExecutionContext context){ + + try { + context.setPrologKnowledge(javaLogEngine.getStateLogicModule()); + setInstanceComponent(context); + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + "Error adding a new Step in the execution of Fault Locator: {}\n",e); + } + + getExecutionInfoManager().getCurrentExecution().addExecutionStep(context, (Diagnostic)loader.getDiagnosticByResponsibility().get(context.getCurrentResponsibility().getID()), (Diagnostic)loader.getDiagnosticByResponsibility().get(context.getPreResponsibility().getID())); + setExecutionInfo(getExecutionInfoManager().getCurrentExecution()); + } + + private void setInstanceComponent(ExecutionContext context) throws PlException { + String query = "existsCurrentFamily(Family)."; + PlAtom family = (PlAtom)javaLogEngine.executeQuery(query,"Family"); + if (family!=null){ + query = "responsibilityOption("+context.getPreResponsibility().getID()+",ComponentType,CurrentScenario)."; + PlAtom component = (PlAtom)javaLogEngine.executeQuery(query,"ComponentType"); + if (context.getFamily().equals("Family")){ + query = "family("+family.toString()+",Instance,"+component.toString()+",CurrentScenario)."; + PlAtom instance = (PlAtom)javaLogEngine.executeQuery(query,"Instance"); + context.setInstanceComponentToTarget((ComponentRole)loader.getComponentsByID().get(instance.toString())); + } + else{ + query = "getComponentFamily("+family+","+context.getFamily()+","+component.toString()+", Instance)."; + PlAtom instance = (PlAtom)javaLogEngine.executeQuery(query,"Instance"); + if (instance!=null){ + context.setInstanceComponentToTarget((ComponentRole)loader.getComponentsByID().get(instance.toString())); + } + else{ + context.setInstanceComponentToTarget(null); + } + } + query = "responsibilityOption("+context.getCurrentResponsibility().getID()+",ComponentType,CurrentScenario)."; + component = (PlAtom)javaLogEngine.executeQuery(query,"ComponentType"); + if (context.getFamily().equals("Family")){ + query = "family("+family.toString()+",Instance,"+component.toString()+",CurrentScenario)."; + PlAtom instance = (PlAtom)javaLogEngine.executeQuery(query,"Instance"); + context.setInstanceComponentToSource((ComponentRole)loader.getComponentsByID().get(instance.toString())); + } + else{ + query = "getComponentFamily("+family+","+context.getFamily()+","+component+",Instance)."; + PlAtom instance = (PlAtom)javaLogEngine.executeQuery(query,"Instance"); + if (instance!=null) + context.setInstanceComponentToSource((ComponentRole)loader.getComponentsByID().get(instance.toString())); + } + } + else{ + context.setInstanceComponentToSource(null); + context.setInstanceComponentToTarget(null); + } + } + + public void addFirstExecutionStep(ExecutionContext context){ + try { + context.setPrologKnowledge(javaLogEngine.getStateLogicModule()); + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + "Error adding a new Step in the execution of Fault Locator: {}\n",e); + } + getExecutionInfoManager().getCurrentExecution().addExecutionStep(context,null,null); + setExecutionInfo(getExecutionInfoManager().getCurrentExecution()); + } + + /** + * Add a a new Execution Information + * @param responsibilityNode + * @param Model + */ + + public void addExecutionInfo(ResponsibilityNode responsibility,CoreModel coreModel){ + try { + loader.generatePrologCode(responsibility,coreModel); + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + "Error adding a new Execution in Fault Locator: {}\n",e); + } + ExecutionContext context = ExecutionmodelFactory.eINSTANCE.createExecutionContext(); + context.setPreResponsibility(responsibility); + context.setCurrentResponsibility(responsibility); + context.setCurrentDependency("[]"); + context.setDependencies("[]"); + + getExecutionInfoManager().addExecution(); + setExecutionInfo(getExecutionInfoManager().getCurrentExecution()); + addFirstExecutionStep(context); + } + + + /** + * Generate the current state for each responsibility based on a execution context + * @throws IOException + * @throws PlException + * @return Hashtable + */ + private Hashtable generatePartialResult() throws PlException, IOException{ + Hashtable stateByResponsibility = new Hashtable(); + String query = "getFinalResult(Result)."; + PlList list = (PlList)javaLogEngine.executeQuery(query,"Result"); + if (list != null) { + PlObject [] objects = list.toArray(); + if (objects!=null){ + for (int i = 0; i < objects.length; i++) { + PlStructArgs state = (PlStructArgs)((PlStructArgs) objects[i]).argument(3); + Object instance = (Object)((PlStructArgs) objects[i]).argument(1); + String auxState = state.argument(1).toString().substring(1, state.argument(1).toString().length() - 1); + Vector respAndInstance = new Vector(); + respAndInstance.add(ExecutionState.get(auxState)); + if (loader.getComponentsByID().containsKey(instance.toString())) + respAndInstance.add(loader.getComponentsByID().get(instance.toString())); + else + respAndInstance.add("None"); + stateByResponsibility.put((SimplePathNode)loader.getResponsibilitiesNodeByID().get(((PlStructArgs)objects[i]).argument(0).toString()),respAndInstance); + } + } + } + return stateByResponsibility; + } + + /** + * Reset the runtime manager + * @param responsibilityNode + * @param Model + * @throws IOException + * @throws PlException + */ + public void reset(CoreModel Model) throws IOException, PlException { + if (getExecutionInfoManager().getCurrentExecution() != null) + getExecutionInfoManager().getCurrentExecution().resetExecutionInfo(); + resetJavalog(); + loader.reset(Model); + } + + /** + * @throws IOException + * @throws PlException + */ + private void resetJavalog() throws IOException, PlException { + javaLogEngine.reset(); + Brain brain = javaLogEngine.getBrain(); + brain.call("assert(executionStateDialog($0)).",new Object[]{systemFactory}); + String path = PrologFilename; + System.out.println("path : "+ path); + System.out.println("Loading prolog file ... " + brain.consult(path)); + javaLogEngine.loadLogicModule(LogicModuleGeneral); + javaLogEngine.loadLogicModule(LogicModuleConstraint); + javaLogEngine.loadLogicModule(LogicModuleStub); + javaLogEngine.changeLogicModule(LogicModuleGeneral); + } + + public JavaLogEngine getJavaLogEngine(){ + return javaLogEngine; + } + + public ExecutionInfo getCurrentExecutionInfo(){ + return currentExecutionInfo; + } + + public Hashtable getJavaRuntimeToStep(){ + return javaRuntimeToStep; + } + + public void setCurrentStep (ExecutionStep step){ + this.currentStep = step; + } + + public void showResult() throws Exception{ + ResultsRunnable results= new ResultsRunnable(this); + Workbench.getInstance().getDisplay().syncExec(results); + } + + public void setExecute (boolean execute){ + this.execute = execute; + } + + public boolean isExecuting (){ + return execute; + } + + public void setStepByStep (boolean stepByStep){ + this.stepByStep = stepByStep; + } + + public boolean getStepByStep (){ + return stepByStep; + } + + public boolean getReady (){ + return ready; + } + + public void stopExecution(){ + stopExecution = true; + try { + this.getJavaLogEngine().setStateLogicModule("",true); + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + } + + public void setActiveRuntime(boolean state) { + this.active = state; + } + + public boolean isActive(){ + return active; + } + + public void playStep() { + if (this.activeToControl){ + if (this.getReady()){ + if (this.getStepByStep()&&this.isExecuting()){ + this.setStepByStep(false); + this.activedJavaRuntime(); + } + else if (this.isExecuting()){ + this.setStepByStep(false); + EList steps = this.getCurrentExecutionInfo().getExecutionSteps(); + executeStep((ExecutionStep)steps.get(steps.size()-1),true); + this.setExecute(true); + } + } + this.setStepByStep(false); + } + } + + public void rrStep() { + System.out.println("RR"); + } + + public void ffStep() { + if (activeToControl){ + if (this.getStepByStep() && this.isExecuting()){ + this.activedJavaRuntime(); + } + } + } + + public void stopStep() { + if (activeToControl){ + boolean isExecuting = this.isExecuting(); + this.setStepByStep(false); + if (this.getCurrentExecutionInfo()!=null&&this.isExecuting()){ + try { + this.setExecute(false); + EList steps = this.getCurrentExecutionInfo().getExecutionSteps(); + this.activedJavaRuntime(); + for (int i= steps.size()-1; i >= 0; i--){ + if (this.getJavaRuntimeToStep().get(steps.get(i))!=null) + ((JavaRuntime)this.getJavaRuntimeToStep().get(steps.get(i))).stopStep(); + if (i==0){ + this.reset(((ExecutionStep)steps.get(0)).getExecutionContext().getCurrentResponsibility().getMap().getCoreModel()); + } + steps.remove(i); + } + } catch (Exception e) { + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + this.stopExecution(); + + } + } + } + + public void pauseStep(boolean isChecked) { + if (isChecked){ + this.setStepByStep(true); + } + else{ + if (this.getStepByStep()&&this.isExecuting()){ + this.setStepByStep(false); + this.activedJavaRuntime(); + } + else + this.setStepByStep(false); + } + } + + public void rrToStep(ExecutionStep step) { + if (activeToControl){ + if (this.getReady()){ + if (this.isExecuting()&&this.getStepByStep()){ + EList steps = this.getCurrentExecutionInfo().getExecutionSteps(); + int index = steps.indexOf(step); + if (! (index == steps.size()-1)){ + executeStep(step,true); + } + this.activedJavaRuntime(); + } + } + } + } + + private void executeStep(ExecutionStep step, boolean deleteNextSteps){ + EList steps = this.getCurrentExecutionInfo().getExecutionSteps(); + int index = steps.indexOf(step); + step.getExecutionContext().setResponsibilityToExecute(step.getExecutionContext().getCurrentResponsibility()); + if (index-1<0){ + try{ + step.getExecutionContext().setPrologKnowledge(""); + this.getJavaLogEngine().setStateLogicModule("",true); + } + catch(Exception e){ + EnginePlugin.getDefault().getLogger().error( + "Error in the execution of Fault Locator: {}\n",e); + } + } + else{ + step.getExecutionContext().setPrologKnowledge(((ExecutionStep)steps.get(index-1)).getExecutionContext().getPrologKnowledge()); + try { + this.getJavaLogEngine().setStateLogicModule(step.getExecutionContext().getPrologKnowledge(),true); + } catch (Exception e) {} + } + for (int i=steps.size()-1; i > index; i--){ + if (this.getJavaRuntimeToStep().get(steps.get(i))!=null) + ((JavaRuntime)this.getJavaRuntimeToStep().get(steps.get(i))).stopStep(); + } + this.currentExecutionInfo.backToStep(step); + this.getJavaLogEngine().changeLogicModule(step.getExecutionContext().getCurrentLogicModule()); + this.setCurrentStep(step); + } + + private class ResultsRunnable implements Runnable { + private RuntimeManager manager; + + public ResultsRunnable(RuntimeManager manager) { + this.manager = manager; + } + + public void run() { + MessageAccumulator messageAccumulator=new LoggerMessageAccumulator(); + boolean failureLocatedActionsAvailable=FailureLocatedActionLoader.areFailureLocatedActions(); + ResultFaultLocatorEngineDialog dialog = new ResultFaultLocatorEngineDialog(new Shell(),failureLocatedActionsAvailable); + + try { + dialog.open(manager.generatePartialResult()); + } catch (PlException e) { + messageAccumulator.addMessage(new DefaultMessage( + EnginePlugin.getDefault(), EnginePlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, "Prolog exception", + "An exception occured in prolog.", + e)); + return; + } catch (IOException e) { + messageAccumulator.addMessage(new DefaultMessage( + EnginePlugin.getDefault(), EnginePlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, "IOException", + "An io exception occured.", + e)); + return; + } + + if (dialog.isTreatFailure()){ + FailureLocatedAction[] failureLocatedActions= + FailureLocatedActionLoader.getUserSelectedFailureLocatedActions(new Shell(), messageAccumulator); + List list = dialog.getResponsibilitieNodes(); + for (FailureLocatedAction failureLocatedAction : failureLocatedActions) { + for (Vector node : list) { + failureLocatedAction.execute((ResponsibilityNode)node.get(0), (ComponentRole)node.get(1), messageAccumulator); } + } + + } + } + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/SystemFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/SystemFactory.java new file mode 100755 index 0000000..605d8de --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/SystemFactory.java @@ -0,0 +1,183 @@ +/** + * $Id: SystemFactory.java,v 1.21 2006/03/30 02:42:26 apersson Exp $ + */ + +package org.isistan.flabot.engine; + +import java.io.IOException; +import java.util.HashMap; + +import javax.swing.JOptionPane; + +import org.eclipse.ui.internal.Workbench; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.executionmodel.impl.ExecutionContextImpl; + +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class SystemFactory { + + //private static SystemFactory instance = new SystemFactory(); + private static String CLAVE_VARIABLE="POP_"; + private JavaLogEngine javaLogEngine; + private RuntimeManager runtimeManager; + + /** + * Elimina las variables no congeladas dentro de un String + * @param origen String + * @return String + */ + public String preprocessVariable(String origen){ + String salida = ""; + for( int i = 0; i < origen.length(); i++) { + if ( ( (origen.charAt(i)==' ') || + (origen.charAt(i)=='(') || + (origen.charAt(i)==',') || + (origen.charAt(i)=='[') ) && ((i+1 < origen.length())&&(origen.charAt(i+1)=='_')) ) { + salida = salida + origen.charAt(i) + CLAVE_VARIABLE; + } + else{ + salida = salida + origen.charAt(i); + } + } + return salida; + } + + public String preprocessGoal(String origen) throws PlException, IOException{ + javaLogEngine.parseStruct(this.preprocessVariable(origen)); + return ""; + } + + private Loader loader; + + public SystemFactory(Loader loader, JavaLogEngine javaLogEngine) { + this.loader = loader; + this.javaLogEngine = javaLogEngine; + } + + public void initJavaLogEngine(JavaLogEngine javaLogEngine) { + this.javaLogEngine = javaLogEngine; + } + + public void setRuntimeManager(RuntimeManager runtimeManager) { + this.runtimeManager = runtimeManager; + } + + /** + * Método que retorna una instancia del manager de DOMs de manera de abstraer + * las posibles diferentes implementaciones a utilizar + * @return el manager de DOM's que corresponde + */ + public String getExecutionInfo(String preResponsibilityId, String responsibilityId,String instanceId, String preInstanceId,String eventId, String condition, String currentFamily){ + final HashMap context = new HashMap(); + + String currentFamilyID = ExecutionContextImpl.CURRENT_FAMILY_EDEFAULT; + if (currentFamily.trim().length() > 0 && !currentFamily.trim().equals("null")) + currentFamilyID = "'"+currentFamily+"'"; + + final SimplePathNode preResponsibilityNode = (SimplePathNode) loader.getResponsibilitiesNodeByID().get("'"+preResponsibilityId+"'"); + if (loader.getEventsByID().containsKey("'"+eventId+"'")) + context.put(InterfaceContextInfo.EVENT, ((ConditionEvent)loader.getEventsByID().get("'"+eventId+"'")).getName()); + else + context.put(InterfaceContextInfo.EVENT,"none"); + context.put(InterfaceContextInfo.PRE_RESPONSIBILITY,preResponsibilityId); + context.put(InterfaceContextInfo.PRE_RESPONSIBILITY_NODE,loader.getResponsibilitiesNodeByID().get("'"+preResponsibilityId+"'")); + + ComponentRole instanceRole = (ComponentRole)loader.getComponentsByID().get("'"+instanceId.toString()+"'"); + context.put(InterfaceContextInfo.INSTANCE, instanceRole); + + ComponentRole preInstanceRole = (ComponentRole)loader.getComponentsByID().get("'"+preInstanceId.toString()+"'"); + context.put(InterfaceContextInfo.PRE_INSTANCE, preInstanceRole); + + context.put(InterfaceContextInfo.CONDITION,condition); + + final ResponsibilityNode responsibilityNode = (ResponsibilityNode)loader.getResponsibilitiesNodeByID().get("'"+responsibilityId+"'"); + + //Creates the evaluation step + EvaluationStep evaluationStep = ExecutionmodelFactory.eINSTANCE.createEvaluationStep(); + evaluationStep.setSource(preResponsibilityNode); + evaluationStep.setTarget(responsibilityNode); + evaluationStep.setCondition(condition); + evaluationStep.setCurrentFamily(currentFamilyID); + + //Notifies that the evaluation has started. + runtimeManager.getCurrentExecutionInfo().startEvaluatingNode(evaluationStep); + + //Evaluation + GetStateRunnable state= new GetStateRunnable(responsibilityNode,context); + Workbench.getInstance().getDisplay().syncExec(state); + loader.getDiagnosticByResponsibility().put("'"+preResponsibilityId+"'",state.getDiagnostic()); + + //Notifies that the evaluation has ended. + runtimeManager.getCurrentExecutionInfo().finishEvaluatingNode(evaluationStep); + + return state.getState(); + } + + + public String assertRule (String rule) throws IOException, PlException{ + javaLogEngine.assertRule(rule); + return "_"; + } + + public String retractRule (String rule) throws IOException, PlException{ + javaLogEngine.retractRule(rule); + return "_"; + } + + /** + * Crea una ventana de diálogo informado la información de log expresada + * @param String + * @return String + */ + public String showLogInfo(String info){ + JOptionPane.showConfirmDialog(null,info,"Log information",JOptionPane.WARNING_MESSAGE); + System.out.println("--------------------------------------------------------------------------------------------" ); + System.out.println("----------------------------------------Information-----------------------------------------" ); + System.out.println("--------------------------------------------------------------------------------------------" ); + System.out.println(info); + System.out.println("--------------------------------------------------------------------------------------------" ); + System.out.println("--------------------------------------------------------------------------------------------" ); + System.out.println("--------------------------------------------------------------------------------------------" ); + return info; + + } + + private class GetStateRunnable implements Runnable { + + + private ResponsibilityNode responsibilityNode; + private HashMap context; + private Diagnostic diagnostic; + + public GetStateRunnable(ResponsibilityNode node, HashMap context) { + this.responsibilityNode = node; + this.context = context; + } + + public void run() { + diagnostic = ExecutionStateManager.getState(responsibilityNode,context, loader); + } + + public String getState(){ + return diagnostic.getState().getName(); + } + + public Diagnostic getDiagnostic(){ + return diagnostic; + } + } + + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeCommand.java new file mode 100755 index 0000000..a0b4daf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeCommand.java @@ -0,0 +1,120 @@ +/** + * $Id: AnalyzeCommand.java,v 1.14 2006/04/12 03:40:29 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.coremodel.ForkNode; +import org.isistan.flabot.coremodel.JoinNode; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.engine.JavaRuntime; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlAtomic; +import JavaLog.PlException; +import JavaLog.PlList; +import JavaLog.PlStructArgs; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzeCommand extends Command{ + + private JavaLogEngine javaLogEngine; + private Loader loader; + private JavaRuntime javaRuntime; + + public AnalyzeCommand(JavaLogEngine javaLogEngine, Loader loader, + JavaRuntime javaRuntime) { + this.name = "'ANALYZE'"; + this.javaLogEngine = javaLogEngine; + this.loader = loader; + this.javaRuntime = javaRuntime; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "chooseState(Result,"+context.getCurrentDependency()+",Dependency,Event,Rest)."; + Hashtable result = javaLogEngine.executeQuery(query); + PlStructArgs state = (PlStructArgs)result.get("Result"); + PlList rest = (PlList)result.get("Rest"); + Object event = (Object)result.get("Event"); + PlAtomic typeDependency = (PlAtomic)result.get("Dependency"); + context.setCurrentDependency(rest.toString()); + context.setCurrentState(state.toString()); + context.setEvent(event.toString()); + context.setCurrentTypeDependency(typeDependency.toString()); + if (context.getCurrentResponsibility() instanceof ForkNode){ + query = "analyzeResponsibilities(Result,"+context.getCurrentFamily()+",aForkComponent,aForkComponent,"+context.getCurrentState()+")."; + } + else if (context.getCurrentResponsibility() instanceof StubNode){ + query = "analyzeResponsibilities(Result,"+context.getCurrentFamily()+",aStubComponent,aStubComponent,"+context.getCurrentState()+")."; + } + else if (context.getCurrentResponsibility() instanceof JoinNode){ + if (context.getBranchJoin().containsKey(context.getCurrentStep())){ + String branch = (String)context.getBranchJoin().get(context.getCurrentStep()); + updateDependencies(branch,context); + } + query = "analyzeResponsibilities(Result,"+context.getCurrentFamily()+",aJoinComponent,aJoinComponent,"+context.getCurrentState()+")."; + } + else + query = "analyzeResponsibilities(Result,"+context.getCurrentFamily()+","+((ResponsibilityNode)context.getCurrentResponsibility()).getRole().getID()+","+((ResponsibilityNode)context.getCurrentResponsibility()).getRole().getID()+","+context.getCurrentState()+")."; + result = javaLogEngine.executeQuery(query); + PlAtomic value = (PlAtomic)result.get("Result"); + if (!value.toString().equals("-1")){ + query = "anlizedState("+context.getCurrentState()+","+context.getCurrentStep()+")."; + Hashtable existsState = (Hashtable)javaLogEngine.executeQuery(query); + if (existsState==null){ + query = "assertRule(anlizedState("+context.getCurrentState()+","+context.getCurrentStep()+"))."; + javaLogEngine.executeQuery(query); + query = "chooseAnalizeCommand ("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+","+value.toString()+",Family,Result)."; + result = javaLogEngine.executeQuery(query); + PlAtom command = (PlAtom) result.get("Result"); + PlAtom family = (PlAtom) result.get("Family"); + if (!command.toString().equals("'NULL'")){ + Command commandToExecute = (Command)javaRuntime.getCommands().get(command.toString()); + context.setPreResponsibility((SimplePathNode)loader.getResponsibilitiesNodeByID().get(value.toString())); + context.setFamily(family.toString()); + commandToExecute.execute(context); + } + } + } + putPrologSentence(context); + } + + private void updateDependencies(String branch, ExecutionContext context) throws PlException { + String query = "updateDependencies("+context.getCurrentDependency()+",Result,"+branch+")."; + PlList list = (PlList) javaLogEngine.executeQuery(query,"Result"); + if (!context.getCurrentDependency().equals("[]")){ + context.setCurrentDependency(list.toString()); + context.setDependencies(list.toString()); + query = "chooseState(Result,"+context.getCurrentDependency()+",Dependency,Event,Rest)."; + Hashtable result = javaLogEngine.executeQuery(query); + PlStructArgs state = (PlStructArgs)result.get("Result"); + PlList rest = (PlList)result.get("Rest"); + Object event = (Object)result.get("Event"); + PlAtomic typeDependency = (PlAtomic)result.get("Dependency"); + context.setCurrentDependency(rest.toString()); + context.setCurrentState(state.toString()); + context.setEvent(event.toString()); + context.setCurrentTypeDependency(typeDependency.toString()); + } + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + if (context.getCurrentDependency().equals("[]")){ + String query = "assertRule(analyzeCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + javaLogEngine.executeQuery(query); + } + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.java new file mode 100755 index 0000000..8174abd --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeConstraintCommand.java @@ -0,0 +1,44 @@ +/** + * $Id: AnalyzeConstraintCommand.java,v 1.7 2006/02/20 23:23:31 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzeConstraintCommand extends Command{ + + private JavaLogEngine javaLogEngine; + private RuntimeManager runtimeManager; + + public AnalyzeConstraintCommand(JavaLogEngine javaLogEngine, + RuntimeManager runtimeManager) { + this.name = "'ANALYZE_CONSTRAINT'"; + this.javaLogEngine = javaLogEngine; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws IOException, PlException{ + javaLogEngine.changeLogicModule(RuntimeManager.LogicModuleConstraint); + context.setCurrentLogicModule(RuntimeManager.LogicModuleConstraint); + runtimeManager.addExecutionStep(context); + String query = "assertRule(nextCommand("+context.getCurrentStep()+",'ANALYZE_POST_CONSTRAINT'))."; + javaLogEngine.executeQuery(query); + context.setStopStep("STOP"); + } + + @Override + public void putPrologSentence(ExecutionContext context){} + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeDefaultCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeDefaultCommand.java new file mode 100755 index 0000000..40797d9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeDefaultCommand.java @@ -0,0 +1,36 @@ +/** + * $Id: AnalyzeDefaultCommand.java,v 1.5 2006/02/20 23:23:31 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzeDefaultCommand extends Command{ + + private RuntimeManager runtimeManager; + + public AnalyzeDefaultCommand(RuntimeManager runtimeManager) { + this.name = "'ANALYZE_DEFAULT'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException{ + runtimeManager.addExecutionStep(context); + String query = "assertRule(nextCommand("+context.getCurrentStep()+",'ANALYZE_POST_DEFAULT'))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setStopStep("STOP"); + } + + @Override + public void putPrologSentence(ExecutionContext context){} +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeMappingCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeMappingCommand.java new file mode 100755 index 0000000..17c740a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzeMappingCommand.java @@ -0,0 +1,50 @@ +/** + * $Id: AnalyzeMappingCommand.java,v 1.8 2006/03/22 03:28:54 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; + +/** + * @author $Author: franco $ + * + */ + +public class AnalyzeMappingCommand extends Command{ + + private RuntimeManager runtimeManager; + + public AnalyzeMappingCommand(RuntimeManager runtimeManager) { + this.name = "'ANALYZE_MAPPING'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException{ + String lastFamily = context.getCurrentFamily(); + context.setCurrentFamily(context.getFamily()); + String query = "existsCurrentFamily(Family)."; + PlAtom family = (PlAtom)runtimeManager.getJavaLogEngine().executeQuery(query,"Family"); + if (family==null){ + query = "assertRule(currentFamily("+context.getFamily()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query,"Family"); + } + runtimeManager.addExecutionStep(context); + context.setLastMappingFamily(lastFamily); + if (family!=null){ + context.setMappingFamily(family.toString()); + } + query = "assertRule(nextCommand("+context.getCurrentStep()+",'ANALYZE_POST_MAPPING'))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setStopStep("STOP"); + + } + + @Override + public void putPrologSentence(ExecutionContext context){} +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.java new file mode 100755 index 0000000..ac2fe41 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostConstraintCommand.java @@ -0,0 +1,38 @@ +/* $Id: AnalyzePostConstraintCommand.java,v 1.1 2006/02/20 20:13:37 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzePostConstraintCommand extends Command{ + + private RuntimeManager runtimeManager; + + public AnalyzePostConstraintCommand(RuntimeManager runtimeManager) { + this.name = "'ANALYZE_POST_CONSTRAINT'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException{ + runtimeManager.getJavaLogEngine().changeLogicModule(RuntimeManager.LogicModuleGeneral); + context.setCurrentLogicModule(RuntimeManager.LogicModuleGeneral); + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException{ + if (context.getCurrentDependency().equals("[]")){ + String query = "assertRule(analyzeCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.java new file mode 100755 index 0000000..55bb45c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostDefaultCommand.java @@ -0,0 +1,51 @@ +/* $Id: AnalyzePostDefaultCommand.java,v 1.2 2006/04/12 21:09:46 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzePostDefaultCommand extends Command{ + + private RuntimeManager runtimeManager; + + public AnalyzePostDefaultCommand(RuntimeManager runtimeManager) { + this.name = "'ANALYZE_POST_DEFAULT'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException{ + if (context.getCurrentTypeDependency().equals(Condition.preconditionCondition)){ + String query = "getMappingOrConstraint("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList list = (PlList)runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + if (list!=null&&list.length()>0){ + query = "assertRule(evaluateMappingANDConstraint("+context.getCurrentStep()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + else{ + putPrologSentence(context); + } + } + else{ + putPrologSentence(context); + } + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException{ + if (context.getCurrentDependency().equals("[]")){ + String query = "assertRule(analyzeCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostMappingCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostMappingCommand.java new file mode 100755 index 0000000..65039c1 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/AnalyzePostMappingCommand.java @@ -0,0 +1,42 @@ +/* $Id: AnalyzePostMappingCommand.java,v 1.3 2006/04/12 21:09:46 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class AnalyzePostMappingCommand extends Command{ + + private RuntimeManager runtimeManager; + + public AnalyzePostMappingCommand(RuntimeManager runtimeManager) { + this.name = "'ANALYZE_POST_MAPPING'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException{ + context.setCurrentFamily(context.getLastMappingFamily()); + if (context.getMappingFamily()==null){ + String query = "retractRule(currentFamily("+context.getFamily()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException{ + if (context.getCurrentDependency().equals("[]")){ + String query = "assertRule(analyzeCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/Command.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/Command.java new file mode 100755 index 0000000..62d9b40 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/Command.java @@ -0,0 +1,34 @@ +/** + * $Id: Command.java,v 1.8 2006/02/21 00:46:48 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; + + +/** + * @author $Author: franco $ + */ + +public abstract class Command{ + + protected String name; + protected ExecutionContext context; + + public abstract void execute(ExecutionContext context) throws PlException, IOException; + + public abstract void putPrologSentence(ExecutionContext context) throws PlException, IOException; + + public String getNameCommand (){ + return name; + } + + public void setExecutionContext(ExecutionContext context){ + this.context = context; + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.java new file mode 100755 index 0000000..a445f12 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateAndJoinCommand.java @@ -0,0 +1,55 @@ +/** + * $Id: EvaluateAndJoinCommand.java,v 1.2 2006/03/22 03:28:54 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.coremodel.JoinNode; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; + +/** + * @author $Author: franco $ + */ + +public class EvaluateAndJoinCommand extends Command{ + + private RuntimeManager runtimeManager; + private Loader loader; + + public EvaluateAndJoinCommand(RuntimeManager runtimeManager, Loader loader) { + this.name = "'EVALUATE_JOIN_AND'"; + this.runtimeManager = runtimeManager; + this.loader = loader; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "getJoin("+context.getCurrentResponsibility().getID()+",Join)."; + Hashtable result = runtimeManager.getJavaLogEngine().executeQuery(query); + PlAtom join = (PlAtom) result.get("Join"); + JoinNode joinNode = (JoinNode)loader.getResponsibilitiesNodeByID().get(join.toString()); + context.setResponsibilityToJoin(context.getCurrentResponsibility()); + context.setPreResponsibilityToJoin(context.getPreResponsibility()); + context.setPreResponsibility(joinNode); + runtimeManager.addExecutionStep(context); + query = "assertRule(nextCommand("+context.getCurrentStep()+",'EVALUATE_POST_JOIN_AND'))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "assertRule(evaluatingJoin("+joinNode.getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setStopStep("STOP"); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{} + +} + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateCommand.java new file mode 100755 index 0000000..70d5a26 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateCommand.java @@ -0,0 +1,48 @@ +/** + * $Id: EvaluateCommand.java,v 1.9 2006/02/20 22:52:03 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.engine.JavaRuntime; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class EvaluateCommand extends Command{ + + private JavaLogEngine javaLogEngine; + private JavaRuntime javaRuntime; + + public EvaluateCommand(JavaLogEngine javaLogEngine, JavaRuntime javaRuntime) { + this.name = "'EVALUATE'"; + this.javaLogEngine = javaLogEngine; + this.javaRuntime = javaRuntime; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "chooseEvaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+",Result)."; + Hashtable result = javaLogEngine.executeQuery(query); + PlAtom command = (PlAtom) result.get("Result"); + if (!command.toString().equals("'NULL'")){ + Command commandToExecute = (Command)javaRuntime.getCommands().get(command.toString()); + commandToExecute.execute(context); + } + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + javaLogEngine.executeQuery(query); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.java new file mode 100755 index 0000000..6c92a8f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateDefaultCommand.java @@ -0,0 +1,44 @@ +/** + * $Id: EvaluateDefaultCommand.java,v 1.5 2006/03/16 21:12:38 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class EvaluateDefaultCommand extends Command{ + + private JavaLogEngine javaLogEngine; + + public EvaluateDefaultCommand(JavaLogEngine javaLogEngine) { + this.name = "'EVALUATE_DEFAULT'"; + this.javaLogEngine = javaLogEngine; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList result = (PlList)javaLogEngine.executeQuery(query,"Result"); + context.setCurrentDependency(result.toString()); + context.setDependencies(result.toString()); + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + javaLogEngine.executeQuery(query); + } +} + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.java new file mode 100755 index 0000000..2b70324 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateMappingAndConstraintCommand.java @@ -0,0 +1,44 @@ +/** + * $Id: EvaluateMappingAndConstraintCommand.java,v 1.1 2006/04/12 21:09:46 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class EvaluateMappingAndConstraintCommand extends Command{ + + private JavaLogEngine javaLogEngine; + + public EvaluateMappingAndConstraintCommand(JavaLogEngine javaLogEngine) { + this.name = "'EVALUATE_MAPPING_AND_CONSTRAINT'"; + this.javaLogEngine = javaLogEngine; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "especialEvaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList result = (PlList)javaLogEngine.executeQuery(query,"Result"); + context.setCurrentDependency(result.toString()); + context.setDependencies(result.toString()); + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + javaLogEngine.executeQuery(query); + } +} + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.java new file mode 100755 index 0000000..0b3ae1d --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateOrJoinCommand.java @@ -0,0 +1,55 @@ +/** + * $Id: EvaluateOrJoinCommand.java,v 1.3 2006/03/22 03:28:54 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.coremodel.JoinNode; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; + +/** + * @author $Author: franco $ + */ + +public class EvaluateOrJoinCommand extends Command{ + + private RuntimeManager runtimeManager; + private Loader loader; + + public EvaluateOrJoinCommand(RuntimeManager runtimeManager, Loader loader) { + this.name = "'EVALUATE_JOIN_OR'"; + this.runtimeManager = runtimeManager; + this.loader = loader; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "getJoin("+context.getCurrentResponsibility().getID()+",Join)."; + Hashtable result = runtimeManager.getJavaLogEngine().executeQuery(query); + PlAtom join = (PlAtom) result.get("Join"); + JoinNode joinNode = (JoinNode)loader.getResponsibilitiesNodeByID().get(join.toString()); + context.setResponsibilityToJoin(context.getCurrentResponsibility()); + context.setPreResponsibilityToJoin(context.getPreResponsibility()); + context.setPreResponsibility(joinNode); + context.setEnabled(ExecutionContext.not_enabled_Step); + runtimeManager.addExecutionStep(context); + query = "assertRule(nextCommand("+context.getCurrentStep()+",'EVALUATE_POST_JOIN_OR'))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "assertRule(evaluatingJoin("+joinNode.getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setStopStep("STOP"); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{} +} + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.java new file mode 100755 index 0000000..c282126 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostAndJoinCommand.java @@ -0,0 +1,65 @@ +/* $Id: EvaluatePostAndJoinCommand.java,v 1.4 2006/03/22 03:28:54 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: franco $ + */ + +public class EvaluatePostAndJoinCommand extends Command{ + + private RuntimeManager runtimeManager; + + public EvaluatePostAndJoinCommand(RuntimeManager runtimeManager) { + this.name = "'EVALUATE_POST_JOIN_AND'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "retractRule(evaluateCommand("+String.valueOf(Integer.parseInt(context.getCurrentStep())+1)+","+context.getPreResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "retractRule(evaluatingJoin("+context.getPreResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "situationForAndJoin("+String.valueOf(Integer.parseInt(context.getCurrentStep())+1)+","+context.getCurrentStep()+","+context.getPreResponsibility().getID()+","+getPrevious((SimplePathNode)context.getPreResponsibility().uGetPrevious().get(0))+","+getPrevious((SimplePathNode)context.getPreResponsibility().uGetPrevious().get(1))+",Result)."; + runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + context.setCurrentResponsibility(context.getResponsibilityToJoin()); + context.setPreResponsibility(context.getPreResponsibilityToJoin()); + query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList resultFinal = (PlList)runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + context.setCurrentDependency(resultFinal.toString()); + context.setDependencies(resultFinal.toString()); + putPrologSentence(context); + } + + public String getPrevious (SimplePathNode node){ + if (node instanceof ResponsibilityNode || node instanceof StubNode){ + return (node.getID()); + } + else + if (node.uGetPrevious().size() > 0){ + return getPrevious ((SimplePathNode)node.uGetPrevious().get(0)); + } + else { + return "none"; + } + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.java new file mode 100755 index 0000000..489bbe2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostMappingStubCommand.java @@ -0,0 +1,55 @@ +/** + * $Id: EvaluatePostMappingStubCommand.java,v 1.3 2006/03/31 03:28:03 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class EvaluatePostMappingStubCommand extends Command{ + + private RuntimeManager runtimeManager; + + public EvaluatePostMappingStubCommand(RuntimeManager runtimeManager) { + this.name = "'EVALUATE_POST_MAPPING_STUB'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + context.setCurrentResponsibility(context.getResponsibilityToStub()); + context.setPreResponsibility(context.getPreResponsibilityToStub()); + runtimeManager.getJavaLogEngine().changeLogicModule(RuntimeManager.LogicModuleGeneral); + context.setCurrentLogicModule(RuntimeManager.LogicModuleGeneral); + String query = "situationForStub("+context.getStubNode().getID()+","+context.getStartNodeToStub().getID()+","+context.getEndNodeToStub().getID()+",Result,"+context.getCurrentFamily()+")."; + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setCurrentFamily(context.getLastMappingFamily()); + if (context.getMappingFamily()==null){ + query = "retractRule(currentFamily("+context.getFamily()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList resultFinal = (PlList)runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + context.setCurrentDependency(resultFinal.toString()); + context.setDependencies(resultFinal.toString()); + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.java new file mode 100755 index 0000000..6953495 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostOrJoinCommand.java @@ -0,0 +1,123 @@ +/* $Id: EvaluatePostOrJoinCommand.java,v 1.8 2006/04/04 03:29:51 franco Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.internal.Workbench; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: franco $ + */ + +public class EvaluatePostOrJoinCommand extends Command{ + + private RuntimeManager runtimeManager; + + public EvaluatePostOrJoinCommand(RuntimeManager runtimeManager) { + this.name = "'EVALUATE_POST_JOIN_OR'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + context.setEnabled(ExecutionContext.enabled_Step); + String query = "retractRule(evaluateCommand("+String.valueOf(Integer.parseInt(context.getCurrentStep())+1)+","+context.getPreResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "retractRule(evaluatingJoin("+context.getPreResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + + Hashtable stateByResponsibility = new Hashtable(); + for (int i=0; i < context.getPreResponsibility().uGetPrevious().size(); i++){ + SimplePathNode previousNode = getPrevious((SimplePathNode)context.getPreResponsibility().uGetPrevious().get(i)); + if (previousNode!=null){ + query = "responsibilityLog("+previousNode.getID()+",Instance,Component,Event,CurrentScenario,ExecutionInfo,"+ String.valueOf(Integer.parseInt(context.getCurrentStep())+1)+")."; + Object state = runtimeManager.getJavaLogEngine().executeQuery(query,"ExecutionInfo"); + stateByResponsibility.put(previousNode,state.toString()); + } + } + + GetStateRunnable getStateRunnable = new GetStateRunnable(context.getPreResponsibility(),getPrevious((SimplePathNode)context.getPreResponsibility().uGetPrevious().get(0)),getPrevious((SimplePathNode)context.getPreResponsibility().uGetPrevious().get(1)),stateByResponsibility); + Workbench.getInstance().getDisplay().syncExec(getStateRunnable); + ExecutionState state = getStateRunnable.getExecutionState(); + SimplePathNode branchSelection = getStateRunnable.getBranchSelection(); + + if (branchSelection!=null) + context.getBranchJoin().put(String.valueOf(Integer.parseInt(context.getCurrentStep())+1),branchSelection.getID()); + query = "assertRule(responsibilityLog("+context.getPreResponsibility().getID()+",Instance,Component,Event,Scenario,'"+state.getName()+"',"+context.getCurrentStep()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + + context.setCurrentResponsibility(context.getResponsibilityToJoin()); + context.setPreResponsibility(context.getPreResponsibilityToJoin()); + + query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList resultFinal = (PlList)runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + context.setCurrentDependency(resultFinal.toString()); + context.setDependencies(resultFinal.toString()); + putPrologSentence(context); + } + + public SimplePathNode getPrevious (SimplePathNode node){ + if (node instanceof ResponsibilityNode || node instanceof StubNode){ + return (node); + } + else + if (node.uGetPrevious().size() > 0){ + return getPrevious ((SimplePathNode)node.uGetPrevious().get(0)); + } + else { + return null; + } + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + + private class GetStateRunnable implements Runnable { + private SimplePathNode node; + private ExecutionState executionState; + private SimplePathNode node1; + private SimplePathNode node2; + private SimplePathNode branchSelection; + private Hashtable stateByResponsibility; + + public GetStateRunnable(SimplePathNode node, SimplePathNode node1, SimplePathNode node2, Hashtable stateByResponsibility) { + this.node = node; + this.node1 = node1; + this.node2 = node2; + this.stateByResponsibility = stateByResponsibility; + } + + public void run() { + JoinOrSetStateDialog aDialog = new JoinOrSetStateDialog(new Shell()); + ExecutionState executionStateName = aDialog.getExecutionInfo(node,node1,node2,stateByResponsibility); + executionState = ExecutionState.get(executionStateName.getName()); + branchSelection = aDialog.getBranchSelection(); + } + + public ExecutionState getExecutionState() { + return executionState; + } + + public SimplePathNode getBranchSelection (){ + return branchSelection; + } + + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.java new file mode 100755 index 0000000..c07b828 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluatePostStubCommand.java @@ -0,0 +1,50 @@ +/** + * $Id: EvaluatePostStubCommand.java,v 1.7 2006/03/31 03:28:03 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class EvaluatePostStubCommand extends Command{ + + private RuntimeManager runtimeManager; + + public EvaluatePostStubCommand(RuntimeManager runtimeManager) { + this.name = "'EVALUATE_POST_STUB'"; + this.runtimeManager = runtimeManager; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + context.setCurrentResponsibility(context.getResponsibilityToStub()); + context.setPreResponsibility(context.getPreResponsibilityToStub()); + runtimeManager.getJavaLogEngine().changeLogicModule(RuntimeManager.LogicModuleGeneral); + context.setCurrentLogicModule(RuntimeManager.LogicModuleGeneral); + String query = "situationForStub("+context.getStubNode().getID()+","+context.getStartNodeToStub().getID()+","+context.getEndNodeToStub().getID()+",Result,"+context.getCurrentFamily()+")."; + runtimeManager.getJavaLogEngine().executeQuery(query); + query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList resultFinal = (PlList)runtimeManager.getJavaLogEngine().executeQuery(query,"Result"); + context.setCurrentDependency(resultFinal.toString()); + context.setDependencies(resultFinal.toString()); + putPrologSentence(context); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(evaluateCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query); + } + +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateStubCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateStubCommand.java new file mode 100755 index 0000000..cc47cbf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/EvaluateStubCommand.java @@ -0,0 +1,114 @@ +/** + * $Id: EvaluateStubCommand.java,v 1.19 2006/03/31 03:28:03 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; +import java.util.Hashtable; + +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlAtom; +import JavaLog.PlException; +import JavaLog.PlList; + +/** + * @author $Author: apersson $ + */ + +public class EvaluateStubCommand extends Command{ + + private JavaLogEngine javaLogEngine; + private RuntimeManager runtimeManager; + private Loader loader; + + public EvaluateStubCommand(JavaLogEngine javaLogEngine, Loader loader, + RuntimeManager runtimeManager) { + this.name = "'EVALUATE_STUB'"; + this.javaLogEngine = javaLogEngine; + this.runtimeManager = runtimeManager; + this.loader = loader; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + boolean existsFamily = false; + String query = "getStub("+context.getCurrentResponsibility().getID()+",Stub)."; + Hashtable result = javaLogEngine.executeQuery(query); + PlAtom stub = (PlAtom) result.get("Stub"); + StubNode stubNode = (StubNode)loader.getResponsibilitiesNodeByID().get(stub.toString()); + SimplePathNode endResp = Loader.getPrevious(stubNode.getEndPointReference()); + SimplePathNode startResp = Loader.getNext(stubNode.getStartPointReference()); + context.setStubNode(stubNode); + context.setStartNodeToStub(startResp); + context.setEndNodeToStub(endResp); + query = "getFamilyToStub("+stubNode.getID()+","+endResp.getID()+",Family)."; + Object family = javaLogEngine.executeQuery(query,"Family"); + if (family!=null){ + context.setFamily(family.toString()); + String lastFamily = context.getCurrentFamily(); + context.setCurrentFamily(context.getFamily()); + query = "existsCurrentFamily(Family)."; + family = (PlAtom)runtimeManager.getJavaLogEngine().executeQuery(query,"Family"); + if (family==null){ + query = "assertRule(currentFamily("+context.getFamily()+"))."; + runtimeManager.getJavaLogEngine().executeQuery(query,"Family"); + } + context.setLastMappingFamily(lastFamily); + if (family!=null){ + context.setMappingFamily(family.toString()); + } + existsFamily = true; + } + query = "runnedOK("+context.getCurrentResponsibility().getID()+","+endResp.getID()+",Component,"+context.getEvent()+","+context.getCurrentFamily()+","+endResp.getMap().getID()+","+endResp.getMap().getID()+",ExecutionInfo,"+context.getCurrentStep()+",Condition)."; + javaLogEngine.executeQuery(query); + query = "responsibilityLog("+endResp.getID()+",Instance,Component,Event,Scenario,ExecutionInfo,"+context.getCurrentStep()+")."; + result = javaLogEngine.executeQuery(query); + Object stateFirstNode = (Object) result.get("ExecutionInfo"); + if (!stateFirstNode.toString().equals("'Executed'")){ + javaLogEngine.changeLogicModule(RuntimeManager.LogicModuleStub); + context.setCurrentLogicModule(RuntimeManager.LogicModuleStub); + SimplePathNode node = context.getCurrentResponsibility(); + SimplePathNode previousnode = context.getPreResponsibility(); + context.setResponsibilityToStub(node); + context.setPreResponsibilityToStub(previousnode); + context.setCurrentResponsibility(stubNode); + context.setPreResponsibility(endResp); + if (existsFamily){ + query = "assertRule(nextCommand("+context.getCurrentStep()+",'EVALUATE_POST_MAPPING_STUB'))."; + }else{ + query = "assertRule(nextCommand("+context.getCurrentStep()+",'EVALUATE_POST_STUB'))."; + } + context.setCurrentTypeDependency(Condition.previous); + runtimeManager.addExecutionStep(context); + runtimeManager.getJavaLogEngine().executeQuery(query); + context.setStopStep("STOP"); + } + else{ + query = "getInstance("+endResp.getID()+","+context.getCurrentFamily()+",Instance)."; + Object instance = javaLogEngine.executeQuery(query,"Instance"); + query = "assertRule(faultyComponent("+endResp.getID()+","+instance.toString()+",state(Family,'Executed',current)))."; + javaLogEngine.executeQuery(query); + query = "situationForStub("+stubNode.getID()+","+startResp.getID()+","+endResp.getID()+",Result,"+context.getCurrentFamily()+")."; + javaLogEngine.executeQuery(query); + query = "evaluateDependencies("+context.getCurrentFamily()+","+context.getCurrentResponsibility().getID()+","+context.getCurrentResponsibility().getMap().getID()+","+context.getCurrentResponsibility().getMap().getID()+",Event,Result,"+context.getCurrentStep()+")."; + PlList resultFinal = (PlList)javaLogEngine.executeQuery(query,"Result"); + context.setCurrentDependency(resultFinal.toString()); + context.setDependencies(resultFinal.toString()); + } + + + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{} +} + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/SituationCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/SituationCommand.java new file mode 100755 index 0000000..7d0fc68 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/commands/SituationCommand.java @@ -0,0 +1,44 @@ +/** + * $Id: SituationCommand.java,v 1.7 2006/03/29 02:09:45 apersson Exp $ + */ + +package org.isistan.flabot.engine.commands; + +import java.io.IOException; + +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.executionmodel.ExecutionContext; + +import JavaLog.PlException; + +/** + * @author $Author: apersson $ + */ + +public class SituationCommand extends Command{ + + private JavaLogEngine javaLogEngine; + + public SituationCommand(JavaLogEngine javaLogEngine) { + this.name = "'SITUATION'"; + this.javaLogEngine = javaLogEngine; + } + + @Override + public void execute(ExecutionContext context) throws PlException, IOException{ + String query = "situationCommand ("+context.getCurrentResponsibility().getID()+","+context.getDependencies()+",Result,"+context.getCurrentFamily()+")."; + javaLogEngine.executeQuery(query); + query = "retractRule(anlizedState(X,"+context.getCurrentStep()+"))."; + javaLogEngine.executeQuery(query); + putPrologSentence(context); + if (context.getBranchJoin().containsKey(context.getCurrentStep())) + context.getBranchJoin().remove(context.getCurrentStep()); + } + + @Override + public void putPrologSentence(ExecutionContext context) throws PlException, IOException{ + String query = "assertRule(situationCommand("+context.getCurrentStep()+","+context.getCurrentResponsibility().getID()+"))."; + javaLogEngine.executeQuery(query); + + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.java new file mode 100755 index 0000000..66d2e41 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/JoinOrSetStateDialog.java @@ -0,0 +1,268 @@ +/** + * $Id: JoinOrSetStateDialog.java,v 1.13 2006/04/13 01:41:08 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.dialogs; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.window.ApplicationWindow; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.locator.FlabotEngineLocator; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.locator.ComponentLocatorException; +import org.isistan.flabot.util.locator.ComponentLocatorManager; + +/** + * This dialog is used during the execution of the engine; so the user indicates manually the state of an or join node (NotExecuted, Faulty or Executed). + * + * @author usuario + * + */ +public class JoinOrSetStateDialog extends ApplicationWindow { + + private Button[] radios = new Button[3]; + + private ExecutionState values = ExecutionState.NOT_EXECUTED_LITERAL; + + private SimplePathNode valuesBranchSelection = null; + + private SimplePathNode node; + + private List nodes = new ArrayList(); + + private Combo comboBranchs; + + private Hashtable stateByResponsibility; + + /** + * Instantiates a dialog + * + * @param parent the shell parent + */ + public JoinOrSetStateDialog(Shell parent) { + super(null); + } + + public ExecutionState getExecutionInfo(SimplePathNode node, SimplePathNode node1, SimplePathNode node2, Hashtable stateByResponsibility){ + this.node = node; + nodes.add(node1); + nodes.add(node2); + this.stateByResponsibility = stateByResponsibility; + return run(); + } + + /** + * Runs the application + */ + public ExecutionState run() { + // Don't return from open() until window closes + setBlockOnOpen(true); + setShellStyle(getShellStyle()/* + SWT.APPLICATION_MODAL*/); + + // Open the main window + open(); + return values; + } + + /** + * Constrain the shell size to be no larger than the display bounds. + * + * @since 2.0 + */ + protected void constrainShellSize() { + super.constrainShellSize(); + Shell shell = getShell(); + Display display = getShell().getDisplay(); + Rectangle r = display.getClientArea(); + int centerX = r.width - shell.getSize().x; + int centerY = r.height/2 - shell.getSize().y / 2; + shell.setLocation(centerX, centerY); + } + + /** + * Configures the shell + * + * @param shell the shell + */ + protected void configureShell(Shell shell) { + super.configureShell(shell); + shell.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.executionStateSelection")); //$NON-NLS-1$ + } + + /** + * Creates the main window's contents + * + * @param parent the main window + * @return Control + */ + protected Control createContents(Composite parent) { + setStateRuntime(false); + + Composite shell = new Composite(parent, SWT.NONE); + + GridLayout layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + shell.setLayout(layout); + shell.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Group stateGroup = new Group(shell, SWT.NONE); + stateGroup.setText(Messages.getString("org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.branchStatesGroup")); //$NON-NLS-1$ + + layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + stateGroup.setLayout(layout); + stateGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Group statesGroup = new Group(shell, SWT.NONE); + statesGroup.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.states")); //$NON-NLS-1$ + + layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + statesGroup.setLayout(layout); + statesGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + + radios[0] = new Button(statesGroup, SWT.RADIO); + radios[0].setText(ExecutionState.NOT_EXECUTED_LITERAL.getName()); + radios[0].setData(ExecutionState.NOT_EXECUTED_LITERAL); + radios[0].setSelection(true); + values = (ExecutionState) radios[0].getData(); + radios[0].addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + comboBranchs.setEnabled(true); + if (comboBranchs.getItemCount() > 0) + comboBranchs.select(0); + } + }); + + comboBranchs = new Combo(statesGroup, SWT.READ_ONLY); + + radios[1] = new Button(statesGroup, SWT.RADIO); + GridData gd = new GridData(); + gd.horizontalSpan = 2; + radios[1].setLayoutData(gd); + radios[1].setText(ExecutionState.FAULTY_LITERAL.getName()); + radios[1].setData(ExecutionState.FAULTY_LITERAL); + radios[1].addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + comboBranchs.setEnabled(true); + if (comboBranchs.getItemCount() > 0) + comboBranchs.select(0); + } + }); + + radios[2] = new Button(statesGroup, SWT.RADIO); + gd = new GridData(); + gd.horizontalSpan = 2; + radios[2].setLayoutData(gd); + radios[2].setText(ExecutionState.EXECUTED_LITERAL.getName()); + radios[2].setData(ExecutionState.EXECUTED_LITERAL); + radios[2].addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + comboBranchs.deselectAll(); + comboBranchs.setEnabled(false); + } + }); + + createBranchs(stateGroup, nodes); + + Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + final Button buttonOK = new Button(buttonsComposite, SWT.PUSH); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + for (int i=0; i < radios.length; i++){ + if (radios[i].getSelection()) + values = (ExecutionState) radios[i].getData(); + } + valuesBranchSelection = (SimplePathNode) comboBranchs.getData(String.valueOf(comboBranchs.getSelectionIndex())); + close(); + } + }); + buttonOK.setFocus(); + + setStateRuntime(true); + return shell; + } + + private void setStateRuntime(boolean state) { + FlabotFileModel flabotFileModel = node.getMap() + .getCoreModel().getFile(); + // add the file model to the parameters map + Map parameters = Collections + .singletonMap(FlabotEngineLocator.PARAMETER_FLABOT_FILE_MODEL, + flabotFileModel); + // obtain a reference to the component locator manager + ComponentLocatorManager locatorManager = + FlabotPlugin.getDefault().getComponentLocatorManager(); + try { + RuntimeManager runtimeManager = (RuntimeManager) + locatorManager.getComponent(FlabotEngineLocator.LOCATOR_ID, + parameters); + runtimeManager.setActiveRuntime(state); + }catch (ComponentLocatorException e) { + EnginePlugin.getDefault().getLogger().error( + Messages.getString("org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.executionError"),e); //$NON-NLS-1$ + } + } + + private void createBranchs(Composite c, List nodes) { + int i = 1; + for(SimplePathNode node: nodes) { + if(node!=null) + addNewBranch(c, i++, node); + } + if (comboBranchs.getItemCount() > 0) + comboBranchs.select(0); + } + + private void addNewBranch(Composite composite, int branchNumber, SimplePathNode node) { + final Label id = new Label(composite, SWT.NULL); + id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchText", Integer.valueOf(branchNumber), node.getName())); //$NON-NLS-1$ + + final Text idnode = new Text(composite, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER); + idnode.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + idnode.setText((String) stateByResponsibility.get(node)); + + comboBranchs.setData(String.valueOf(comboBranchs.getItemCount()), node); + comboBranchs.add(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchComboText", Integer.valueOf(branchNumber), node.getName())); //$NON-NLS-1$ + } + + public SimplePathNode getBranchSelection (){ + return valuesBranchSelection; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog.java new file mode 100755 index 0000000..ebde7f5 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResponsibilityExecutionStateDialog.java @@ -0,0 +1,90 @@ +/** * $Id: ResponsibilityExecutionStateDialog.java,v 1.21 2006/04/13 01:41:07 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.engine.dialogs; + +import java.util.Collections; import java.util.List; import java.util.Map; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.isistan.flabot.coremodel.ComponentRole; import org.isistan.flabot.coremodel.ResponsibilityNode; import org.isistan.flabot.coremodel.SimplePathNode; import org.isistan.flabot.coremodel.StubNode; import org.isistan.flabot.engine.InterfaceContextInfo; import org.isistan.flabot.engine.executionstate.Diagnostic; import org.isistan.flabot.engine.executionstate.ExecutionState; import org.isistan.flabot.engine.executionstate.correlation.dialog.TagFilterDialogManager; import org.isistan.flabot.engine.messages.Messages; import org.isistan.flabot.trace.log.Tag; /** * This dialog is used during the execution of the engine; so the user indicates manually the state of a responsibility node (NotExecuted, Faulty or Executed). * * @author usuario * */ public class ResponsibilityExecutionStateDialog extends ApplicationWindow { + + private String sourceResponsibilityName; + private String sourceInstanceName; + private String sourceComponentName; + private String sourceScenarioName; private String targetResponsibilityName; private String targetInstanceName; private String targetComponentName; private String targetScenarioName; private String eventName; private String conditionName; + private Button[] radios = new Button[3]; + private SimplePathNode sourceResponsibilityNode; private ExecutionState values; private Diagnostic diagnostic; + private List tagsBefore, tagsAfter; private ExecutionState actualExecutionState; /** * Instantiates a dialog * * @param parent the shell parent */ + public ResponsibilityExecutionStateDialog(Shell parent) { + //So it opens in a new window super(null); + } + + public void setExecutionInfo(SimplePathNode node, Map engineContext) { eventName = (String) engineContext.get(InterfaceContextInfo.EVENT); if (eventName == null) eventName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultEventName"); //$NON-NLS-1$ conditionName = (String) engineContext.get(InterfaceContextInfo.CONDITION); if (conditionName == null) conditionName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultConditionName"); //$NON-NLS-1$ //Target Responsibility ComponentRole targetInstance = (ComponentRole) engineContext.get(InterfaceContextInfo.INSTANCE); if (targetInstance == null) targetInstanceName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetInstanceName"); //$NON-NLS-1$ else targetInstanceName = targetInstance.getFullName(); targetResponsibilityName = node.getName(); targetScenarioName = node.getMap().getName(); targetComponentName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetComponentName"); //$NON-NLS-1$ if (node instanceof ResponsibilityNode && ((ResponsibilityNode)node).getRole() != null) targetComponentName = ((ResponsibilityNode)node).getRole().getComponent().getName(); else targetComponentName = targetInstanceName; //Source Responsibility sourceResponsibilityNode = (SimplePathNode) engineContext.get(InterfaceContextInfo.PRE_RESPONSIBILITY_NODE); ComponentRole sourceInstance = (ComponentRole) engineContext.get(InterfaceContextInfo.PRE_INSTANCE); if (sourceResponsibilityNode instanceof StubNode) sourceInstanceName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceStub"); //$NON-NLS-1$ else if (sourceInstance == null) sourceInstanceName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceName"); //$NON-NLS-1$ else sourceInstanceName = sourceInstance.getFullName(); sourceResponsibilityName = sourceResponsibilityNode.getName(); sourceScenarioName = sourceResponsibilityNode.getMap().getName(); sourceComponentName = Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceComponentName"); //$NON-NLS-1$ if (sourceResponsibilityNode instanceof ResponsibilityNode && ((ResponsibilityNode)sourceResponsibilityNode).getRole() != null) sourceComponentName = ((ResponsibilityNode)sourceResponsibilityNode).getRole().getComponent().getName(); else sourceComponentName = sourceInstanceName; } public void setDiagnosticInfo(Diagnostic diagnostic, List tagsBefore, List tagsAfter) { this.diagnostic = diagnostic; this.tagsBefore = tagsBefore; this.tagsAfter = tagsAfter; } public ExecutionState getSelectedExecutionState(ExecutionState actualExecutionState) { return run(actualExecutionState); } /** * Runs the application */ public ExecutionState run(ExecutionState actualExecutionState) { this.actualExecutionState = actualExecutionState; // Don't return from open() until window closes setBlockOnOpen(true); setShellStyle(getShellStyle()/* + SWT.APPLICATION_MODAL*/); // Open the main window open(); return values; } /** * Constrain the shell size to be no larger than the display bounds. * * @since 2.0 */ protected void constrainShellSize() { super.constrainShellSize(); Shell shell = getShell(); Display display = getShell().getDisplay(); Rectangle r = display.getClientArea(); int centerX = r.width - shell.getSize().x; int centerY = r.height/2 - shell.getSize().y / 2; shell.setLocation(centerX, centerY); } /** * Configures the shell * * @param shell the shell */ protected void configureShell(Shell shell) { super.configureShell(shell); shell.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.executionStateSelection")); //$NON-NLS-1$ } + /** * Creates the main window's contents * * @param parent the main window * @return Control */ protected Control createContents(Composite parent) { Composite shell = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(1, false); layout.verticalSpacing = 12; layout.horizontalSpacing = 12; shell.setLayout(layout); shell.setLayoutData(new GridData(GridData.FILL_BOTH)); + Group descriptionGroup = new Group(shell, SWT.NONE); descriptionGroup.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.descriptionGroup")); //$NON-NLS-1$ layout = new GridLayout(1, false); layout.verticalSpacing = 12; layout.horizontalSpacing = 12; descriptionGroup.setLayout(layout); descriptionGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); final Label id = new Label(descriptionGroup, SWT.NULL); id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.evaluatingDescription", eventName, conditionName)); //$NON-NLS-1$ Composite composite = new Composite(shell, SWT.NONE); layout = new GridLayout(2, false); layout.marginHeight = 0; layout.marginWidth = 0; layout.verticalSpacing = 0; layout.horizontalSpacing = 0; composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); //Source responsibility node group Group sourceResponsibilityGroup = new Group(composite, SWT.NONE); + sourceResponsibilityGroup.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.sourceResponsibilityNodeGroup")); //$NON-NLS-1$ + layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + sourceResponsibilityGroup.setLayout(layout); + sourceResponsibilityGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); createResponsibilityGroup(sourceResponsibilityGroup, sourceInstanceName, sourceResponsibilityName, sourceComponentName, sourceScenarioName); //Target responsibility node group Group targetResponsibilityGroup = new Group(composite, SWT.NONE); targetResponsibilityGroup.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.evaluatingResponsibilityNodeGroup")); //$NON-NLS-1$ layout = new GridLayout(2, false); layout.verticalSpacing = 12; layout.horizontalSpacing = 12; targetResponsibilityGroup.setLayout(layout); targetResponsibilityGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); createResponsibilityGroup(targetResponsibilityGroup, targetInstanceName, targetResponsibilityName, targetComponentName, targetScenarioName); if (diagnostic != null) { createDiagnosticGroup(targetResponsibilityGroup, tagsBefore, tagsAfter); } //States group + Group statesGroup = new Group(shell, SWT.NONE); + statesGroup.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.states")); //$NON-NLS-1$ + + layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + statesGroup.setLayout(layout); + statesGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + //Load Execution States combos ExecutionState[] executionStates = {ExecutionState.NOT_EXECUTED_LITERAL, ExecutionState.FAULTY_LITERAL, ExecutionState.EXECUTED_LITERAL}; int index = 0; for(ExecutionState executionState: executionStates) { radios[index] = new Button(statesGroup, SWT.RADIO); radios[index].setData(executionState); radios[index].setText(executionState.getName()); if (executionState == actualExecutionState) { radios[index].setFocus(); radios[index].setSelection(true); values = (ExecutionState)radios[index].getData(); } index++; } //Button Ok Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + final Button buttonOK = new Button(buttonsComposite, SWT.PUSH); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + for (int i=0; i < radios.length; i++) + if (radios[i].getSelection()) + values = (ExecutionState)radios[i].getData(); + close(); + } + }); return shell; } + + private void createInterfaceInstance(Composite c, String instanceName) { + final Label id = new Label(c, SWT.WRAP); + id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.instance")); //$NON-NLS-1$ + final Text idtext = new Text(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); + idtext.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + idtext.setText(instanceName); + } + + private void createInterfaceResponsibilityName(Composite c, String responsibilityName) { + final Label id = new Label(c, SWT.NULL); + id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.responsibilityName")); //$NON-NLS-1$ + + final Text idtext = new Text(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); + idtext.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + idtext.setText(responsibilityName); + } + + private void createInterfaceComponent(Composite c, String componentName) { + final Label id = new Label(c, SWT.NULL); + id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.componentType")); //$NON-NLS-1$ + + final Text idtext = new Text(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); + idtext.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + idtext.setText(componentName); + } + + private void createInterfaceScenario(Composite c, String scenarioName) { + final Label id = new Label(c, SWT.NULL); + id.setText(Messages.getString("org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.scenario")); //$NON-NLS-1$ + + final Text idtext = new Text(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); + idtext.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + idtext.setText(scenarioName); + } private void createDiagnosticGroup(Composite c, final List tagsBefore, final List tagsAfter) { final Label idBefore = new Label(c, SWT.NULL); idBefore.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsBefore")); //$NON-NLS-1$ final Button buttonBefore = new Button(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); gd.widthHint = 80; buttonBefore.setLayoutData(gd); buttonBefore.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsBeforeButton")); //$NON-NLS-1$ buttonBefore.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TagFilterDialogManager.INSTANCE.filterTags(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsBeforeDialogTitle"), tagsBefore, Collections.EMPTY_LIST, true); //$NON-NLS-1$ } }); final Label idAfter = new Label(c, SWT.NULL); idAfter.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsAfter")); //$NON-NLS-1$ final Button buttonAfter = new Button(c, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); gd.widthHint = 80; buttonAfter.setLayoutData(gd); buttonAfter.setText(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsAfterButton")); //$NON-NLS-1$ buttonAfter.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TagFilterDialogManager.INSTANCE.filterTags(Messages.getString("org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsAfterDialogTitle"), tagsAfter, Collections.EMPTY_LIST, true); //$NON-NLS-1$ } }); } private void createResponsibilityGroup(Composite composite, String instanceName, String responsibilityName, String componentName, String scenarioName) { createInterfaceInstance(composite, instanceName); createInterfaceResponsibilityName(composite, responsibilityName); createInterfaceComponent(composite, componentName); createInterfaceScenario(composite, scenarioName); } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog.java new file mode 100755 index 0000000..337da02 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/dialogs/ResultFaultLocatorEngineDialog.java @@ -0,0 +1,301 @@ +/** + * $Id: ResultFaultLocatorEngineDialog.java,v 1.27 2006/05/03 01:53:27 apersson Exp $ + * $Author: apersson $ + */ +package org.isistan.flabot.engine.dialogs; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.List; +import java.util.Vector; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.TableItem; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.coremodel.StubNode; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.DefualtValidatorSorter; +import org.isistan.flabot.util.SorterToTable; + +/** + * @author $Author: apersson $ + * + */ +public class ResultFaultLocatorEngineDialog extends Dialog { + /** + * the dialog's shell + */ + private Shell shell = null; // @jve:decl-index=0:visual-constraint="10,9" + + List componentsRole = new ArrayList(); + + int exitValue = SWT.CANCEL; + + private boolean failureLocatedActionsAvailable; + + private boolean treatFailure = false; + + private Vector faultyResponsibilities = new Vector(); + + public ResultFaultLocatorEngineDialog(Shell parent, boolean failureLocatedActionsAvailable) { + super(parent, 0); + this.failureLocatedActionsAvailable = failureLocatedActionsAvailable; + } + + /** + * This method initializes the dialog's shell + */ + private void createShell(final Hashtable stateResponsibilities) { + shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); + shell.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.faultLocatorEngine")); //$NON-NLS-1$ + shell.setLayout(new GridLayout(1, true)); + + Group propertyGroup = new Group(shell, SWT.NONE); + propertyGroup.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.results")); //$NON-NLS-1$ + propertyGroup.setLayout(new GridLayout(1, false)); + propertyGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + final Table propertyTable; + if (failureLocatedActionsAvailable){ + propertyTable = new Table(propertyGroup, SWT.BORDER | SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION); + } + else{ + propertyTable = new Table(propertyGroup, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); + } + + final GridData gd = new GridData(GridData.FILL_BOTH); + gd.widthHint = 800; + gd.heightHint = 200; + gd.verticalSpan = 3; + propertyTable.setLayoutData(gd); + propertyTable.setHeaderVisible(true); + + final TableColumn tc1 = new TableColumn(propertyTable, SWT.LEFT); + tc1.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.responsibility")); //$NON-NLS-1$ + tc1.setWidth(250); + final TableColumn tc2 = new TableColumn(propertyTable, SWT.LEFT); + tc2.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.executionState")); //$NON-NLS-1$ + tc2.setWidth(265); + final TableColumn tc3 = new TableColumn(propertyTable, SWT.LEFT); + tc3.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.instance")); //$NON-NLS-1$ + tc3.setWidth(265); + final SorterToTable sorter = new SorterToTable(propertyTable, new DefualtValidatorSorter(true,2)); + tc1.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + sorter.setColumn(tc1); + sorter.reverseDirection(); + sorter.order(); + } + }); + tc2.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + sorter.setColumn(tc2); + sorter.reverseDirection(); + sorter.order(); + } + }); + tc3.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + sorter.setColumn(tc3); + sorter.reverseDirection(); + sorter.order(); + } + }); + fillStereotypeTable(propertyTable, stateResponsibilities); + + + // buttons composite (ok and cancel) + Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + Button buttonOK = new Button(buttonsComposite, SWT.NONE); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + updateChanges(propertyTable); + exitValue = SWT.OK; + shell.dispose(); + } + }); + + final Button treatFailureButton = new Button(propertyGroup, SWT.CHECK); + treatFailureButton.setText(Messages.getString("org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.treatFailure")); //$NON-NLS-1$ + treatFailureButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + updateChanges(propertyTable); + treatFailure = treatFailureButton.getSelection(); + } + }); + if (!failureLocatedActionsAvailable){ + treatFailureButton.setEnabled(false); + } + } + + public int open(Hashtable stateResponsibilities) { + createShell(stateResponsibilities); + + shell.pack(); + Display display = getParent().getDisplay(); + Rectangle r = display.getClientArea(); + int centerX = r.width/2 - shell.getSize().x / 2; + int centerY = r.height/2 - shell.getSize().y / 2; + shell.setLocation(centerX, centerY); + shell.open(); + + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + + return exitValue; + } + + private void fillStereotypeTable(Table table, Hashtable stateResponsibilities) { + SimplePathNode node; + Vector list; + for (Enumeration e=stateResponsibilities.keys(); e.hasMoreElements();){ + node = (SimplePathNode)e.nextElement(); + list = (Vector)stateResponsibilities.get(node); + ExecutionState state = (ExecutionState)list.get(0); + if (state.getName().equals(ExecutionState.FAULTY_LITERAL.getName()) || state.getName().equals(ExecutionState.FAULTY_CURRENT_LITERAL.getName())){ + faultyResponsibilities .add(node); + } + } + for (Enumeration e=stateResponsibilities.keys(); e.hasMoreElements();) { + node = (SimplePathNode)e.nextElement(); + list = (Vector)stateResponsibilities.get(node); + ExecutionState state = (ExecutionState)list.get(0); + String instance = "None"; //$NON-NLS-1$ + if (!list.get(1).equals("None")){ //$NON-NLS-1$ + instance = ((ComponentRole)list.get(1)).getFullName(); + } + if (node instanceof ResponsibilityNode){ + final TableItem item = new TableItem(table, SWT.NONE); + item.setText(new String[] { node.getName(), state.getName(), instance}); + item.setData("Responsibility",node); //$NON-NLS-1$ + item.setData("Instance",list.get(1)); //$NON-NLS-1$ + if (validateBreakPoint(node,state.getName())){ + item.setChecked(true); + Vector var = new Vector(); + var.add(node); + if (!list.get(1).equals("None")) //$NON-NLS-1$ + var.add(list.get(1)); + else + var.add(null); + componentsRole.add(var); + } + } + } + } + + private boolean validateBreakPoint(SimplePathNode node, String state) { + if (faultyResponsibilities.contains(node)) + return true; + for (int i=0; i 0){ + return getPrevious ((SimplePathNode)node.uGetPrevious().get(0)); + } + else { + return null; + } + } + + private void updateChanges(Table table) { + TableItem[] tia = table.getItems(); + componentsRole.clear(); + for (int i = 0; i < tia.length; i++) { + if (failureLocatedActionsAvailable && tia[i].getChecked()){ + Vector var = new Vector(); + var.add(tia[i].getData("Responsibility")); //$NON-NLS-1$ + if (!(tia[i].getData("Instance") instanceof String)) //$NON-NLS-1$ + var.add(tia[i].getData("Instance")); //$NON-NLS-1$ + else + var.add(null); + componentsRole.add(var); + } + } + } + + public List getResponsibilitieNodes(){ + return componentsRole; + } + + public boolean isTreatFailure(){ + return treatFailure; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/engine.genmodel b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/engine.genmodel new file mode 100755 index 0000000..e0ded1f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/engine.genmodel @@ -0,0 +1,72 @@ + + + executionstate.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionmodel.ecore b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionmodel.ecore new file mode 100755 index 0000000..11fd95f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionmodel.ecore @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore new file mode 100755 index 0000000..3744d7f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.java new file mode 100755 index 0000000..deabcb8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/BasicMappingBasedFilter.java @@ -0,0 +1,11 @@ +/** * $Id: BasicMappingBasedFilter.java,v 1.4 2006/03/24 00:33:54 dacostae Exp $ * $Author: dacostae $ */ package org.isistan.flabot.engine.executionstate; + +/** + * + * @author $Author: dacostae $ + * @model + */ +public interface BasicMappingBasedFilter extends MappingBasedFilter{ + + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ContextCreationException.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ContextCreationException.java new file mode 100755 index 0000000..07cf381 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ContextCreationException.java @@ -0,0 +1,13 @@ +package org.isistan.flabot.engine.executionstate; + +public class ContextCreationException extends Exception { + private static final long serialVersionUID = 1L; + + public ContextCreationException(String message) { + super(message); + } + + public String toString() { + return this.getClass().getName() + ": " + getMessage(); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/Diagnostic.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/Diagnostic.java new file mode 100755 index 0000000..089a381 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/Diagnostic.java @@ -0,0 +1,74 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate; + +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EObject; + +/** + * Represents a state determination diagnostic + * @author mblech + * @model + */ +public interface Diagnostic extends EObject { + + /** + * Get the state determination strategy that created this diagnostic + * @return + * @model + */ + StateDeterminationStrategy getDiagnostician(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getDiagnostician Diagnostician}' reference. + * + * + * @param value the new value of the 'Diagnostician' reference. + * @see #getDiagnostician() + * @generated + */ + void setDiagnostician(StateDeterminationStrategy value); + + /** + * Get the diagnostic description + * @return + * @model + */ + String getDescription(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getDescription Description}' attribute. + * + * + * @param value the new value of the 'Description' attribute. + * @see #getDescription() + * @generated + */ + void setDescription(String value); + + /** + * Get the additional data provided by the state determination strategy + * @return + * @model keyType="String" valueType="Object" + */ + EMap getAdditionalData(); + + /** + * Get the state that was determined + * @return + * @model + */ + ExecutionState getState(); + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getState State}' attribute. + * + * + * @param value the new value of the 'State' attribute. + * @see org.isistan.flabot.engine.executionstate.ExecutionState + * @see #getState() + * @generated + */ + void setState(ExecutionState value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionState.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionState.java new file mode 100755 index 0000000..2043d69 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionState.java @@ -0,0 +1,326 @@ +/** + * $Id: ExecutionState.java,v 1.6 2006/03/31 00:29:42 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.AbstractEnumerator; + +/** + * Enumeration that represents the possible execution states for + * a responsibility + * @author $Author: mblech $ + * @model + */ +public class ExecutionState extends AbstractEnumerator { + + /** + * @model name="Executed" + */ + public static final int EXECUTED = 0; + + /** + * @model name="Faulty" + */ + public static final int FAULTY = 1; + + /** + * @model name="NotExecuted" + */ + public static final int NOT_EXECUTED = 2; + + /** + * @model name="NoActionState" + */ + public static final int NO_ACTION_STATE = 3; + + /** + * @model name="FaultyCurrent" + */ + public static final int FAULTY_CURRENT = 4; + + /** + * @model name="FaultyConstrain" + */ + public static final int FAULTY_CONSTRAIN = 5; + + /** + * @model name="FaultyPrevious" + */ + public static final int FAULTY_PREVIOUS = 6; + + /** + * @model name="FaultyPrecondition" + */ + public static final int FAULTY_PRECONDITION = 7; + + /** + * @model name="FaultyPath" + */ + public static final int FAULTY_PATH = 8; + + /** + * @model name="FaultyNextLevels" + */ + public static final int FAULTY_NEXT_LEVELS = 9; + + /** + * @model name="FaultyConstraintStart" + */ + public static final int FAULTY_CONSTRAINT_START = 10; + + /** + * @model name="ProbablyFaulty" + */ + public static final int PROBABLY_FAULTY = 11; + + /** + * @model name="Uncertain" + */ + public static final int UNCERTAIN = 12; + + /** + * @model name="MultipleErrors" + */ + public static final int MULTIPLE_ERRORS = 13; + + /** + * @model name="StateFromMapping" + */ + public static final int STATE_FROM_MAPPING = 14; + + /** + * The 'Executed' literal object. + * + * + * @see #EXECUTED + * @generated + * @ordered + */ + public static final ExecutionState EXECUTED_LITERAL = new ExecutionState(EXECUTED, "Executed"); + + /** + * The 'Faulty' literal object. + * + * + * @see #FAULTY + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_LITERAL = new ExecutionState(FAULTY, "Faulty"); + + /** + * The 'Not Executed' literal object. + * + * + * @see #NOT_EXECUTED + * @generated + * @ordered + */ + public static final ExecutionState NOT_EXECUTED_LITERAL = new ExecutionState(NOT_EXECUTED, "NotExecuted"); + + /** + * The 'No Action State' literal object. + * + * + * @see #NO_ACTION_STATE + * @generated + * @ordered + */ + public static final ExecutionState NO_ACTION_STATE_LITERAL = new ExecutionState(NO_ACTION_STATE, "NoActionState"); + + /** + * The 'Faulty Current' literal object. + * + * + * @see #FAULTY_CURRENT + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_CURRENT_LITERAL = new ExecutionState(FAULTY_CURRENT, "FaultyCurrent"); + + /** + * The 'Faulty Constrain' literal object. + * + * + * @see #FAULTY_CONSTRAIN + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_CONSTRAIN_LITERAL = new ExecutionState(FAULTY_CONSTRAIN, "FaultyConstrain"); + + /** + * The 'Faulty Previous' literal object. + * + * + * @see #FAULTY_PREVIOUS + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_PREVIOUS_LITERAL = new ExecutionState(FAULTY_PREVIOUS, "FaultyPrevious"); + + /** + * The 'Faulty Precondition' literal object. + * + * + * @see #FAULTY_PRECONDITION + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_PRECONDITION_LITERAL = new ExecutionState(FAULTY_PRECONDITION, "FaultyPrecondition"); + + /** + * The 'Faulty Path' literal object. + * + * + * @see #FAULTY_PATH + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_PATH_LITERAL = new ExecutionState(FAULTY_PATH, "FaultyPath"); + + /** + * The 'Faulty Next Levels' literal object. + * + * + * @see #FAULTY_NEXT_LEVELS + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_NEXT_LEVELS_LITERAL = new ExecutionState(FAULTY_NEXT_LEVELS, "FaultyNextLevels"); + + /** + * The 'Faulty Constraint Start' literal object. + * + * + * @see #FAULTY_CONSTRAINT_START + * @generated + * @ordered + */ + public static final ExecutionState FAULTY_CONSTRAINT_START_LITERAL = new ExecutionState(FAULTY_CONSTRAINT_START, "FaultyConstraintStart"); + + /** + * The 'Probably Faulty' literal object. + * + * + * @see #PROBABLY_FAULTY + * @generated + * @ordered + */ + public static final ExecutionState PROBABLY_FAULTY_LITERAL = new ExecutionState(PROBABLY_FAULTY, "ProbablyFaulty"); + + /** + * The 'Uncertain' literal object. + * + * + * @see #UNCERTAIN + * @generated + * @ordered + */ + public static final ExecutionState UNCERTAIN_LITERAL = new ExecutionState(UNCERTAIN, "Uncertain"); + + /** + * The 'Multiple Errors' literal object. + * + * + * @see #MULTIPLE_ERRORS + * @generated + * @ordered + */ + public static final ExecutionState MULTIPLE_ERRORS_LITERAL = new ExecutionState(MULTIPLE_ERRORS, "MultipleErrors"); + + /** + * The 'State From Mapping' literal object. + * + * + * @see #STATE_FROM_MAPPING + * @generated + * @ordered + */ + public static final ExecutionState STATE_FROM_MAPPING_LITERAL = new ExecutionState(STATE_FROM_MAPPING, "StateFromMapping"); + + /** + * An array of all the 'Execution State' enumerators. + * + * + * @generated + */ + private static final ExecutionState[] VALUES_ARRAY = + new ExecutionState[] { + EXECUTED_LITERAL, + FAULTY_LITERAL, + NOT_EXECUTED_LITERAL, + NO_ACTION_STATE_LITERAL, + FAULTY_CURRENT_LITERAL, + FAULTY_CONSTRAIN_LITERAL, + FAULTY_PREVIOUS_LITERAL, + FAULTY_PRECONDITION_LITERAL, + FAULTY_PATH_LITERAL, + FAULTY_NEXT_LEVELS_LITERAL, + FAULTY_CONSTRAINT_START_LITERAL, + PROBABLY_FAULTY_LITERAL, + UNCERTAIN_LITERAL, + MULTIPLE_ERRORS_LITERAL, + STATE_FROM_MAPPING_LITERAL, + }; + + /** + * A public read-only list of all the 'Execution State' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Execution State' literal with the specified name. + * + * + * @generated + */ + public static ExecutionState get(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + ExecutionState result = VALUES_ARRAY[i]; + if (result.toString().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Execution State' literal with the specified value. + * + * + * @generated + */ + public static ExecutionState get(int value) { + switch (value) { + case EXECUTED: return EXECUTED_LITERAL; + case FAULTY: return FAULTY_LITERAL; + case NOT_EXECUTED: return NOT_EXECUTED_LITERAL; + case NO_ACTION_STATE: return NO_ACTION_STATE_LITERAL; + case FAULTY_CURRENT: return FAULTY_CURRENT_LITERAL; + case FAULTY_CONSTRAIN: return FAULTY_CONSTRAIN_LITERAL; + case FAULTY_PREVIOUS: return FAULTY_PREVIOUS_LITERAL; + case FAULTY_PRECONDITION: return FAULTY_PRECONDITION_LITERAL; + case FAULTY_PATH: return FAULTY_PATH_LITERAL; + case FAULTY_NEXT_LEVELS: return FAULTY_NEXT_LEVELS_LITERAL; + case FAULTY_CONSTRAINT_START: return FAULTY_CONSTRAINT_START_LITERAL; + case PROBABLY_FAULTY: return PROBABLY_FAULTY_LITERAL; + case UNCERTAIN: return UNCERTAIN_LITERAL; + case MULTIPLE_ERRORS: return MULTIPLE_ERRORS_LITERAL; + case STATE_FROM_MAPPING: return STATE_FROM_MAPPING_LITERAL; + } + return null; + } + + private ExecutionState(int value, String name) { + super(value, name); + } + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionStateManager.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionStateManager.java new file mode 100755 index 0000000..1688a09 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionStateManager.java @@ -0,0 +1,132 @@ +package org.isistan.flabot.engine.executionstate; + +import java.util.Map; + +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtraceFactory; + +/** + * Useful class to operate with state determination strategy. + * @author usuario + * + */ +public class ExecutionStateManager { + /** + * Element id that is used to store elements in the extended data map + */ + public static final String STATE_DETERMINATION_STRATEGY_ELEMENT_ID="stateDeterminationStrategy"; + + public static final String PROLOG_PROVIDER_STRATEGY_ELEMENT_ID="prologProviderStrategy"; + + public static final String GENERAL_LOG_FILTER_STRATEGY_ELEMENT_ID="generalLogFilterStrategy"; + + /** + * Default state determination strategy + */ + public static final StateDeterminationStrategy defaultStateDeterminationStrategy=ExecutionstateFactory.eINSTANCE.createManualStateDeterminationStrategy(); + + /** + * Returns the state determination strategy associated with the given responsibility. + * @param responsibility + * @return + */ + public static StateDeterminationStrategy getStateDeterminationStrategy(Responsibility responsibility) { + if(responsibility==null) { + throw new IllegalArgumentException("responsibility cannot be null."); + } + StateDeterminationStrategy stateDeterminationStrategy = (StateDeterminationStrategy) responsibility.getExtendedData(EnginePlugin.SYMBOLIC_NAME, STATE_DETERMINATION_STRATEGY_ELEMENT_ID); + if(stateDeterminationStrategy==null) { + stateDeterminationStrategy=ExecutionstateFactory.eINSTANCE.createTraceBasedStateDeterminationStrategy(); + JavalogTraceInferenceStrategy traceInferenceStrategy = JavalogtraceFactory.eINSTANCE.createJavalogTraceInferenceStrategy(); + ((TraceBasedStateDeterminationStrategy)stateDeterminationStrategy).setTraceInferenceStrategy(traceInferenceStrategy); + responsibility.putExtendedData(EnginePlugin.SYMBOLIC_NAME, STATE_DETERMINATION_STRATEGY_ELEMENT_ID, stateDeterminationStrategy); + } + return stateDeterminationStrategy; + } + + public static PrologProviderStrategy getPrologProviderStrategy(ConditionEvent conditionEvent) { + if(conditionEvent==null) { + throw new IllegalArgumentException("conditionEvent cannot be null."); + } + PrologProviderStrategy prologProviderStrategy = (PrologProviderStrategy) conditionEvent.getExtendedData(EnginePlugin.SYMBOLIC_NAME, PROLOG_PROVIDER_STRATEGY_ELEMENT_ID); + if(prologProviderStrategy==null) { + prologProviderStrategy= ExecutionstateFactory.eINSTANCE.createSimplePrologProviderStrategy(); + conditionEvent.putExtendedData(EnginePlugin.SYMBOLIC_NAME, PROLOG_PROVIDER_STRATEGY_ELEMENT_ID, prologProviderStrategy); + } + return prologProviderStrategy; + } + + public static GeneralLogFilterStrategy getGeneralLogFilterStrategy(FlabotFileModel flabotFileModel) { + if(flabotFileModel==null) { + throw new IllegalArgumentException("flabot file model cannot be null."); + } + GeneralLogFilterStrategy generalLogFilterStrategy = (GeneralLogFilterStrategy) flabotFileModel.getExtendedData(EnginePlugin.SYMBOLIC_NAME, GENERAL_LOG_FILTER_STRATEGY_ELEMENT_ID); + if(generalLogFilterStrategy==null) { + generalLogFilterStrategy= ExecutionstateFactory.eINSTANCE.createSimpleGeneralLogFilterStrategy(); + flabotFileModel.putExtendedData(EnginePlugin.SYMBOLIC_NAME, GENERAL_LOG_FILTER_STRATEGY_ELEMENT_ID, generalLogFilterStrategy); + } + return generalLogFilterStrategy; + } + + /** + * Sets the state determination strategy associated with the given responsibility. + * Returns the previous set mapping or null if not set. + * + * @param responsibility + * @param mapping + * @return + */ + public static StateDeterminationStrategy setStateDeterminationStrategy(Responsibility responsibility, StateDeterminationStrategy stateDeterminationStrategy) { + return (StateDeterminationStrategy) responsibility.putExtendedData(EnginePlugin.SYMBOLIC_NAME, STATE_DETERMINATION_STRATEGY_ELEMENT_ID, stateDeterminationStrategy); + } + + public static PrologProviderStrategy setPrologProviderStrategy(ConditionEvent conditionEvent, PrologProviderStrategy prologProviderStrategy) { + return (PrologProviderStrategy) conditionEvent.putExtendedData(EnginePlugin.SYMBOLIC_NAME, PROLOG_PROVIDER_STRATEGY_ELEMENT_ID, prologProviderStrategy); + } + + public static GeneralLogFilterStrategy setGeneralLogFilterStrategy(FlabotFileModel flabotFileModel, GeneralLogFilterStrategy generalLogFilterStrategy) { + return (GeneralLogFilterStrategy) flabotFileModel.putExtendedData(EnginePlugin.SYMBOLIC_NAME, GENERAL_LOG_FILTER_STRATEGY_ELEMENT_ID, generalLogFilterStrategy); + } + + /** + * Get the state for the given responsibility node. This method is the only + * reasonable usage for this class in a normal environment. + * @param responsibilityNode the responsibility node whose state must be determined + * @param engineContext the engine's context parameters + * @param loader the engine's loader + * @return + * @throws StateDeterminationException + */ + public static Diagnostic getState(ResponsibilityNode responsibilityNode, + Map engineContext, Loader loader) { + StateDeterminationStrategy strategy = + getStateDeterminationStrategy(responsibilityNode.getResponsibility()); + + try { + return strategy.getState(responsibilityNode, engineContext, loader); + } catch (StateDeterminationException e) { + EnginePlugin.getDefault().getLogger().error( + "Exception calling state determination strategy:\n{}\n" + + "Falling back to default state determination strategy", + e); + try { + return defaultStateDeterminationStrategy.getState(responsibilityNode, engineContext, loader); + } catch (StateDeterminationException e1) { + EnginePlugin.getDefault().getLogger().error( + "Exception calling default state determination strategy:\n{}" + + "\nReturning 'Executed' state for responsibility as ultimate fallback", + e); + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setState(ExecutionState.EXECUTED_LITERAL); + diagnostic.setDescription("Forced execution state because the default state determination strategy threw an exception."); + return diagnostic; + } + } + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.java new file mode 100755 index 0000000..b51803a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstateFactory.java @@ -0,0 +1,137 @@ +/** + * + * + * + * $Id: ExecutionstateFactory.java,v 1.7 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate; + + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage + * @generated + */ +public interface ExecutionstateFactory extends EFactory{ + /** + * The singleton instance of the factory. + * + * + * @generated + */ + ExecutionstateFactory eINSTANCE = new org.isistan.flabot.engine.executionstate.impl.ExecutionstateFactoryImpl(); + + /** + * Returns a new object of class 'State Determination Strategy Registry'. + * + * + * @return a new object of class 'State Determination Strategy Registry'. + * @generated + */ + StateDeterminationStrategyRegistry createStateDeterminationStrategyRegistry(); + + /** + * Returns a new object of class 'Manual State Determination Strategy'. + * + * + * @return a new object of class 'Manual State Determination Strategy'. + * @generated + */ + ManualStateDeterminationStrategy createManualStateDeterminationStrategy(); + + /** + * Returns a new object of class 'Trace Based State Determination Strategy'. + * + * + * @return a new object of class 'Trace Based State Determination Strategy'. + * @generated + */ + TraceBasedStateDeterminationStrategy createTraceBasedStateDeterminationStrategy(); + + /** + * Returns a new object of class 'State From Mapping State Determination Strategy'. + * + * + * @return a new object of class 'State From Mapping State Determination Strategy'. + * @generated + */ + StateFromMappingStateDeterminationStrategy createStateFromMappingStateDeterminationStrategy(); + + /** + * Returns a new object of class 'Or Filter'. + * + * + * @return a new object of class 'Or Filter'. + * @generated + */ + OrFilter createOrFilter(); + + /** + * Returns a new object of class 'Simple Prolog Provider Strategy'. + * + * + * @return a new object of class 'Simple Prolog Provider Strategy'. + * @generated + */ + SimplePrologProviderStrategy createSimplePrologProviderStrategy(); + + /** + * Returns a new object of class 'Simple General Log Filter Strategy'. + * + * + * @return a new object of class 'Simple General Log Filter Strategy'. + * @generated + */ + SimpleGeneralLogFilterStrategy createSimpleGeneralLogFilterStrategy(); + + /** + * Returns a new object of class 'Manual Trace Inference Strategy'. + * + * + * @return a new object of class 'Manual Trace Inference Strategy'. + * @generated + */ + ManualTraceInferenceStrategy createManualTraceInferenceStrategy(); + + /** + * Returns a new object of class 'Simple Trace Inference Strategy'. + * + * + * @return a new object of class 'Simple Trace Inference Strategy'. + * @generated + */ + SimpleTraceInferenceStrategy createSimpleTraceInferenceStrategy(); + + /** + * Returns a new object of class 'Diagnostic'. + * + * + * @return a new object of class 'Diagnostic'. + * @generated + */ + Diagnostic createDiagnostic(); + + /** + * Returns a new object of class 'Basic Mapping Based Filter'. + * + * + * @return a new object of class 'Basic Mapping Based Filter'. + * @generated + */ + BasicMappingBasedFilter createBasicMappingBasedFilter(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + ExecutionstatePackage getExecutionstatePackage(); + +} //ExecutionstateFactory diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstatePackage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstatePackage.java new file mode 100755 index 0000000..657c69e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ExecutionstatePackage.java @@ -0,0 +1,1031 @@ +/** + * + * + * + * $Id: ExecutionstatePackage.java,v 1.13 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.isistan.flabot.coremodel.CoremodelPackage; +import org.isistan.flabot.trace.config.ConfigPackage; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *

    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.isistan.flabot.engine.executionstate.ExecutionstateFactory + * @model kind="package" + * @generated + */ +public interface ExecutionstatePackage extends EPackage{ + /** + * The package name. + * + * + * @generated + */ + String eNAME = "executionstate"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http:///org/isistan/flabot/engine/executionstate.ecore"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "org.isistan.flabot.engine.executionstate"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + ExecutionstatePackage eINSTANCE = org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl.init(); + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.MappingBasedFilterImpl Mapping Based Filter}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.MappingBasedFilterImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getMappingBasedFilter() + * @generated + */ + int MAPPING_BASED_FILTER = 4; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int MAPPING_BASED_FILTER__CONTEXT = ConfigPackage.FILTER__CONTEXT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int MAPPING_BASED_FILTER__MAPPING = ConfigPackage.FILTER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Log Filter' containment reference. + * + * + * @generated + * @ordered + */ + int MAPPING_BASED_FILTER__LOG_FILTER = ConfigPackage.FILTER_FEATURE_COUNT + 1; + + /** + * The number of structural features of the the 'Mapping Based Filter' class. + * + * + * @generated + * @ordered + */ + int MAPPING_BASED_FILTER_FEATURE_COUNT = ConfigPackage.FILTER_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.BasicMappingBasedFilterImpl Basic Mapping Based Filter}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.BasicMappingBasedFilterImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getBasicMappingBasedFilter() + * @generated + */ + int BASIC_MAPPING_BASED_FILTER = 0; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int BASIC_MAPPING_BASED_FILTER__CONTEXT = MAPPING_BASED_FILTER__CONTEXT; + + /** + * The feature id for the 'Mapping' containment reference. + * + * + * @generated + * @ordered + */ + int BASIC_MAPPING_BASED_FILTER__MAPPING = MAPPING_BASED_FILTER__MAPPING; + + /** + * The feature id for the 'Log Filter' containment reference. + * + * + * @generated + * @ordered + */ + int BASIC_MAPPING_BASED_FILTER__LOG_FILTER = MAPPING_BASED_FILTER__LOG_FILTER; + + /** + * The number of structural features of the the 'Basic Mapping Based Filter' class. + * + * + * @generated + * @ordered + */ + int BASIC_MAPPING_BASED_FILTER_FEATURE_COUNT = MAPPING_BASED_FILTER_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl Diagnostic}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getDiagnostic() + * @generated + */ + int DIAGNOSTIC = 1; + + /** + * The feature id for the 'Diagnostician' reference. + * + * + * @generated + * @ordered + */ + int DIAGNOSTIC__DIAGNOSTICIAN = 0; + + /** + * The feature id for the 'Description' attribute. + * + * + * @generated + * @ordered + */ + int DIAGNOSTIC__DESCRIPTION = 1; + + /** + * The feature id for the 'Additional Data' map. + * + * + * @generated + * @ordered + */ + int DIAGNOSTIC__ADDITIONAL_DATA = 2; + + /** + * The feature id for the 'State' attribute. + * + * + * @generated + * @ordered + */ + int DIAGNOSTIC__STATE = 3; + + /** + * The number of structural features of the the 'Diagnostic' class. + * + * + * @generated + * @ordered + */ + int DIAGNOSTIC_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyImpl State Determination Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getStateDeterminationStrategy() + * @generated + */ + int STATE_DETERMINATION_STRATEGY = 6; + + /** + * The feature id for the 'Responsibility' reference. + * + * + * @generated + * @ordered + */ + int STATE_DETERMINATION_STRATEGY__RESPONSIBILITY = CoremodelPackage.REGISTRABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the the 'State Determination Strategy' class. + * + * + * @generated + * @ordered + */ + int STATE_DETERMINATION_STRATEGY_FEATURE_COUNT = CoremodelPackage.REGISTRABLE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.ManualStateDeterminationStrategyImpl Manual State Determination Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.ManualStateDeterminationStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getManualStateDeterminationStrategy() + * @generated + */ + int MANUAL_STATE_DETERMINATION_STRATEGY = 2; + + /** + * The feature id for the 'Responsibility' reference. + * + * + * @generated + * @ordered + */ + int MANUAL_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY = STATE_DETERMINATION_STRATEGY__RESPONSIBILITY; + + /** + * The number of structural features of the the 'Manual State Determination Strategy' class. + * + * + * @generated + * @ordered + */ + int MANUAL_STATE_DETERMINATION_STRATEGY_FEATURE_COUNT = STATE_DETERMINATION_STRATEGY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.TraceInferenceStrategyImpl Trace Inference Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.TraceInferenceStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getTraceInferenceStrategy() + * @generated + */ + int TRACE_INFERENCE_STRATEGY = 9; + + /** + * The feature id for the 'State Determination Strategy' container reference. + * + * + * @generated + * @ordered + */ + int TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY = 0; + + /** + * The number of structural features of the the 'Trace Inference Strategy' class. + * + * + * @generated + * @ordered + */ + int TRACE_INFERENCE_STRATEGY_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.ManualTraceInferenceStrategyImpl Manual Trace Inference Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.ManualTraceInferenceStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getManualTraceInferenceStrategy() + * @generated + */ + int MANUAL_TRACE_INFERENCE_STRATEGY = 3; + + /** + * The feature id for the 'State Determination Strategy' container reference. + * + * + * @generated + * @ordered + */ + int MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY = TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY; + + /** + * The number of structural features of the the 'Manual Trace Inference Strategy' class. + * + * + * @generated + * @ordered + */ + int MANUAL_TRACE_INFERENCE_STRATEGY_FEATURE_COUNT = TRACE_INFERENCE_STRATEGY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.SimpleTraceInferenceStrategyImpl Simple Trace Inference Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.SimpleTraceInferenceStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getSimpleTraceInferenceStrategy() + * @generated + */ + int SIMPLE_TRACE_INFERENCE_STRATEGY = 5; + + /** + * The feature id for the 'State Determination Strategy' container reference. + * + * + * @generated + * @ordered + */ + int SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY = TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY; + + /** + * The number of structural features of the the 'Simple Trace Inference Strategy' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_TRACE_INFERENCE_STRATEGY_FEATURE_COUNT = TRACE_INFERENCE_STRATEGY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyRegistryImpl State Determination Strategy Registry}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyRegistryImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getStateDeterminationStrategyRegistry() + * @generated + */ + int STATE_DETERMINATION_STRATEGY_REGISTRY = 7; + + /** + * The feature id for the 'Registry' map. + * + * + * @generated + * @ordered + */ + int STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY = 0; + + /** + * The number of structural features of the the 'State Determination Strategy Registry' class. + * + * + * @generated + * @ordered + */ + int STATE_DETERMINATION_STRATEGY_REGISTRY_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.TraceBasedStateDeterminationStrategyImpl Trace Based State Determination Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.TraceBasedStateDeterminationStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getTraceBasedStateDeterminationStrategy() + * @generated + */ + int TRACE_BASED_STATE_DETERMINATION_STRATEGY = 8; + + /** + * The feature id for the 'Responsibility' reference. + * + * + * @generated + * @ordered + */ + int TRACE_BASED_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY = STATE_DETERMINATION_STRATEGY__RESPONSIBILITY; + + /** + * The feature id for the 'Trace Inference Strategy' containment reference. + * + * + * @generated + * @ordered + */ + int TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY = STATE_DETERMINATION_STRATEGY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the the 'Trace Based State Determination Strategy' class. + * + * + * @generated + * @ordered + */ + int TRACE_BASED_STATE_DETERMINATION_STRATEGY_FEATURE_COUNT = STATE_DETERMINATION_STRATEGY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.ResponsibilityToStateDeterminationStrategyMapEntryImpl Responsibility To State Determination Strategy Map Entry}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.ResponsibilityToStateDeterminationStrategyMapEntryImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getResponsibilityToStateDeterminationStrategyMapEntry() + * @generated + */ + int RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY = 10; + + /** + * The feature id for the 'Key' reference. + * + * + * @generated + * @ordered + */ + int RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the 'Responsibility To State Determination Strategy Map Entry' class. + * + * + * @generated + * @ordered + */ + int RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.EStringToEJavaObjectMapEntryImpl EString To EJava Object Map Entry}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.EStringToEJavaObjectMapEntryImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getEStringToEJavaObjectMapEntry() + * @generated + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY = 11; + + /** + * The feature id for the 'Key' attribute. + * + * + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the 'EString To EJava Object Map Entry' class. + * + * + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.StateFromMappingStateDeterminationStrategyImpl State From Mapping State Determination Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.StateFromMappingStateDeterminationStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getStateFromMappingStateDeterminationStrategy() + * @generated + */ + int STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY = 12; + + /** + * The feature id for the 'Responsibility' reference. + * + * + * @generated + * @ordered + */ + int STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY = STATE_DETERMINATION_STRATEGY__RESPONSIBILITY; + + /** + * The number of structural features of the the 'State From Mapping State Determination Strategy' class. + * + * + * @generated + * @ordered + */ + int STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY_FEATURE_COUNT = STATE_DETERMINATION_STRATEGY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.OrFilterImpl Or Filter}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.OrFilterImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getOrFilter() + * @generated + */ + int OR_FILTER = 13; + + /** + * The feature id for the 'Context' container reference. + * + * + * @generated + * @ordered + */ + int OR_FILTER__CONTEXT = ConfigPackage.FILTER__CONTEXT; + + /** + * The feature id for the 'Combined Filters' reference list. + * + * + * @generated + * @ordered + */ + int OR_FILTER__COMBINED_FILTERS = ConfigPackage.FILTER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the the 'Or Filter' class. + * + * + * @generated + * @ordered + */ + int OR_FILTER_FEATURE_COUNT = ConfigPackage.FILTER_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.PrologProviderStrategy Prolog Provider Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.PrologProviderStrategy + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getPrologProviderStrategy() + * @generated + */ + int PROLOG_PROVIDER_STRATEGY = 14; + + /** + * The number of structural features of the the 'Prolog Provider Strategy' class. + * + * + * @generated + * @ordered + */ + int PROLOG_PROVIDER_STRATEGY_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.SimplePrologProviderStrategyImpl Simple Prolog Provider Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.SimplePrologProviderStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getSimplePrologProviderStrategy() + * @generated + */ + int SIMPLE_PROLOG_PROVIDER_STRATEGY = 15; + + /** + * The number of structural features of the the 'Simple Prolog Provider Strategy' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_PROLOG_PROVIDER_STRATEGY_FEATURE_COUNT = PROLOG_PROVIDER_STRATEGY_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy General Log Filter Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getGeneralLogFilterStrategy() + * @generated + */ + int GENERAL_LOG_FILTER_STRATEGY = 16; + + /** + * The number of structural features of the the 'General Log Filter Strategy' class. + * + * + * @generated + * @ordered + */ + int GENERAL_LOG_FILTER_STRATEGY_FEATURE_COUNT = 0; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.impl.SimpleGeneralLogFilterStrategyImpl Simple General Log Filter Strategy}' class. + * + * + * @see org.isistan.flabot.engine.executionstate.impl.SimpleGeneralLogFilterStrategyImpl + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getSimpleGeneralLogFilterStrategy() + * @generated + */ + int SIMPLE_GENERAL_LOG_FILTER_STRATEGY = 17; + + /** + * The feature id for the 'Prolog Code Text' attribute. + * + * + * @generated + * @ordered + */ + int SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT = GENERAL_LOG_FILTER_STRATEGY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the the 'Simple General Log Filter Strategy' class. + * + * + * @generated + * @ordered + */ + int SIMPLE_GENERAL_LOG_FILTER_STRATEGY_FEATURE_COUNT = GENERAL_LOG_FILTER_STRATEGY_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.ExecutionState Execution State}' enum. + * + * + * @see org.isistan.flabot.engine.executionstate.ExecutionState + * @see org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl#getExecutionState() + * @generated + */ + int EXECUTION_STATE = 18; + + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter Basic Mapping Based Filter}'. + * + * + * @return the meta object for class 'Basic Mapping Based Filter'. + * @see org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter + * @generated + */ + EClass getBasicMappingBasedFilter(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.Diagnostic Diagnostic}'. + * + * + * @return the meta object for class 'Diagnostic'. + * @see org.isistan.flabot.engine.executionstate.Diagnostic + * @generated + */ + EClass getDiagnostic(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getDiagnostician Diagnostician}'. + * + * + * @return the meta object for the reference 'Diagnostician'. + * @see org.isistan.flabot.engine.executionstate.Diagnostic#getDiagnostician() + * @see #getDiagnostic() + * @generated + */ + EReference getDiagnostic_Diagnostician(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getDescription Description}'. + * + * + * @return the meta object for the attribute 'Description'. + * @see org.isistan.flabot.engine.executionstate.Diagnostic#getDescription() + * @see #getDiagnostic() + * @generated + */ + EAttribute getDiagnostic_Description(); + + /** + * Returns the meta object for the map '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getAdditionalData Additional Data}'. + * + * + * @return the meta object for the map 'Additional Data'. + * @see org.isistan.flabot.engine.executionstate.Diagnostic#getAdditionalData() + * @see #getDiagnostic() + * @generated + */ + EReference getDiagnostic_AdditionalData(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.engine.executionstate.Diagnostic#getState State}'. + * + * + * @return the meta object for the attribute 'State'. + * @see org.isistan.flabot.engine.executionstate.Diagnostic#getState() + * @see #getDiagnostic() + * @generated + */ + EAttribute getDiagnostic_State(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy Manual State Determination Strategy}'. + * + * + * @return the meta object for class 'Manual State Determination Strategy'. + * @see org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy + * @generated + */ + EClass getManualStateDeterminationStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy Manual Trace Inference Strategy}'. + * + * + * @return the meta object for class 'Manual Trace Inference Strategy'. + * @see org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy + * @generated + */ + EClass getManualTraceInferenceStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter Mapping Based Filter}'. + * + * + * @return the meta object for class 'Mapping Based Filter'. + * @see org.isistan.flabot.engine.executionstate.MappingBasedFilter + * @generated + */ + EClass getMappingBasedFilter(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter#getMapping Mapping}'. + * + * + * @return the meta object for the containment reference 'Mapping'. + * @see org.isistan.flabot.engine.executionstate.MappingBasedFilter#getMapping() + * @see #getMappingBasedFilter() + * @generated + */ + EReference getMappingBasedFilter_Mapping(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter#getLogFilter Log Filter}'. + * + * + * @return the meta object for the containment reference 'Log Filter'. + * @see org.isistan.flabot.engine.executionstate.MappingBasedFilter#getLogFilter() + * @see #getMappingBasedFilter() + * @generated + */ + EReference getMappingBasedFilter_LogFilter(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy Simple Trace Inference Strategy}'. + * + * + * @return the meta object for class 'Simple Trace Inference Strategy'. + * @see org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy + * @generated + */ + EClass getSimpleTraceInferenceStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategy State Determination Strategy}'. + * + * + * @return the meta object for class 'State Determination Strategy'. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategy + * @generated + */ + EClass getStateDeterminationStrategy(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategy#getResponsibility Responsibility}'. + * + * + * @return the meta object for the reference 'Responsibility'. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategy#getResponsibility() + * @see #getStateDeterminationStrategy() + * @generated + */ + EReference getStateDeterminationStrategy_Responsibility(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry State Determination Strategy Registry}'. + * + * + * @return the meta object for class 'State Determination Strategy Registry'. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry + * @generated + */ + EClass getStateDeterminationStrategyRegistry(); + + /** + * Returns the meta object for the map '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry#getRegistry Registry}'. + * + * + * @return the meta object for the map 'Registry'. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry#getRegistry() + * @see #getStateDeterminationStrategyRegistry() + * @generated + */ + EReference getStateDeterminationStrategyRegistry_Registry(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy Trace Based State Determination Strategy}'. + * + * + * @return the meta object for class 'Trace Based State Determination Strategy'. + * @see org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy + * @generated + */ + EClass getTraceBasedStateDeterminationStrategy(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy#getTraceInferenceStrategy Trace Inference Strategy}'. + * + * + * @return the meta object for the containment reference 'Trace Inference Strategy'. + * @see org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy#getTraceInferenceStrategy() + * @see #getTraceBasedStateDeterminationStrategy() + * @generated + */ + EReference getTraceBasedStateDeterminationStrategy_TraceInferenceStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.TraceInferenceStrategy Trace Inference Strategy}'. + * + * + * @return the meta object for class 'Trace Inference Strategy'. + * @see org.isistan.flabot.engine.executionstate.TraceInferenceStrategy + * @generated + */ + EClass getTraceInferenceStrategy(); + + /** + * Returns the meta object for the container reference '{@link org.isistan.flabot.engine.executionstate.TraceInferenceStrategy#getStateDeterminationStrategy State Determination Strategy}'. + * + * + * @return the meta object for the container reference 'State Determination Strategy'. + * @see org.isistan.flabot.engine.executionstate.TraceInferenceStrategy#getStateDeterminationStrategy() + * @see #getTraceInferenceStrategy() + * @generated + */ + EReference getTraceInferenceStrategy_StateDeterminationStrategy(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry Responsibility To State Determination Strategy Map Entry}'. + * + * + * @return the meta object for class 'Responsibility To State Determination Strategy Map Entry'. + * @see java.util.Map.Entry + * @model keyType="org.isistan.flabot.coremodel.Responsibility" + * valueType="org.isistan.flabot.engine.executionstate.StateDeterminationStrategy" + * @generated + */ + EClass getResponsibilityToStateDeterminationStrategyMapEntry(); + + /** + * Returns the meta object for the reference '{@link java.util.Map.Entry Key}'. + * + * + * @return the meta object for the reference 'Key'. + * @see java.util.Map.Entry + * @see #getResponsibilityToStateDeterminationStrategyMapEntry() + * @generated + */ + EReference getResponsibilityToStateDeterminationStrategyMapEntry_Key(); + + /** + * Returns the meta object for the reference '{@link java.util.Map.Entry Value}'. + * + * + * @return the meta object for the reference 'Value'. + * @see java.util.Map.Entry + * @see #getResponsibilityToStateDeterminationStrategyMapEntry() + * @generated + */ + EReference getResponsibilityToStateDeterminationStrategyMapEntry_Value(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry EString To EJava Object Map Entry}'. + * + * + * @return the meta object for class 'EString To EJava Object Map Entry'. + * @see java.util.Map.Entry + * @model keyType="java.lang.String" + * valueType="java.lang.Object" + * @generated + */ + EClass getEStringToEJavaObjectMapEntry(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry Key}'. + * + * + * @return the meta object for the attribute 'Key'. + * @see java.util.Map.Entry + * @see #getEStringToEJavaObjectMapEntry() + * @generated + */ + EAttribute getEStringToEJavaObjectMapEntry_Key(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see java.util.Map.Entry + * @see #getEStringToEJavaObjectMapEntry() + * @generated + */ + EAttribute getEStringToEJavaObjectMapEntry_Value(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy State From Mapping State Determination Strategy}'. + * + * + * @return the meta object for class 'State From Mapping State Determination Strategy'. + * @see org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy + * @generated + */ + EClass getStateFromMappingStateDeterminationStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.OrFilter Or Filter}'. + * + * + * @return the meta object for class 'Or Filter'. + * @see org.isistan.flabot.engine.executionstate.OrFilter + * @generated + */ + EClass getOrFilter(); + + /** + * Returns the meta object for the reference list '{@link org.isistan.flabot.engine.executionstate.OrFilter#getCombinedFilters Combined Filters}'. + * + * + * @return the meta object for the reference list 'Combined Filters'. + * @see org.isistan.flabot.engine.executionstate.OrFilter#getCombinedFilters() + * @see #getOrFilter() + * @generated + */ + EReference getOrFilter_CombinedFilters(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.PrologProviderStrategy Prolog Provider Strategy}'. + * + * + * @return the meta object for class 'Prolog Provider Strategy'. + * @see org.isistan.flabot.engine.executionstate.PrologProviderStrategy + * @generated + */ + EClass getPrologProviderStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy Simple Prolog Provider Strategy}'. + * + * + * @return the meta object for class 'Simple Prolog Provider Strategy'. + * @see org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy + * @generated + */ + EClass getSimplePrologProviderStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy General Log Filter Strategy}'. + * + * + * @return the meta object for class 'General Log Filter Strategy'. + * @see org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy + * @generated + */ + EClass getGeneralLogFilterStrategy(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy Simple General Log Filter Strategy}'. + * + * + * @return the meta object for class 'Simple General Log Filter Strategy'. + * @see org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy + * @generated + */ + EClass getSimpleGeneralLogFilterStrategy(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy#getPrologCodeText Prolog Code Text}'. + * + * + * @return the meta object for the attribute 'Prolog Code Text'. + * @see org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy#getPrologCodeText() + * @see #getSimpleGeneralLogFilterStrategy() + * @generated + */ + EAttribute getSimpleGeneralLogFilterStrategy_PrologCodeText(); + + /** + * Returns the meta object for enum '{@link org.isistan.flabot.engine.executionstate.ExecutionState Execution State}'. + * + * + * @return the meta object for enum 'Execution State'. + * @see org.isistan.flabot.engine.executionstate.ExecutionState + * @generated + */ + EEnum getExecutionState(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + ExecutionstateFactory getExecutionstateFactory(); + +} //ExecutionstatePackage diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.java new file mode 100755 index 0000000..9a05b27 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/GeneralLogFilterStrategy.java @@ -0,0 +1,27 @@ +/** + * + * + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'General Log Filter Strategy'. + * + * + * + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#getGeneralLogFilterStrategy() + * @model interface="true" abstract="true" + * @generated + */ +public interface GeneralLogFilterStrategy extends EObject{ + + String getPrologCode(); + + void resetProlog(); + +} // GeneralLogFilterStrategy diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualStateDeterminationStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualStateDeterminationStrategy.java new file mode 100755 index 0000000..225e2ff --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualStateDeterminationStrategy.java @@ -0,0 +1,16 @@ +/** + * $Id: ManualStateDeterminationStrategy.java,v 1.1 2006/01/27 00:10:12 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +/** + * State determination strategy that shows a dialog to the user + * to let him decide the actual execution state. + * @author $Author: mblech $ + * @model + */ +public interface ManualStateDeterminationStrategy + extends StateDeterminationStrategy { + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.java new file mode 100755 index 0000000..a94d890 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/ManualTraceInferenceStrategy.java @@ -0,0 +1,15 @@ +/** + * $Id: ManualTraceInferenceStrategy.java,v 1.1 2006/01/27 00:10:12 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +/** + * Simple trace inference strategy that shows the trace log to the user and + * lets him decide. + * @author $Author: mblech $ + * @model + */ +public interface ManualTraceInferenceStrategy extends TraceInferenceStrategy { + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/MappingBasedFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/MappingBasedFilter.java new file mode 100755 index 0000000..35ed4c9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/MappingBasedFilter.java @@ -0,0 +1,37 @@ +/** * $Id: MappingBasedFilter.java,v 1.5 2006/03/27 23:53:01 dacostae Exp $ * $Author: dacostae $ */ package org.isistan.flabot.engine.executionstate; + +import org.isistan.flabot.launcher.filter.filtermodel.LogFilter; import org.isistan.flabot.mapping.mappingmodel.Mapping; import org.isistan.flabot.trace.config.Filter; /** + * Filter for gauges that used a responsibility Mapping + * @model abstract="true" + */ +public interface MappingBasedFilter extends Filter{ + /** + * The mapping on which this filter is based + * @model containment="true" + * @return + */ + Mapping getMapping(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter#getMapping Mapping}' containment reference. + * + * + * @param value the new value of the 'Mapping' containment reference. + * @see #getMapping() + * @generated + */ + void setMapping(Mapping value); + + /** * The log filter used to filter gauges * @model containment="true" * @param logFilter */ public LogFilter getLogFilter(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter#getLogFilter Log Filter}' containment reference. + * + * + * @param value the new value of the 'Log Filter' containment reference. + * @see #getLogFilter() + * @generated + */ + void setLogFilter(LogFilter value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/OrFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/OrFilter.java new file mode 100755 index 0000000..23f9df2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/OrFilter.java @@ -0,0 +1,23 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate; + +import org.eclipse.emf.common.util.EList; +import org.isistan.flabot.trace.config.Filter; + +/** + * Or filter: passes whenever any of the combined filters pass + * @author mblech + * @model + */ +public interface OrFilter extends Filter { + + /** + * Get the combined filters + * @return + * @model type="Filter" + */ + EList getCombinedFilters(); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/PrologProviderStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/PrologProviderStrategy.java new file mode 100755 index 0000000..dc52c95 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/PrologProviderStrategy.java @@ -0,0 +1,28 @@ +/** + * + * + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate; + +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.coremodel.ConditionEvent; + +/** + * + * A representation of the model object 'Prolog Provider Strategy'. + * + * + * + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#getPrologProviderStrategy() + * @model interface="true" abstract="true" + * @generated + */ +public interface PrologProviderStrategy extends EObject { + + String getPrologCode(ConditionEvent conditionEvent); + + void resetProlog(); + +} // PrologProviderStrategy diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleGeneralLogFilterStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleGeneralLogFilterStrategy.java new file mode 100755 index 0000000..9ca4220 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleGeneralLogFilterStrategy.java @@ -0,0 +1,53 @@ +/** + * + * + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate; + + +/** + * + * A representation of the model object 'Simple General Log Filter Strategy'. + * + * + *

+ * The following features are supported: + *

    + *
  • {@link org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy#getPrologCodeText Prolog Code Text}
  • + *
+ *

+ * + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#getSimpleGeneralLogFilterStrategy() + * @model + * @generated + */ +public interface SimpleGeneralLogFilterStrategy extends GeneralLogFilterStrategy{ + /** + * Returns the value of the 'Prolog Code Text' attribute. + * + *

+ * If the meaning of the 'Prolog Code Text' attribute isn't clear, + * there really should be more of a description here... + *

+ * + * @return the value of the 'Prolog Code Text' attribute. + * @see #setPrologCodeText(String) + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#getSimpleGeneralLogFilterStrategy_PrologCodeText() + * @model + * @generated + */ + String getPrologCodeText(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy#getPrologCodeText Prolog Code Text}' attribute. + * + * + * @param value the new value of the 'Prolog Code Text' attribute. + * @see #getPrologCodeText() + * @generated + */ + void setPrologCodeText(String value); + +} // SimpleGeneralLogFilterStrategy diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.java new file mode 100755 index 0000000..e380aae --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimplePrologProviderStrategy.java @@ -0,0 +1,21 @@ +/** + * + * + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate; + +/** + * + * A representation of the model object 'Simple Prolog Provider Strategy'. + * + * + * + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#getSimplePrologProviderStrategy() + * @model + * @generated + */ +public interface SimplePrologProviderStrategy extends PrologProviderStrategy { + +} // SimplePrologProviderStrategy diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleTraceInferenceStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleTraceInferenceStrategy.java new file mode 100755 index 0000000..68c5d8c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/SimpleTraceInferenceStrategy.java @@ -0,0 +1,16 @@ +/** + * $Id: SimpleTraceInferenceStrategy.java,v 1.1 2006/01/27 00:10:12 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +/** + * Simple trace inference strategy: if the log is empty, returns NotExecuted; + * if any tag contains an exception, returns Faulty; otherwise, it returns + * Executed + * @author $Author: mblech $ + * @model + */ +public interface SimpleTraceInferenceStrategy extends TraceInferenceStrategy { + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationException.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationException.java new file mode 100755 index 0000000..9db0e34 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationException.java @@ -0,0 +1,43 @@ +/** + * $Id: StateDeterminationException.java,v 1.4 2006/02/20 23:11:26 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.engine.executionstate; + + + +/** + * Thrown when the execution state can't be determined because of an internal + * StateDeterminationStrategy implementation-specific error + * @author $Author: dacostae $ + * + */ +public class StateDeterminationException extends Exception { + private static final long serialVersionUID = 1L; + + /** + * Construct an instance with the given cause + * @param cause + */ + public StateDeterminationException(Throwable cause) { + super(cause); + } + + /** + * Construct an instance with the given message and cause + * @param message + * @param cause + */ + public StateDeterminationException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Construct an instance with the given message + * @param message + */ + public StateDeterminationException(String message) { + super(message); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.java new file mode 100755 index 0000000..37ae27c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategy.java @@ -0,0 +1,52 @@ +/** + * $Id: StateDeterminationStrategy.java,v 1.7 2006/03/22 03:28:54 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate; + + +import java.util.Map; + +import org.isistan.flabot.coremodel.Registrable; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.engine.Loader; + +/** + * Determines execution states for a given responsibility node. + * @author $Author: franco $ + * @model abstract="true" + */ +public interface StateDeterminationStrategy extends Registrable{ + + /** + * Get the state for the given node + * @param node + * @param engineContext + * @param loader the engine's loader + * @return + * @throws StateDeterminationException + */ + Diagnostic getState(ResponsibilityNode node, Map engineContext, Loader loader) throws StateDeterminationException; + + /** + * Get the responsibility that this strategy is associated to + * @model + */ + Responsibility getResponsibility(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategy#getResponsibility Responsibility}' reference. + * + * + * @param value the new value of the 'Responsibility' reference. + * @see #getResponsibility() + * @generated + */ + void setResponsibility(Responsibility value); + + + void checkMapping(); + + void checkFilter(); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategyRegistry.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategyRegistry.java new file mode 100755 index 0000000..7b16154 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateDeterminationStrategyRegistry.java @@ -0,0 +1,24 @@ +/** + * $Id: StateDeterminationStrategyRegistry.java,v 1.1 2006/01/27 00:10:12 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + + +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EObject; + +/** + * Registers State Determination Strategies using a responsibility as a key + * @author $Author: mblech $ + * @model + */ +public interface StateDeterminationStrategyRegistry extends EObject { + + /** + * Get the registry's map. + * @return + * @model keyType="org.isistan.flabot.coremodel.Responsibility" valueType="StateDeterminationStrategy" + */ + EMap getRegistry(); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.java new file mode 100755 index 0000000..1972535 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/StateFromMappingStateDeterminationStrategy.java @@ -0,0 +1,17 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate; + +/** + * This state determination strategy always returns the "StateFromMapping" + * execution state so that the engine takes the execution state from the + * mapped architectural responsibility. + * @author mblech + * @model + * + */ +public interface StateFromMappingStateDeterminationStrategy extends + StateDeterminationStrategy { + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceBasedStateDeterminationStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceBasedStateDeterminationStrategy.java new file mode 100755 index 0000000..9beefb6 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceBasedStateDeterminationStrategy.java @@ -0,0 +1,106 @@ +/** + * $Id: TraceBasedStateDeterminationStrategy.java,v 1.20 2006/03/31 00:33:23 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +import java.util.List; + +import org.isistan.flabot.engine.executionstate.correlation.Correlator; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.config.Context; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.TraceLog; + +/** + * State determination strategy that requires certain contexts to be logged + * in an instrumented application execution, to then use these contexts to + * determine responsibility execution state. Actual state determination is + * delegated to the trace inference strategy. + * @author $Author: mblech $ + * @model + */ +public interface TraceBasedStateDeterminationStrategy extends + StateDeterminationStrategy{ + + /** + * Key where the analyzed tags are stored in the diagnostic + */ + static final String ANALYZED_TAGS_KEY = "analyzedTags"; + + /** + * Get this strategy's required log configuration context + * @return the required context + */ + Context getContext() throws ContextCreationException; + + /** + * Get the trace inference strategy for this trace based state + * determination strategy + * @return + * @model containment="true" opposite="stateDeterminationStrategy" + */ + TraceInferenceStrategy getTraceInferenceStrategy(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy#getTraceInferenceStrategy Trace Inference Strategy}' containment reference. + * + * + * @param value the new value of the 'Trace Inference Strategy' containment reference. + * @see #getTraceInferenceStrategy() + * @generated + */ + void setTraceInferenceStrategy(TraceInferenceStrategy value); + + /** + * Get the list of all tags in this strategy's context + * @return the list of tags + */ + List getAllTags(); + + /** + * Get the list of tags (filtered using the given tag scope) + * @param filter the tag filter + * @return the list of tags within the given scope + */ + List getTags(TagFilter filter); + + /** + * Get the list of correlated tags from the current context, given the + * scope, correlation tags and the correlator. + * @param tags the uncorrelated tags + * @param scope the scope + * @param correlationTags the set of tags to which this context's tags must + * be correlated to + * @param correlator the correlator that must be used + * @return a subset the current context's tags that are accepted by + * the given correlator + */ + List getCorrelatedTags(List tags, TagFilter scope, List correlationTags, Correlator correlator); + + /** + * Get the last list of tags that was used by this state determination strategy + * @return + */ + List getLastTags(); + + /** + * Get the current log + * @return + */ + TraceLog getCurrentLog(); + + /** + * Get the current scope filter + * @return + */ + TagFilter getScopeFilter(); + + /** + * Get the current scope mapping + * @return + */ + Mapping getCurrentScope(); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceInferenceStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceInferenceStrategy.java new file mode 100755 index 0000000..cb3ab91 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceInferenceStrategy.java @@ -0,0 +1,56 @@ +/** + * $Id: TraceInferenceStrategy.java,v 1.4 2006/03/15 02:37:00 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate; + +import java.util.Map; + +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.mapping.mappingmodel.Mapping; + +/** + * A trace inference strategy determines the execution state of a + * responsibility node using the trace log provided by its associated + * TraceBasedStateDeterminationStrategy. + * @author $Author: mblech $ + * @model abstract="true" + */ +public interface TraceInferenceStrategy extends EObject { + + /** + * Infer the execution state of the given responsibility node using + * the log provided by the LogBasedStateDeterminationStrategy + * @param node the node whose execution state must be determined + * @param engineContext the engine's context parameters + * @return the inferred execution state and diagnostic for the given node + * @throws TraceLogManagerException when there's an error trying to find the current log + * @throws StateDeterminationException when an internal error occurs + */ + Diagnostic getState(ResponsibilityNode node, Map engineContext) throws TraceLogManagerException, StateDeterminationException; + + /** + * Get this TraceInferenceStrategy's associated + * TraceBasedDeterminationStrategy + * @return + * @model opposite="traceInferenceStrategy" + */ + TraceBasedStateDeterminationStrategy getStateDeterminationStrategy(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.TraceInferenceStrategy#getStateDeterminationStrategy State Determination Strategy}' container reference. + * + * + * @param value the new value of the 'State Determination Strategy' container reference. + * @see #getStateDeterminationStrategy() + * @generated + */ + void setStateDeterminationStrategy(TraceBasedStateDeterminationStrategy value); + + + void checkMapping(Responsibility responsibility); + + void checkFilter(Responsibility responsibility); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManager.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManager.java new file mode 100755 index 0000000..ff76099 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManager.java @@ -0,0 +1,118 @@ +/** + * $Id: TraceLogManager.java,v 1.12 2006/05/03 20:41:24 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.engine.executionstate; + +import java.io.IOException; +import java.util.Collections; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.dialogs.ISelectionStatusValidator; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.trace.log.TraceLog; +import org.isistan.flabot.util.resource.PathUtil; +import org.isistan.flabot.util.resource.ResourceSelectionDialog; +import org.isistan.flabot.util.resource.filter.FilePatternFilter; +import org.isistan.flabot.util.resource.validator.CompositeValidator; +import org.isistan.flabot.util.resource.validator.FileValidator; +import org.isistan.flabot.util.resource.validator.SelectionSizeValidator; +import org.isistan.flabot.util.swt.SWTUtils; + +/** + * Manager of trace logs. Holds a reference to the current log. + * @author $Author: dacostae $ + */ +public class TraceLogManager { + private static TraceLogManager instance; + private TraceLog currentLog; + private TraceLog loadedTracelog; + + /** + * Create a new instance of TraceLogManager + */ + private TraceLogManager() { + } + + public static TraceLogManager getDefault() { + if (instance == null) + instance = new TraceLogManager(); + return instance; + } + + /** + * Get the current log + * @return + */ + public TraceLog getCurrentLogg() throws TraceLogManagerException { + if (currentLog == null) { + currentLog = loadLog(); + } + return currentLog; + } + + public TraceLog loadLog() { + Runnable loadLogRunnable = new Runnable(){ + public void run() { + Shell shell = SWTUtils.getSomeShell(FlabotPlugin.getDefault().getWorkbench().getDisplay()); + + ISelectionStatusValidator validator=new CompositeValidator( + new SelectionSizeValidator(EnginePlugin.SYMBOLIC_NAME, 1,1), + new FileValidator(EnginePlugin.SYMBOLIC_NAME)); + + ResourceSelectionDialog dlg=ResourceSelectionDialog.getInstance(); + Object[] results = dlg.open( + shell, + "Select Trace Log File", + "Select a trace log file:", + new FilePatternFilter(shell.getDisplay(), ".*\\.tracelog"), + validator, + false); + if(results!=null) { + Object result=results[0]; + IFile file=((IFile)result); + IPath path=PathUtil.makeSystemAbsolute(file.getFullPath()); + String fileName=PathUtil.toString(path); + Resource resource = new XMIResourceImpl(URI.createFileURI(fileName)); + try { + resource.load(Collections.emptyMap()); + } catch (IOException e1) { + ErrorDialog.openError( + shell, + "Error loading file to import", + null, new Status(IStatus.ERROR, + EnginePlugin.SYMBOLIC_NAME, + EnginePlugin.getDefault().getLogStatusCodes().getErrorCode(), + "Error loading file to import", + e1)); + EnginePlugin.getDefault().getLogger() + .error("Error loading trace log file: {}", e1); + } + loadedTracelog = (TraceLog) resource.getContents().get(0); + } + }}; + FlabotPlugin.getDefault().getWorkbench().getDisplay().syncExec(loadLogRunnable); + TraceLog tracelog = loadedTracelog; + loadedTracelog = null; + return tracelog; + } + + /** + * Reset the current log + * + */ + public void resettt() { + this.currentLog = null; + // TODO just trying to free the unused log's memory to avoid OutOfMemoryExceptions + System.gc(); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManagerException.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManagerException.java new file mode 100755 index 0000000..c65fd04 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/TraceLogManagerException.java @@ -0,0 +1,19 @@ +/** + * $Id: TraceLogManagerException.java,v 1.1 2006/01/31 22:19:29 dacostae Exp $ + * $Author: dacostae $ + */ +package org.isistan.flabot.engine.executionstate; + +/** + * Exception in the trace log manager + * @author $Author: dacostae $ + * + */ +public class TraceLogManagerException extends Exception { + private static final long serialVersionUID = 1L; + + public TraceLogManagerException(String message) { + super(message); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/actions/GetResponsibilityNodeStateAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/actions/GetResponsibilityNodeStateAction.java new file mode 100755 index 0000000..437ce06 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/actions/GetResponsibilityNodeStateAction.java @@ -0,0 +1,84 @@ +/** + * $Id: GetResponsibilityNodeStateAction.java,v 1.7 2006/03/22 01:13:21 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.actions; + +import java.util.Collections; +import java.util.List; + +import org.eclipse.gef.ui.actions.SelectionAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbenchPart; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.edit.ucmeditor.editparts.PathNodeEditPart; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; + +/** + * Show the state of a responsibility node + * @author $Author: franco $ + * + */ +public class GetResponsibilityNodeStateAction extends SelectionAction { + + public static final String GET_RESPONSIBILITYNODESTATE = + "Get_ResponsibilityNodeState"; + + public GetResponsibilityNodeStateAction(IWorkbenchPart part) { + super(part); + setText("Get responsibility node state"); + setId(GET_RESPONSIBILITYNODESTATE); + } + + @Override + protected boolean calculateEnabled() { + return canPerformAction(); + } + + /** + * the selection must be a responsibility node and its responsibility + * must not be null + * @return whether the action can be performed or not + */ + private boolean canPerformAction() { + + if (getSelectedObjects().isEmpty()) + return false; + List parts = getSelectedObjects(); + + if (parts.size() > 1) + return false; + + Object o = parts.get(0); + if (!(o instanceof PathNodeEditPart)) + return false; + + PathNodeEditPart part = (PathNodeEditPart)o; + if (!(part.getCastedModel().getSemanticModel() instanceof ResponsibilityNode)) + return false; + + ResponsibilityNode node = (ResponsibilityNode) part.getCastedModel().getSemanticModel(); + if (node.getResponsibility() == null) + return false; + + return true; + } + + @Override + public void run() { + List editparts = getSelectedObjects(); + PathNodeEditPart part = (PathNodeEditPart)editparts.get(0); + + ResponsibilityNode responsibilityNode = (ResponsibilityNode) part.getCastedModel().getSemanticModel(); + Diagnostic diagnostic = ExecutionStateManager.getState( + responsibilityNode, + Collections.emptyMap(), null); + + MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Execution state diagnostic", + "Execution state diagnostic for responsibility \"" + + responsibilityNode.getResponsibility() + + "\":\n" + diagnostic); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.java new file mode 100755 index 0000000..5405593 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateGeneralLogFilterStrategyCommand.java @@ -0,0 +1,66 @@ +/** + * $Id: UpdateStateDeterminationStrategyCommand.java,v 1.5 2006/03/08 00:41:16 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate.commands; + +import org.eclipse.gef.commands.Command; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy; + +public class UpdateGeneralLogFilterStrategyCommand extends Command { + + private FlabotFileModel flabotFileModel; + private GeneralLogFilterStrategy newStrategy; + private GeneralLogFilterStrategy oldStrategy; + + public UpdateGeneralLogFilterStrategyCommand(FlabotFileModel flabotFileModel, + GeneralLogFilterStrategy newStrategy) { + this.flabotFileModel = flabotFileModel; + this.newStrategy = newStrategy; + this.oldStrategy = ExecutionStateManager.getGeneralLogFilterStrategy(flabotFileModel); + this.setLabel("Update general log filter strategy"); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canExecute() + */ + @Override + public boolean canExecute() { + return newStrategy!=null && flabotFileModel!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canUndo() + */ + @Override + public boolean canUndo() { + return oldStrategy != null && flabotFileModel!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#execute() + */ + @Override + public void execute() { + redo(); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#redo() + */ + @Override + public void redo() { + ExecutionStateManager.setGeneralLogFilterStrategy(flabotFileModel, newStrategy); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#undo() + */ + @Override + public void undo() { + ExecutionStateManager.setGeneralLogFilterStrategy(flabotFileModel, oldStrategy); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.java new file mode 100755 index 0000000..178933f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdatePrologProviderStrategyCommand.java @@ -0,0 +1,66 @@ +/** + * $Id: UpdateStateDeterminationStrategyCommand.java,v 1.5 2006/03/08 00:41:16 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate.commands; + +import org.eclipse.gef.commands.Command; +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.PrologProviderStrategy; + +public class UpdatePrologProviderStrategyCommand extends Command { + + private ConditionEvent conditionEvent; + private PrologProviderStrategy newStrategy; + private PrologProviderStrategy oldStrategy; + + public UpdatePrologProviderStrategyCommand(ConditionEvent conditionEvent, + PrologProviderStrategy newStrategy) { + this.conditionEvent = conditionEvent; + this.newStrategy = newStrategy; + this.oldStrategy = ExecutionStateManager.getPrologProviderStrategy(conditionEvent); + this.setLabel("Update event prolog provider strategy"); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canExecute() + */ + @Override + public boolean canExecute() { + return newStrategy!=null && conditionEvent!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canUndo() + */ + @Override + public boolean canUndo() { + return oldStrategy != null && conditionEvent!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#execute() + */ + @Override + public void execute() { + redo(); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#redo() + */ + @Override + public void redo() { + ExecutionStateManager.setPrologProviderStrategy(conditionEvent, newStrategy); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#undo() + */ + @Override + public void undo() { + ExecutionStateManager.setPrologProviderStrategy(conditionEvent, oldStrategy); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.java new file mode 100755 index 0000000..cc29599 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/commands/UpdateStateDeterminationStrategyCommand.java @@ -0,0 +1,76 @@ +/** + * $Id: UpdateStateDeterminationStrategyCommand.java,v 1.5 2006/03/08 00:41:16 mblech Exp $ + * $Author: mblech $ + */ +package org.isistan.flabot.engine.executionstate.commands; + +import org.eclipse.gef.commands.Command; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; + +/** + * Command that chages the state determination strategy that is registered + * for a given responsibility node. + * This initial implementation registers the given strategy to the + * node's responsibility, but the user should be allowed to select more + * fine-grained registrations. + * TODO implement fine-grain strategy registration. + * @author $Author: mblech $ + * + */ +public class UpdateStateDeterminationStrategyCommand extends Command { + + private Responsibility responsibility; + private StateDeterminationStrategy newStrategy; + private StateDeterminationStrategy oldStrategy; + + public UpdateStateDeterminationStrategyCommand(Responsibility responsibility, + StateDeterminationStrategy newStrategy) { + this.responsibility = responsibility; + this.newStrategy = newStrategy; + this.oldStrategy = ExecutionStateManager.getStateDeterminationStrategy(responsibility); + this.setLabel("Update responsibility state determination strategy"); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canExecute() + */ + @Override + public boolean canExecute() { + return newStrategy!=null && responsibility!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#canUndo() + */ + @Override + public boolean canUndo() { + return oldStrategy != null && responsibility!=null; + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#execute() + */ + @Override + public void execute() { + redo(); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#redo() + */ + @Override + public void redo() { + ExecutionStateManager.setStateDeterminationStrategy(responsibility, newStrategy); + } + + /* (non-Javadoc) + * @see org.eclipse.gef.commands.Command#undo() + */ + @Override + public void undo() { + ExecutionStateManager.setStateDeterminationStrategy(responsibility, oldStrategy); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.java new file mode 100755 index 0000000..99c0441 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProvider.java @@ -0,0 +1,236 @@ +/** + * $Id: FlabotFileContextProvider.java,v 1.13 2006/04/13 04:42:17 apersson Exp $ + * $Author: apersson $ + */ +package org.isistan.flabot.engine.executionstate.contextprovider; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IFileEditorInput; +import org.eclipse.ui.IPathEditorInput; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.CoreModel; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.edit.editor.actions.RunConsistencyCheckAction; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.edit.multipage.FlabotMultiPageEditor; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.launcher.context.ContextProvider; +import org.isistan.flabot.launcher.context.ContextProviderException; +import org.isistan.flabot.trace.config.Context; +import org.isistan.flabot.util.emf.WorkaroundURIConverter; +import org.isistan.flabot.util.resource.PathUtil; +import org.isistan.flabot.util.swt.SWTUtils; + +/** + * Abstract flabot file-based trace configuration provider + * @author mblech + * + */ +public abstract class FlabotFileContextProvider implements + ContextProvider { + + private static final Map SAVE_OPTIONS = Collections.singletonMap(XMLResource.OPTION_ENCODING, "ISO-8859-15"); //$NON-NLS-1$ + + protected Resource resource; + + private IEditorPart getActiveFlabotEditor(String path) { + try { + IWorkbenchWindow[] workbenchWindows = EnginePlugin.getDefault().getWorkbench().getWorkbenchWindows(); + for (IWorkbenchWindow workbenchWindow: workbenchWindows) { + IWorkbenchPage workbenchPage = workbenchWindow.getActivePage(); + if (workbenchPage != null) { + IEditorPart editor = workbenchPage.getActiveEditor(); + if (editor != null && editor instanceof FlabotMultiPageEditor) { + String editorPath = PathUtil.makeSystemAbsolute(getPath(editor.getEditorInput())); + if (editorPath.equals(path)) + return editor; + } + } + } + } catch (Throwable e) { + EnginePlugin.getDefault().getLogger() + .warn("Error checking active file", e); + return null; + } + return null; + } + + private String getPath(IEditorInput input) { + if (input instanceof IFileEditorInput) { + IFileEditorInput fileInput = (IFileEditorInput) input; + IPath path = fileInput.getFile().getFullPath(); + return path.toString(); + } + if (input instanceof IPathEditorInput) { + IPathEditorInput pathInput = (IPathEditorInput) input; + IPath path = pathInput.getPath(); + return path.toString(); + } + return ""; + } + + public Context[] getContexts(ILaunchConfiguration launchConfiguration) throws ContextProviderException, CoreException { + String flabotFile=launchConfiguration.getAttribute(LaunchConfigurationConstants.FLABOT_FILE,""); + flabotFile=PathUtil.makeSystemAbsolute(flabotFile); + + if(flabotFile.trim().length()==0) { + EnginePlugin.getDefault().getLogger() + .error("Flabot file not selected"); + throw new ContextProviderException("Flabot file not selected."); + } + + IEditorPart editor = getActiveFlabotEditor(flabotFile.trim()); + if (editor != null && editor.isDirty()) + { + EnginePlugin.getDefault().getLogger() + .error("Flabot file not saved. Save changes and restart the Flabot launcher."); + Display.getDefault().asyncExec( new Runnable() { + public void run() { + MessageDialog dlg = new MessageDialog( + SWTUtils.getSomeShell(EnginePlugin.getDefault().getWorkbench().getDisplay()), + "Flabot file not saved", + null, + "Save changes and restart the Flabot launcher.", + MessageDialog.ERROR, + new String[]{"Ok"}, + 0); + dlg.open(); + } + }); + throw new ContextProviderException("Flabot file not saved. Save changes and restart the Flabot launcher."); + } + + if (editor == null) { + Display.getDefault().asyncExec( new Runnable() { + public void run() { + MessageDialog dlg = new MessageDialog( + SWTUtils.getSomeShell(EnginePlugin.getDefault().getWorkbench().getDisplay()), + "Flabot file not active", + null, + "Flabot file is not active", + MessageDialog.WARNING, + new String[]{"Ok"}, + 0); + dlg.open(); + } + }); + } + + URI uri = URI.createFileURI(flabotFile); + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put( + Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl() + ); + + resourceSet.getLoadOptions().put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, + Boolean.TRUE); + + resourceSet.setURIConverter(new WorkaroundURIConverter()); + + if(ExecutionstatePackage.eINSTANCE==null); + + resource = resourceSet.getResource(uri, true); + + try { + resource.load(Collections.emptyMap()); + } catch (IOException e1) { + EnginePlugin.getDefault().getLogger() + .error("Error loading flabot file for extracting trace information: {}", e1); + throw new ContextProviderException("Error loading flabot file", e1); + } + final FlabotFileModel fileModel = + (FlabotFileModel) resource.getContents().get(0); + if (fileModel == null) { + EnginePlugin.getDefault().getLogger() + .error("Error loading flabot file for extracting trace information: empty file"); + throw new ContextProviderException("Empty flabot file"); + } + + Display.getDefault().asyncExec( new Runnable() { + public void run() { + RunConsistencyCheckAction checkAction = new RunConsistencyCheckAction(SWTUtils.getSomeShell(FlabotPlugin.getDefault().getWorkbench().getDisplay())); + checkAction.setFlabotFileModel(fileModel); + if (checkAction.isEnabled()) { + checkAction.run(); + } + } + }); + + checkMappingAndFilter(fileModel); + + return extractContexts(fileModel); + } + + protected abstract Context[] extractContexts(FlabotFileModel fileModel); + + protected void checkMappingAndFilter(FlabotFileModel fileModel) + { + checkResponsibilities(fileModel.getCoreModel()); + if (fileModel.getAllImportedFiles().size() > 0) + { + checkFlabotFileModel(fileModel); + } + saveResource(); + } + + @SuppressWarnings("unchecked") + protected void checkFlabotFileModel(FlabotFileModel fileModel) + { + for(FlabotFileModel model : (List)fileModel.getAllImportedFiles()) + { + checkResponsibilities(model.getCoreModel()); + if (model.getAllImportedFiles().size() > 0) + { + checkFlabotFileModel(model); + } + } + } + + @SuppressWarnings("unchecked") + protected void checkResponsibilities(CoreModel coreModel) + { + StateDeterminationStrategy strategy; + for(Responsibility responsibility : (List) coreModel.getResponsibilities()) + { + strategy = ExecutionStateManager.getStateDeterminationStrategy(responsibility); + strategy.checkMapping(); + strategy.checkFilter(); + } + } + + private void saveResource() + { + if (resource != null) + { + try + { + resource.save(SAVE_OPTIONS); + } catch(IOException e) + { + + } + } + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab.java new file mode 100755 index 0000000..b7afedc --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/FlabotFileContextProviderConfigurationTab.java @@ -0,0 +1,252 @@ +package org.isistan.flabot.engine.executionstate.contextprovider; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.dialogs.ISelectionStatusValidator; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.launcher.tabs.AbstractConfigurationTab; +import org.isistan.flabot.util.resource.ResourceSelectionDialog; +import org.isistan.flabot.util.resource.filter.FilePatternFilter; +import org.isistan.flabot.util.resource.validator.CompositeValidator; +import org.isistan.flabot.util.resource.validator.FileValidator; +import org.isistan.flabot.util.resource.validator.SelectionSizeValidator; + + +/** + * Configuration tab for the context provider selection + * @author usuario + * + */ +public class FlabotFileContextProviderConfigurationTab extends AbstractConfigurationTab { + + + /** + * Text for the flabot file + */ + private Text flabotFileText; + + /** + * Tab's image + */ + private Image image; + + /** + * Status for flabot file selection + */ + private IStatus flabotFileSelectionStatus; + + /** + * Blocks changes + */ + private boolean blockChanges = false; + + private Composite parent; + + /** + * Creates a new FlabotFileContextProviderConfigurationTab + * + */ + public FlabotFileContextProviderConfigurationTab() { + flabotFileSelectionStatus = createStatus(IStatus.OK, ""); //$NON-NLS-1$ + //TODO: set image + //image = PDEPluginImages.DESC_MAIN_TAB.createImage(); + } + + @Override + public void dispose() { + super.dispose(); + //TODO: set image + //image.dispose(); + } + + public void createControl(Composite parent) { + this.parent=parent; + Composite composite = new Composite(parent, SWT.NONE); + composite.setLayout(new GridLayout()); + composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + createFlabotFileSection(composite); + + setControl(composite); + + //TODO: INFO See how help is added + //PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.LAUNCHER_BASIC); + } + + /** + * Creates the flabot file section + * @param composite + */ + protected void createFlabotFileSection(Composite composite) { + Group group = new Group(composite, SWT.NONE); + group.setText("Flabot File Selection"); + GridLayout layout = new GridLayout(); + layout.numColumns = 3; + group.setLayout(layout); + group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); + + Label label = new Label(group, SWT.NULL); + label.setText("Flabot File"); + + + + flabotFileText = new Text(group, SWT.BORDER); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + flabotFileText.setLayoutData(gd); + + + flabotFileText.addModifyListener(new ModifyListener() { + public void modifyText(ModifyEvent e) { + flabotFileSelectionStatus = validateFlabotFileSelection(); + if (!blockChanges) + updateStatus(); + } + }); + flabotFileText.setEditable(false); + + Button button= new Button(group, SWT.NULL); + button.setText("..."); + + button.addSelectionListener(new SelectionListener() { + + public void widgetSelected(SelectionEvent e) { + browseFlabot(); + } + public void widgetDefaultSelected(SelectionEvent e) { + } + + }); + } + + private void browseFlabot() { + ISelectionStatusValidator validator=new CompositeValidator( + new SelectionSizeValidator(EnginePlugin.SYMBOLIC_NAME, 1,1), + new FileValidator(EnginePlugin.SYMBOLIC_NAME)); + + Object[] files=ResourceSelectionDialog.getInstance().open(parent.getShell(), + "Flabot File Selection", "Select a flabot file.", + new FilePatternFilter(parent.getDisplay(), ".*\\.flabot"), + validator, false); + if(files!=null) { + flabotFileText.setText(((IFile)files[0]).getFullPath().toPortableString()); + } + } + + public void initializeFrom(ILaunchConfiguration config) { + try { + blockChanges = true; + initializeFlabotFileSection(config); + flabotFileSelectionStatus = validateFlabotFileSelection(); + updateStatus(); + } catch (CoreException e) { + //TODO: send to log + e.printStackTrace(); + } finally { + blockChanges = false; + } + } + + /** + * Initilizes the flabot file section + * @param config + * @throws CoreException + */ + protected void initializeFlabotFileSection(ILaunchConfiguration config) + throws CoreException { + + String flabotFile=config.getAttribute( + LaunchConfigurationConstants.FLABOT_FILE, ""); + flabotFileText.setText(flabotFile); + } + + public void setDefaults(ILaunchConfigurationWorkingCopy config) { + config.setAttribute(LaunchConfigurationConstants.FLABOT_FILE, ""); //$NON-NLS-1$ + } + + /** + * Updates the tab status + * + */ + private void updateStatus() { + updateStatus(flabotFileSelectionStatus); + } + + public void performApply(ILaunchConfigurationWorkingCopy config) { + try { + saveFlabotFileDataSection(config); + } catch (CoreException e) { + //TODO: send to log + e.printStackTrace(); + } + } + + /** + * Saves the flabot file data + * @param config + * @throws CoreException + */ + protected void saveFlabotFileDataSection(ILaunchConfigurationWorkingCopy config) + throws CoreException { + config.setAttribute(LaunchConfigurationConstants.FLABOT_FILE, + flabotFileText.getText()); + } + + /** + * Validates the flabot file selection + * @return + */ + private IStatus validateFlabotFileSelection() { + String flabotFile = flabotFileText.getText(); + if (flabotFile.trim().length()==0) { + return createStatus( + IStatus.ERROR, + "Flabot file not selected."); + } + + // TODO: check if file is valid + if (false) { + return createStatus( + IStatus.ERROR, + "Invalid flabotFile."); + } + + return createStatus(IStatus.OK, ""); //$NON-NLS-1$ + } + + + public String getName() { + return "Main"; + } + + @Override + public Image getImage() { + return image; + } + + /** + * Creates a new Status + * @param severity + * @param message + * @return + */ + private static IStatus createStatus(int severity, String message) { + return AbstractConfigurationTab.createStatus( + EnginePlugin.SYMBOLIC_NAME, severity, message); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.java new file mode 100755 index 0000000..8066119 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LaunchConfigurationConstants.java @@ -0,0 +1,18 @@ +package org.isistan.flabot.engine.executionstate.contextprovider; + +import org.isistan.flabot.engine.EnginePlugin; + +public interface LaunchConfigurationConstants { + /** + * Prefix for every attribute + */ + public static final String PREFIX = EnginePlugin.SYMBOLIC_NAME + "."; + + + /** + * Attribute for the flabot file + */ + public static final String FLABOT_FILE = + PREFIX + "flabotFile"; + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.java new file mode 100755 index 0000000..a329fb6 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/contextprovider/LogStateDeterminationContextProvider.java @@ -0,0 +1,49 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.contextprovider; + +import java.util.LinkedList; +import java.util.List; + +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.executionstate.ContextCreationException; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.trace.config.Context; + +/** + * Contexts provider that extracts contexts from all the + * active state determination strategies. + * @author mblech + * + */ +public class LogStateDeterminationContextProvider extends + FlabotFileContextProvider { + + @Override + protected Context[] extractContexts(FlabotFileModel fileModel) { + List contexts = new LinkedList(); + List responsibilities = fileModel.getCoreModel().getResponsibilities(); + for (Responsibility responsibility: responsibilities) { + StateDeterminationStrategy strategy = ExecutionStateManager.getStateDeterminationStrategy(responsibility); + if (strategy instanceof TraceBasedStateDeterminationStrategy) { + TraceBasedStateDeterminationStrategy tbsds = + (TraceBasedStateDeterminationStrategy) strategy; + tbsds.setResponsibility(responsibility); + Context context; + try { + context = tbsds.getContext(); + contexts.add(context); + } catch (ContextCreationException e) { + EnginePlugin.getDefault().getLogger().warn(e.toString(), e); + } + } + } + return contexts.toArray(new Context[contexts.size()]); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.java new file mode 100755 index 0000000..e329d93 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/AndCompositeCorrelator.java @@ -0,0 +1,41 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; + +/** + * Logical AND combination of a set of individual correlators + * @author mblech + * + */ +public class AndCompositeCorrelator implements Correlator { + + /** + * List of combined correlators + */ + private List correlators; + + /** + * Create a new instance of AndCompositeCorrelator using the + * given list of correlators + * @param correlators + */ + public AndCompositeCorrelator(List correlators) { + this.correlators = correlators; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List aux = originalTags; + for (Correlator correlator: correlators) + aux = correlator.correlate(aux, correlationTag); + return aux; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.java new file mode 100755 index 0000000..6abcf6b --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/CallStackDistanceCorrelator.java @@ -0,0 +1,85 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.LinkedList; +import java.util.List; + +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * Correlates tags whose call stack distance to the + * correlation tag is between the specified limits + * @author mblech + * + */ +public class CallStackDistanceCorrelator implements Correlator { + + private int min; + private int max; + + /** + * Create a new instance of CallStackDistanceCorrelator with + * the given limits + * @param min + * @param max + */ + public CallStackDistanceCorrelator(int min, int max) { + this.min = min; + this.max = max; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List tags = new LinkedList(); + for (Tag tag: originalTags) { + int distance = callStackDistance(tag, correlationTag); + if (distance >= min && distance <= max) { + tags.add(tag); + } + } + return tags; + } + + /** + * Calculate the call stack distance between the 2 given tags + * @param tag1 + * @param tag2 + * @return + */ + private int callStackDistance(Tag tag1, Tag tag2) { + int distance1 = 0; + while (tag2 != null) { + int distance2 = 0; + Tag aux = tag1; + while (aux != null) { + if (tag2 == aux) + return distance1 + distance2; + aux = findAncestor(aux); + distance2++; + } + tag2 = findAncestor(tag2); + distance1++; + } + return Integer.MAX_VALUE; + } + + private Tag findAncestor(Tag tag) { + if (TagQueryUtil.INSTANCE.isThread(tag)) + return null; + EObject eObject = tag; + while (eObject != null) { + eObject = eObject.eContainer(); + if (eObject instanceof Tag) { + return (Tag) eObject; + } + } + return null; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/Correlator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/Correlator.java new file mode 100755 index 0000000..c1df954 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/Correlator.java @@ -0,0 +1,29 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; + +/** + * Implementations of this class are used to correlate log tags + * with a given set of tags + * + * @author mblech + * + */ +public interface Correlator { + + /** + * Correlate the originalTags sublist of Tags that correlate + * to correlationTags + * @param originalTags the original (unfiltered) tags + * @param correlationTag the tag to which originalTags must be + * correlated against + * @return the list of tags from originalTags that correlate to the + * correlationTag + */ + List correlate(List originalTags, Tag correlationTag); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.java new file mode 100755 index 0000000..5cb1e6b --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/LastExecutionCorrelator.java @@ -0,0 +1,43 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; + +/** + * Correlates the tags that was the last ones to be executed before the + * execution of the correlation tag + * @author mblech + * + */ +public class LastExecutionCorrelator implements Correlator { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List lastTags = null; + long minDt = Long.MAX_VALUE; + for (Tag tag: originalTags) { + long dt = TimestampDeltaCorrelator.getTimestampDelta(tag, correlationTag); + if (dt == minDt) { + lastTags.add(tag); + } + else if (dt >= 0 && dt < minDt) { + lastTags = new LinkedList(); + lastTags.add(tag); + minDt = dt; + } + } + if (lastTags != null) + return lastTags; + else + return Collections.emptyList(); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/NullCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/NullCorrelator.java new file mode 100755 index 0000000..51b190c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/NullCorrelator.java @@ -0,0 +1,24 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; + +/** + * Null correlator: accepts all tags + * @author mblech + * + */ +public class NullCorrelator implements Correlator { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, org.isistan.flabot.trace.log.Tag) + */ + public List correlate(List originalTags, Tag correlationTag) { + return originalTags; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.java new file mode 100755 index 0000000..ba0b141 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameInstanceCorrelator.java @@ -0,0 +1,48 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.ArrayList; +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * Correlates tags that executed on the same instance than the + * correlation tag + * @author mblech + * + */ +public class SameInstanceCorrelator implements Correlator { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List tags = new ArrayList(); + for (Tag tag: originalTags) { + if (sameInstance(tag, correlationTag)) { + tags.add(tag); + } + } + return tags; + } + + /** + * Check whether both execution tags are from the same instance + * or not + * @param tag1 + * @param tag2 + * @return + */ + private boolean sameInstance(Tag tag1, Tag tag2) { + Tag snapshot1 = TagQueryUtil.INSTANCE.getExecutionInstanceSnapshot(tag1); + Tag object1 = TagQueryUtil.INSTANCE.getObject(snapshot1); + Tag snapshot2 = TagQueryUtil.INSTANCE.getExecutionInstanceSnapshot(tag2); + Tag object2 = TagQueryUtil.INSTANCE.getObject(snapshot2); + return object1 != null && object1 == object2; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.java new file mode 100755 index 0000000..43915a3 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/SameThreadCorrelator.java @@ -0,0 +1,45 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.LinkedList; +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * Correlates tags that are in the same thread than at least one + * correlation tag + * @author mblech + * + */ +public class SameThreadCorrelator implements Correlator { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List tags = new LinkedList(); + for (Tag tag: originalTags) { + if (sameThread(tag, correlationTag)) { + tags.add(tag); + } + } + return tags; + } + + /** + * Check whether the 2 given tags executed in the same thread or not + * @param tag1 + * @param tag2 + * @return + */ + private boolean sameThread(Tag tag1, Tag tag2) { + Tag thread1 = TagQueryUtil.INSTANCE.getThread(tag1); + Tag thread2 = TagQueryUtil.INSTANCE.getThread(tag2); + return thread1 == thread2; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.java new file mode 100755 index 0000000..0fb4b90 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/TimestampDeltaCorrelator.java @@ -0,0 +1,62 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation; + +import java.util.LinkedList; +import java.util.List; + +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * Correlates using the timestamps: the tags whose timestamp difference + * with the correlation tag falls between the limits is considered + * to be correlated. + * @author mblech + * + */ +public class TimestampDeltaCorrelator implements Correlator { + + private long minDt; + private long maxDt; + + /** + * Create a new instance of timestamp correlator with the given + * minimum and maximum timestamp deltas + * @param minDt + * @param maxDt + */ + public TimestampDeltaCorrelator(long minDt, long maxDt) { + this.minDt = minDt; + this.maxDt = maxDt; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.correlation.Correlator#correlate(java.util.List, java.util.List) + */ + public List correlate(List originalTags, Tag correlationTag) { + List tags = new LinkedList(); + for (Tag tag: originalTags) { + long dt = getTimestampDelta(tag, correlationTag); + if (dt >= minDt && dt <= maxDt) { + tags.add(tag); + } + } + return tags; + } + + /** + * Get the timestamp delta (t2 - t1) + * @param tag1 + * @param tag2 + * @return + */ + public static long getTimestampDelta(Tag tag1, Tag tag2) { + long time1 = TagQueryUtil.INSTANCE.getTimestamp(tag1).longValue(); + long time2 = TagQueryUtil.INSTANCE.getTimestamp(tag2).longValue(); + long dt = time2 - time1; + return dt; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.java new file mode 100755 index 0000000..8fbb10f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/TagFilterDialogManager.java @@ -0,0 +1,33 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog; + +import java.util.List; + +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog; +import org.isistan.flabot.trace.log.Tag; + +/** + * Implementations of this class let the user select graphically a + * subset of tags from a tag list + * @author mblech + * + */ +public interface TagFilterDialogManager { + + /** + * Reference to the instance of this interface's implementation + */ + public static final TagFilterDialogManager INSTANCE = + new TagFilterDialog(); + + /** + * Show a tag selection dialog to the user and return the list of + * selected tags + * @param tags the original tag list + * @return the tags that the user has selected + */ + public List filterTags(String name, List tags, List selectedTags, boolean modal); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog.java new file mode 100755 index 0000000..404ba42 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/ShowTagInformationDialog.java @@ -0,0 +1,267 @@ +/** + * $Id: ShowTagInformationDialog.java,v 1.4 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog.swt; + +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.TableItem; +import org.eclipse.swt.widgets.Text; +import org.isistan.flabot.messages.Messages; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * @author $Author: franco $ + * + */ +public class ShowTagInformationDialog extends Dialog { + + /** + * the dialog's shell + */ + private Shell shell = null; // @jve:decl-index=0:visual-constraint="10,9" + + private TagQueryUtil tagQueryUtil = TagQueryUtil.INSTANCE; + + /** + * @param parent + */ + public ShowTagInformationDialog(Shell parent) { + super(parent, 0); + } + + + /** + * Makes the dialog visible. + * + * @return + */ + public void open(final Tag tag) { + shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); + shell.setText(Messages.getString("org.isistan.flabot.edit.componenteditor.dialog.EditPropertyDialog.title")); //$NON-NLS-1$ + shell.setLayout(new GridLayout(1, true)); + + shell.addShellListener(new org.eclipse.swt.events.ShellAdapter() { + public void shellClosed(org.eclipse.swt.events.ShellEvent e) { + handleOk(); + } + }); + + Composite composite = new Composite(shell, SWT.NONE); + + GridLayout layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + composite.setLayout(layout); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + + + createMethodGroup(composite, tag); + createInstanceGroup(composite, tag); + + // buttons composite (ok and cancel) + Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + Button buttonOK = new Button(buttonsComposite, SWT.NONE); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleOk(); + } + }); + + shell.pack(); + Display display = getParent().getDisplay(); + Rectangle r = display.getClientArea(); + int centerX = r.width/2 - shell.getSize().x / 2; + int centerY = r.height/2 - shell.getSize().y / 2; + shell.setLocation(centerX, centerY); + shell.open(); + + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + } + + private void createMethodGroup(Composite parent, Tag tag) { + Group methodGroup = new Group(parent, SWT.NONE); + methodGroup.setText(org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.methodPropertiesGroup")); //$NON-NLS-1$ + + GridLayout layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + + methodGroup.setLayout(layout); + methodGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + String methodDescriptor = getMethodDescriptor(tag); + + //Method Class + createItem(methodGroup, org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.declaringClassItem"), getMethodClass(methodDescriptor)); //$NON-NLS-1$ + + //Method name + createItem(methodGroup, org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.nameItem"), getMethodName(tag)); //$NON-NLS-1$ + + //Method Return type + createItem(methodGroup, org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.returnTypeIetm"), getMethodReturnType(tag)); //$NON-NLS-1$ + + //Method parameters + final Label parametersName = new Label(methodGroup, SWT.NULL); + parametersName.setText(org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersLabel")); //$NON-NLS-1$ + parametersName.setLayoutData(new GridData( + GridData.VERTICAL_ALIGN_BEGINNING | + GridData.FILL_HORIZONTAL)); + + final Table parametersTable = new Table(methodGroup, SWT.BORDER | SWT.MULTI + | SWT.FULL_SELECTION); + parametersTable.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.VERTICAL_ALIGN_BEGINNING)); + parametersTable.setHeaderVisible(true); + + final TableColumn tc1 = new TableColumn(parametersTable, SWT.LEFT); + tc1.setText(org.isistan.flabot.engine.messages.Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersColumn")); //$NON-NLS-1$ + tc1.setWidth(115); + + List parameters = getMethodParameterList(tag); + for(int i=0; i parameters = getMethodParameterList(tag); + for(int i=0; i getMethodParameterList(Tag tag) { + Tag executionTag = tagQueryUtil.getBehavior(tag); + return tagQueryUtil.getParameterTypes(executionTag); + } + + private String getName(Tag tag) { + return tagQueryUtil.getName(tag); + } + + private String getInstanceClass(Tag tag) { + Tag objectSnapshotTag = tagQueryUtil.getExecutionInstanceSnapshot(tag); + Tag objectTag = tagQueryUtil.getObject(objectSnapshotTag); + return getName(tagQueryUtil.getObjectClass(objectTag)); + } + + private String getInstanceID(Tag tag) { + Tag objectSnapshotTag = tagQueryUtil.getExecutionInstanceSnapshot(tag); + Tag objectTag = tagQueryUtil.getObject(objectSnapshotTag); + return tagQueryUtil.getObjectId(objectTag); + } + + private String getInstance(Tag tag) { + Tag objectSnapshotTag = tagQueryUtil.getExecutionInstanceSnapshot(tag); + return tagQueryUtil.getToString(objectSnapshotTag); + } + + private void handleOk() { + shell.dispose(); + } + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterContentProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterContentProvider.java new file mode 100755 index 0000000..b4db798 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterContentProvider.java @@ -0,0 +1,76 @@ +/** + * $Id: TagFilterContentProvider.java,v 1.1 2006/03/02 00:52:33 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog.swt; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeModel.Wrapper; + +/** + * @author $Author: franco $ + * + */ +class TagFilterContentProvider implements ITreeContentProvider { + + /** + * Gets the children for a wrapper tag or property + * + * @param arg0 the wrapper tag or property + * @return Object[] + */ + public Object[] getChildren(Object arg0) { + //return children for the Wrapper. + return ((Wrapper) arg0).getChildren(); + } + + /** + * Gets the parent team for a player + * + * @param arg0 the wrapper + * @return Object + */ + public Object getParent(Object arg0) { + return ((Wrapper) arg0).getParent(); + } + + /** + * Gets whether this wrapper has children + * + * @param arg0 the tag or property wrapper + * @return boolean + */ + public boolean hasChildren(Object arg0) { + return getChildren(arg0).length > 0; + } + + /** + * Gets the elements for the table + * + * @param arg0 the Tag Tree Model + * @return Object[] + */ + public Object[] getElements(Object arg0) { + // Returns all root tags in the model + return ((TagTreeModel) arg0).getChildren(); + } + + /** + * Disposes any resources + */ + public void dispose() { + // We don't create any resources, so we don't dispose any + } + + /** + * Called when the input changes + * + * @param arg0 the parent viewer + * @param arg1 the old input + * @param arg2 the new input + */ + public void inputChanged(Viewer arg0, Object arg1, Object arg2) { + // Nothing to do + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.java new file mode 100755 index 0000000..9526314 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterDialog.java @@ -0,0 +1,284 @@ +/** + * $Id: TagFilterDialog.java,v 1.10 2006/05/03 02:44:37 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog.swt; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.jface.window.ApplicationWindow; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeColumn; +import org.eclipse.swt.widgets.TreeItem; +import org.isistan.flabot.engine.executionstate.correlation.dialog.TagFilterDialogManager; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeModel.TagWrapper; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeModel.Wrapper; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeViewSorter.InstanceComparator; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeViewSorter.TagComparator; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.trace.log.Tag; + +/** + * Implementation of TagFilterDialogManager that shows a SWT dialog + * + * @author $Author: franco $ + * + */ +public class TagFilterDialog implements TagFilterDialogManager { + + class SWTTagFilterDialog extends ApplicationWindow { + + private IStructuredSelection selection = new StructuredSelection(); + + private String dialogName; + + private List selectedTags; + + private List tags; + + private TreeViewer treeViewer; + + public SWTTagFilterDialog() { + super(null); + } + + /** + * Runs the application + */ + public List run(String dialogName, List tags, List selectedTags, boolean modal) { + this.dialogName = dialogName; + this.selectedTags = selectedTags; + this.tags = tags; + + // Don't return from open() until window closes + setBlockOnOpen(true); + int additionalProperties = SWT.NONE; + if (modal) + additionalProperties |= SWT.APPLICATION_MODAL; + setShellStyle(getShellStyle() + additionalProperties); + + // Open the main window + open(); + + return getTagList(); + } + + private List getTagList() { + List ret = new ArrayList(); + for(Iterator iter=selection.iterator(); iter.hasNext();) { + TagWrapper tw = (TagWrapper) iter.next(); + ret.add(tw.getTag()); + } + return ret; + } + + /** + * Configures the shell + * + * @param shell the shell + */ + protected void configureShell(Shell shell) { + super.configureShell(shell); + shell.setText(dialogName); + shell.setMinimumSize(400, 400); + } + + + private TreeViewer createTreeViewer(Composite parent) { + // Create the table viewer to display the tags + final TreeViewer treeViewer = new TreeViewer(parent); + treeViewer.addSelectionChangedListener( new ISelectionChangedListener() { + + public void selectionChanged(SelectionChangedEvent event) { + // if the selection is empty clear the label + if(event.getSelection().isEmpty()) { + selection = StructuredSelection.EMPTY; + return; + } + + if(event.getSelection() instanceof IStructuredSelection) { + IStructuredSelection selectedTags = (IStructuredSelection)event.getSelection(); + + List selectedRightList = new ArrayList(); + for (Iterator iterator = selectedTags.iterator(); iterator.hasNext();) { + Wrapper wrapper = (Wrapper)iterator.next(); + //if a children is selected, it must be removed from the selection list + if (wrapper.getParent() == null) + selectedRightList.add(wrapper); + } + + //if the size changed (some children was selected), the selection must be updated + if (selectedTags.size() > selectedRightList.size()) { + selection = new StructuredSelection(selectedRightList); + ((TreeViewer)event.getSource()).setSelection(selection, true); + } else + selection = selectedTags; + } + } + + }); + treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); + treeViewer.setSorter(new TagTreeViewSorter()); + + // Set up the table + Tree tree = treeViewer.getTree(); + final TreeColumn tc0 = new TreeColumn(tree, SWT.LEFT); + tc0.setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.tagColumn")); //$NON-NLS-1$ + + final TagComparator tagComparator = new TagComparator(); + tagComparator.setColumn(tc0); + tc0.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + TagTreeViewSorter sorter = (TagTreeViewSorter) treeViewer.getSorter(); + tagComparator.reverseOrder(); + sorter.setComparator(tagComparator); + treeViewer.refresh(); + } + }); + + + new TreeColumn(tree, SWT.CENTER).setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.timestampColumn")); //$NON-NLS-1$ + new TreeColumn(tree, SWT.LEFT).setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.methodColumn")); //$NON-NLS-1$ + + final TreeColumn tc3 = new TreeColumn(tree, SWT.LEFT); + final InstanceComparator instanceComparator = new InstanceComparator(); + instanceComparator.setColumn(tc3); + tc3.setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.instanceColumn")); //$NON-NLS-1$ + tc3.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event e) { + TagTreeViewSorter sorter = (TagTreeViewSorter) treeViewer.getSorter(); + instanceComparator.reverseOrder(); + sorter.setComparator(instanceComparator); + treeViewer.refresh(); + } + }); + new TreeColumn(tree, SWT.CENTER).setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.threadColumn")); //$NON-NLS-1$ + + treeViewer.setContentProvider(new TagFilterContentProvider()); + treeViewer.setLabelProvider(new TagFilterLabelProvider()); + + if (tags == null) + tags = Collections.emptyList(); + treeViewer.setInput(new TagTreeModel(tags)); + + // Pack the columns + tree.getColumn(0).setWidth(150); + for (int i = 1, n = tree.getColumnCount(); i < n; i++) { + tree.getColumn(i).pack(); + } + + // Turn on the header and the lines + tree.setHeaderVisible(true); + tree.setLinesVisible(true); + + // Pack the window + parent.pack(); + + setSelected(treeViewer, selectedTags); + + return treeViewer; + } + + private void setSelected(TreeViewer treeViewer, List selectedTags) { + List selectedRightList = new ArrayList(); + TreeItem[] items = treeViewer.getTree().getItems(); + for(TreeItem item : items) { + if(item.getParentItem() == null) { + TagWrapper tagWrapper = (TagWrapper) item.getData(); + if (selectedTags.contains(tagWrapper.getTag())) + selectedRightList.add(tagWrapper); + } + } + treeViewer.setSelection(new StructuredSelection(selectedRightList)); + } + + private Composite createFinalButtons(Composite parent) { + Composite buttonsComposite = new Composite(parent, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + Button buttonOK= new Button(buttonsComposite, SWT.NONE); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + close(); + } + }); + buttonOK.setFocus(); + + Button selectAllButton= new Button(buttonsComposite, SWT.NONE); + selectAllButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.selectAllButton")); //$NON-NLS-1$ + selectAllButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + List selectedRightList = new ArrayList(); + TreeItem[] items = treeViewer.getTree().getItems(); + for(TreeItem item : items) { + if(item.getParentItem() == null) + selectedRightList.add((TagWrapper) item.getData()); + } + treeViewer.setSelection(new StructuredSelection(selectedRightList)); + } + }); + + Button buttonClearSelection= new Button(buttonsComposite, SWT.NONE); + buttonClearSelection.setText(Messages.getString("org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.clearSelectionButton")); //$NON-NLS-1$ + buttonClearSelection.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + treeViewer.setSelection(StructuredSelection.EMPTY); + + } + }); + + return buttonsComposite; + } + + /** + * Creates the main window's contents + * + * @param parent the main window + * @return Control + */ + protected Control createContents(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + + GridLayout layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + composite.setLayout(layout); + composite.setLayoutData(new GridData(GridData.FILL_BOTH)); + + // Create the table viewer to display the tags + treeViewer = createTreeViewer(composite); + createFinalButtons(composite); + + return composite; + } + + } + + public List filterTags(String dialogName, List tags, List selectedTag, boolean modal) { + SWTTagFilterDialog ttd = new SWTTagFilterDialog(); + return ttd.run(dialogName, tags, selectedTag, modal); + } + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.java new file mode 100755 index 0000000..876d9e2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagFilterLabelProvider.java @@ -0,0 +1,157 @@ +/** + * $Id: TagFilterLabelProvider.java,v 1.3 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog.swt; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.swt.graphics.Image; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeModel.PropertyWrapper; +import org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagTreeModel.TagWrapper; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * @author franco + * + */ +public class TagFilterLabelProvider implements ITableLabelProvider { + + private Map imagesMap = new HashMap(2); + + + /** + * Gets the image for the specified column + * + * @param arg0 the wrapper tag or property + * @param arg1 the column + * @return Image + */ + public Image getColumnImage(Object arg0, int arg1) { + ImageDescriptor imageDescriptor = null; + if (arg0 instanceof TagWrapper && arg1 == 0) { + imageDescriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/tag.gif"); //$NON-NLS-1$ + } + if (arg0 instanceof PropertyWrapper && arg1 == 0) { + imageDescriptor = ImageDescriptor.createFromFile(EnginePlugin.class, "icons/property.gif"); //$NON-NLS-1$ + } + + Image image = imagesMap.get(imageDescriptor); + if (image == null && imageDescriptor != null) { + image = imageDescriptor.createImage(); + imagesMap.put(imageDescriptor, image); + } + return image; + } + + /** + * Gets the text for the specified column + * + * @param arg0 the wrapper tag or property + * @param arg1 + * + * @return String + */ + public String getColumnText(Object arg0, int arg1) { + if (arg0 instanceof PropertyWrapper) { + String text = ""; //$NON-NLS-1$ + if (arg1 == 0) + text = ((PropertyWrapper) arg0).toString(); + + return text; + } + + TagWrapper tw = (TagWrapper) arg0; + TagQueryUtil tqu = TagQueryUtil.INSTANCE; + switch (arg1) { + case 0: + //Tag info + return tw.getKey(); + case 1: { + //TimeStamp info + Long tm = tqu.getTimestamp(tw.getTag()); + String text = ""; //$NON-NLS-1$ + if (tm != null) + text = tm.toString(); + return text; + } + case 2: { + //Method info + Tag executionTag = tqu.getBehavior(tw.getTag()); + String text = ""; //$NON-NLS-1$ + if (executionTag != null) { + Tag returnTypeTag = tqu.getReturnType(executionTag); + text = tqu.getName(executionTag) + ": " + tqu.getName(returnTypeTag); //$NON-NLS-1$ + } + return text; + } + case 3: { + //Intance info + Tag objectSnapshotTag = tqu.getExecutionInstanceSnapshot(tw.getTag()); + Tag objectTag = tqu.getObject(objectSnapshotTag); + String objectSnapshotDescriptor = tqu.getObjectDescriptor(objectTag); + String text = ""; //$NON-NLS-1$ + if (objectSnapshotDescriptor != null) { + int index = objectSnapshotDescriptor.lastIndexOf(".") + 1; //$NON-NLS-1$ + if (index < 0) index = 0; + text = objectSnapshotDescriptor.substring(index, objectSnapshotDescriptor.length()); + } + return text; + } + case 4: + //Thread info + Tag threadTag =tqu.getThread(tw.getTag()); + return tqu.getName(threadTag); + default: + return ""; //$NON-NLS-1$ + } + } + + /** + * Adds a listener + * + * @param arg0 the listener + */ + public void addListener(ILabelProviderListener arg0) { + // Do nothing + } + + /** + * Dispose any created resources + */ + public void dispose() { + // Dispose the images + for (Iterator i = imagesMap.values().iterator(); i.hasNext();) { + ((Image) i.next()).dispose(); + } + imagesMap.clear(); + } + + /** + * Returns whether the specified property, if changed, would affect the + * label + * + * @param arg0 the wrapper + * @param arg1 the property + * @return boolean + */ + public boolean isLabelProperty(Object arg0, String arg1) { + return false; + } + + /** + * Removes the specified listener + * + * @param arg0 the listener + */ + public void removeListener(ILabelProviderListener arg0) { + // Do nothing + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.java new file mode 100755 index 0000000..3bf22be --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/correlation/dialog/swt/TagTreeModel.java @@ -0,0 +1,162 @@ +/** + * $Id: TagTreeModel.java,v 1.2 2006/03/21 03:18:12 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.correlation.dialog.swt; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.emf.common.util.EMap; +import org.isistan.flabot.trace.TagTreeModel.NumberKeyComparator; +import org.isistan.flabot.trace.log.Tag; + +/** + * @author $Author: franco $ + * + */ +public class TagTreeModel { + + List tags; + + Wrapper[] children; + + /** + * Create a new instance of TagTreeModel for the given root tag + * @param root + */ + public TagTreeModel(List tags) { + this.tags = tags; + } + + + public Wrapper[] getChildren() { + if (children != null) + return children; + + Wrapper[] children = new Wrapper[tags.size()]; + int index = 0; + for(Iterator iter=tags.iterator(); iter.hasNext();) { + Tag tag = (Tag) iter.next(); + children[index] = new TagWrapper(null, String.valueOf(index), tag); + index++; + } + return children; + } + + /** + * Wrapper for tags and properties + */ + public static interface Wrapper { + + Wrapper getParent(); + + Wrapper[] getChildren(); + } + + /** + * Wrapper for properties + */ + public static class PropertyWrapper implements Wrapper { + private static final Wrapper[] EMPTY = new Wrapper[] {}; + + private Wrapper parent; + private String value; + private String key; + + public PropertyWrapper(Wrapper parent, String key, String value) { + this.parent=parent; + this.key=key; + this.value=value; + } + + @Override + public String toString() { + return key + " -> " + value; //$NON-NLS-1$ + } + + public String getKey() { + return key; + } + + public String getValue() { + return value; + } + + public Wrapper getParent() { + return parent; + } + + public Wrapper[] getChildren() { + return EMPTY; + } + } + + /** + * Wrapper for tags + */ + public static class TagWrapper implements Wrapper { + + private Wrapper parent; + + private Tag tag; + private String key; + private Wrapper[] children=null; + + public TagWrapper(Wrapper parent, String key, Tag tag) { + this.parent=parent; + this.key=key; + this.tag=tag; + } + + public Wrapper[] getChildren() { + if(children!=null) + return children; + + EMap tags=tag.getTags(); + EMap properties=tag.getProperties(); + children=new Wrapper[properties.size() + tags.size()]; + List sortedTagKeys = new ArrayList(tags.keySet()); + Collections.sort(sortedTagKeys, new NumberKeyComparator()); + + Iterator propertiesIterator=properties.keySet().iterator(); + for(int i=0; i comparator; + + public int compare(Viewer viewer, Object e1, Object e2) { + Wrapper w1 = (Wrapper) e1; + Wrapper w2 = (Wrapper) e2; + + if (w1.getParent() == null && w2.getParent() == null && comparator != null) + return comparator.compare((TagWrapper) w1, (TagWrapper) w2); + return 0; + } + + public void setComparator(Comparator comparator) { + this.comparator = comparator; + } + + + /** + * The general comparator for the columns + * + * @author franco + * + */ + public static abstract class TagWrapperComparator implements Comparator { + + protected boolean reverseOrder = true; + + private TreeColumn column; + private Image ascending = ImageDescriptor.createFromFile(FlabotPlugin.class, "icons/ascendingOrder.gif").createImage(); //$NON-NLS-1$ + private Image descending = ImageDescriptor.createFromFile(FlabotPlugin.class, "icons/descendingOrder.gif").createImage(); //$NON-NLS-1$ + + public void setColumn(TreeColumn column) { + this.column = column; + } + + private void removeOtherImages() { + Tree tree = column.getParent(); + for (int i=0; i < tree.getColumnCount(); i++){ + tree.getColumn(i).setImage(null); + } + } + + public void reverseOrder() { + reverseOrder = !reverseOrder; + } + + public int compare(TagWrapper tw1, TagWrapper tw2) { + removeOtherImages(); + if (reverseOrder) + column.setImage(ascending); + else + column.setImage(descending); + + return doCompare(tw1, tw2); + } + + public abstract int doCompare(TagWrapper tw1, TagWrapper tw2); + + } + + /** + * The comparator for the tag column + * + * @author franco + * + */ + public static class TagComparator extends TagWrapperComparator { + + public int doCompare(TagWrapper tw1, TagWrapper tw2) { + Integer v1 = new Integer(tw1.getKey()); + Integer v2 = new Integer(tw2.getKey()); + if (reverseOrder) + return v2.compareTo(v1); + else + return v1.compareTo(v2); + } + } + + /** + * The comparator for the instance column + * + * @author franco + * + */ + public static class InstanceComparator extends TagWrapperComparator { + + public int doCompare(TagWrapper tw1, TagWrapper tw2) { + Collator collator = Collator.getInstance(Locale.getDefault()); + if (reverseOrder) + return collator.compare(getInstance(tw2.getTag()), getInstance(tw1.getTag())); + else + return collator.compare(getInstance(tw1.getTag()), getInstance(tw2.getTag())); + } + + private String getInstance(Tag t) { + TagQueryUtil tqu = TagQueryUtil.INSTANCE; + Tag objectSnapshotTag = tqu.getExecutionInstanceSnapshot(t); + Tag objectTag = tqu.getObject(objectSnapshotTag); + String objectSnapshotDescriptor = tqu.getObjectDescriptor(objectTag); + String text = ""; //$NON-NLS-1$ + if (objectSnapshotDescriptor != null) { + int index = objectSnapshotDescriptor.lastIndexOf(".") + 1; //$NON-NLS-1$ + if (index < 0) index = 0; + text = objectSnapshotDescriptor.substring(index, objectSnapshotDescriptor.length()); + } + return text; + } + } + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.java new file mode 100755 index 0000000..d1b8467 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ChangeNotifier.java @@ -0,0 +1,7 @@ +package org.isistan.flabot.engine.executionstate.dialogs; + +public interface ChangeNotifier { + + void onChange(); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.java new file mode 100755 index 0000000..2d00b38 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/ManualStrategyGUIFactory.java @@ -0,0 +1,71 @@ +/** + * $Id: ManualStrategyGUIFactory.java,v 1.8 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs; + +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; + +/** + * GUI factory for ManualTraceInferenceStrategy + * @author $Author: franco $ + * + */ +public class ManualStrategyGUIFactory implements StrategyGUIFactory { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#createStrategy() + */ + public StateDeterminationStrategy createStrategy(Responsibility element) { + return ExecutionstateFactory.eINSTANCE.createManualStateDeterminationStrategy(); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#build(org.eclipse.swt.widgets.Composite) + */ + public void build(Composite c, Responsibility responsibility, StateDeterminationStrategy strategy, ChangeNotifier changeListener) { + c.setLayout(new RowLayout()); + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.noConfigurationRequired")); //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#getStrategyName() + */ + public String getStrategyName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.strategyName"); //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#getReturnType() + */ + public Class getReturnType() { + return ManualStateDeterminationStrategy.class; + } + + public EditionItemStatus getStatus() { + return EditionItemStatus.DEFAULT_OK; + } + + public void finishFactory() { + } + + public boolean isAssignable(StateDeterminationStrategy strategy) + { + return (strategy instanceof ManualStateDeterminationStrategy); + } + + public Command getCommand() + { + return null; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.java new file mode 100755 index 0000000..2123dfc --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateDeterminationStrategyEditionItem.java @@ -0,0 +1,231 @@ +/** + * $Id: StateDeterminationStrategyEditionItem.java,v 1.10 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.edit.componenteditor.dialogs.responsibility.ResponsibilityEditionItem; +import org.isistan.flabot.engine.ExtensionPointConstants; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.commands.UpdateStateDeterminationStrategyCommand; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.tab.EditionTabItemImpl; +import org.isistan.flabot.util.extension.PropertiesReader; +import org.isistan.flabot.util.problems.log.LoggerMessageAccumulator; + +/** + * Edits the responsibily's state determination strategy + * @author $Author: franco $ + * + */ +public class StateDeterminationStrategyEditionItem extends + EditionTabItemImpl + implements ResponsibilityEditionItem, ChangeNotifier { + + private Responsibility responsibility; + private Composite control; + + private ScrolledComposite strategyConfigurationComposite; + + private StateDeterminationStrategy strategy; + + private Group strategyConfigurationGroup; + private StrategyGUIFactory factory; + + + public static final List> + strategyGUIFactoryRegistry = new ArrayList>(); + + static + { + StrategyGUILoader> loader = new StrategyGUILoader>( + ExtensionPointConstants.STRATEGY_UI_COMBO_BOX, + ExtensionPointConstants.STRATEGY_UI_COMBO_BOX_ACTION_TAG, + ExtensionPointConstants.STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE, + new PropertiesReader()); + Collection> collection = loader.getEditionItems(new LoggerMessageAccumulator()); + + strategyGUIFactoryRegistry.addAll(collection); + strategyGUIFactoryRegistry.add(new TraceStrategyGUIFactory()); + strategyGUIFactoryRegistry.add(new ManualStrategyGUIFactory()); + strategyGUIFactoryRegistry.add(new StateFromMappingStrategyGUIFactory()); + } + + @Override + public void initialize(TabFolder tabFolder, TabItem tabItem, + Responsibility responsibility) { + + this.responsibility=responsibility; + StateDeterminationStrategy strategy = ExecutionStateManager.getStateDeterminationStrategy( + responsibility); + this.strategy = (StateDeterminationStrategy) EcoreUtil.copy(strategy); + strategy.setResponsibility(responsibility); + + tabItem.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.tabName")); //$NON-NLS-1$ + control=new Composite(tabFolder, SWT.NONE); + control.setLayout(new GridLayout(1, true)); + + createControls(); + } + + public void activate() { + + } + + /** + * This method initializes the tab's controsl + */ + private void createControls() { + new Label(control, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.responsibilityLabel") + //$NON-NLS-1$ + responsibility.getName()); + /// strategy selection group + Group strategySelectionGroup = new Group(control, SWT.NONE); + strategySelectionGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.selectStrategyGroup")); //$NON-NLS-1$ + strategySelectionGroup.setLayout(new RowLayout(SWT.VERTICAL)); + strategySelectionGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); + + final Combo strategySelectionCombo = new Combo(strategySelectionGroup, + SWT.READ_ONLY | SWT.DROP_DOWN | SWT.SIMPLE); + StrategyGUIFactory initialFactory = null; + for (StrategyGUIFactory factory: strategyGUIFactoryRegistry) { + strategySelectionCombo.add(factory.getStrategyName()); + if (factory.isAssignable(strategy) && initialFactory == null) { + strategySelectionCombo.setText(factory.getStrategyName()); + initialFactory = factory; + //break; + } + } + strategySelectionCombo.addSelectionListener(new SelectionAdapter(){ + @Override + public void widgetSelected(SelectionEvent e) { + StrategyGUIFactory factory = + strategyGUIFactoryRegistry.get(strategySelectionCombo.getSelectionIndex()); + setSelection(factory, true); + } + }); + + // strategy configuration group + strategyConfigurationGroup = new Group(control, SWT.NONE); + strategyConfigurationGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.configureStrategyGroup")); //$NON-NLS-1$ + strategyConfigurationGroup.setLayout(new FillLayout()); + strategyConfigurationGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + if (initialFactory != null) + { + setSelection(initialFactory, false); + } + } + + + @Override + public Control getControl() { + return control; + } + + public Command getCommand() { + factory.finishFactory(); + return new UpdateStateDeterminationStrategyCommand(responsibility, strategy); + } + + public boolean canCreateCommand() { + return getStatus().equals(EditionItemStatus.DEFAULT_OK); + } + + public EditionItemStatus getStatus() { + if (factory == null) + return EditionItemStatus.DEFAULT_OK; + return factory.getStatus(); + } + + /** + * Set the currently selected strategy and call the appropriate + * composite creation method to allow strategy-specific configuration + * @param strategy + */ + private void setSelection(StrategyGUIFactory factory, boolean reCreateStrategy) { + // set the current strategy + if (this.factory != factory) + { + this.factory = factory; + + if(reCreateStrategy) + { + this.strategy = this.factory.createStrategy(responsibility); + } + + // dispose the previous composite (if needed) + if (strategyConfigurationComposite != null && + !strategyConfigurationComposite.isDisposed()) + { + strategyConfigurationComposite.dispose(); + } + + //create the scrolled composite (contains the strategy-specific composite) + strategyConfigurationComposite = + new ScrolledComposite(strategyConfigurationGroup, SWT.HORIZONTAL|SWT.VERTICAL); + Composite c = new Composite(strategyConfigurationComposite, SWT.NONE); + strategyConfigurationComposite.setContent(c); + + factory.build(c, responsibility, strategy, this); + + // compute the composite's size and layout + c.setSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + strategyConfigurationComposite.layout(true); + strategyConfigurationGroup.layout(true); + + if (c.getBounds().width + 5 < strategyConfigurationComposite.getBounds().width || strategyConfigurationComposite.getBounds().width == 0) + { + strategyConfigurationComposite.setExpandHorizontal(true); + } + + if (c.getBounds().height + 5 < strategyConfigurationComposite.getBounds().height || strategyConfigurationComposite.getBounds().height == 0) + { + strategyConfigurationComposite.setExpandVertical(true); + } + + //strategyConfigurationComposite.setExpandVertical(true); + //strategyConfigurationComposite.setExpandHorizontal(true); + } + } + + /** + * Get the strategy that's currently being edited + * @return + */ + public StateDeterminationStrategy getStrategy() { + return strategy; + } + + public boolean accepts(Responsibility element) { + return true; + } + + public void onChange() + { + this.notifyChange(); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.java new file mode 100755 index 0000000..f068637 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StateFromMappingStrategyGUIFactory.java @@ -0,0 +1,102 @@ +/** + * $Id: StateFromMappingStrategyGUIFactory.java,v 1.4 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs; + +import java.util.List; + +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.SingleEditionItemStatus; + +/** + * GUI factory for the StateFromMapping strategy + * @author mblech + * + */ +public class StateFromMappingStrategyGUIFactory implements StrategyGUIFactory { + + private Responsibility responsibility; + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#createStrategy(org.isistan.flabot.coremodel.Responsibility) + */ + public StateDeterminationStrategy createStrategy(Responsibility responsibility) { + StateDeterminationStrategy strategy = ExecutionstateFactory.eINSTANCE.createStateFromMappingStateDeterminationStrategy(); + strategy.setResponsibility(responsibility); + this.responsibility = responsibility; + return strategy; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#build(org.eclipse.swt.widgets.Composite, java.lang.Object, org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem) + */ + public void build(Composite c, Responsibility responsibility, StateDeterminationStrategy strategy, ChangeNotifier changeNotifier) { + c.setLayout(new RowLayout()); + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.noConfigurationRequired")); //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#getStrategyName() + */ + public String getStrategyName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.strategyName"); //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#getReturnType() + */ + public Class getReturnType() { + return StateFromMappingStateDeterminationStrategy.class; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory#getStatus() + */ + public EditionItemStatus getStatus() { + if (responsibilityHasMapping()) + return EditionItemStatus.DEFAULT_OK; + return new SingleEditionItemStatus(EditionItemStatus.Type.ERROR, + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.error") + responsibility!=null?responsibility.getName():Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.null")); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * Check if the responsibility has a mapping or not + * @return + */ + @SuppressWarnings("unchecked") //$NON-NLS-1$ + private boolean responsibilityHasMapping() { + if (responsibility == null) + return true; + List preconditions = (List) responsibility.getPreconditions(); + for (Condition precondition: preconditions) { + if (Condition.mappingCondition.equals(precondition.getType())) + return true; + } + return false; + } + + public void finishFactory() { + } + + public boolean isAssignable(StateDeterminationStrategy strategy) + { + return (strategy instanceof StateFromMappingStateDeterminationStrategy); + } + + public Command getCommand() + { + return null; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.java new file mode 100755 index 0000000..4243cc5 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUIFactory.java @@ -0,0 +1,61 @@ +/** + * $Id: StrategyGUIFactory.java,v 1.6 2006/04/08 01:45:31 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs; + +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.widgets.Composite; +import org.isistan.flabot.util.edition.EditionItemStatus; + +/** + * State determination strategies that need some kind of configuration + * GUI must provide an implementation of this interface and register it + * in StateDeterminationStrategyDialog.configGUIBuilderRegistry + * @author $Author: franco $ + * + */ +public interface StrategyGUIFactory { + + /** + * Create an instance of StateDeterminationStrategy + * @return + */ + V createStrategy(T element); + + /** + * Build the configuration GUI on the given SWT composite + * @param c + */ + public void build(Composite c, T element, V strategy, ChangeNotifier changeListener); + + /** + * Get the name of the strategy this factory builds + * @return + */ + String getStrategyName(); + + /** + * Get the instance class of the elements this factory builds + * @return + */ + Class getReturnType(); + + /** + * Get the status + * @return + */ + EditionItemStatus getStatus(); + + /** + * Get the status + * @return + */ + void finishFactory(); + + + boolean isAssignable(V strategy); + + Command getCommand(); + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.java new file mode 100755 index 0000000..0490471 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/StrategyGUILoader.java @@ -0,0 +1,112 @@ +package org.isistan.flabot.engine.executionstate.dialogs; + +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.edit.editor.TabItemComparator; +import org.isistan.flabot.util.extension.ClassInstantiator; +import org.isistan.flabot.util.extension.ConfigurationElementHandler; +import org.isistan.flabot.util.extension.ExtensionPointHandler; +import org.isistan.flabot.util.extension.NoMatchingConstructorFoundException; +import org.isistan.flabot.util.extension.PropertiesReader; +import org.isistan.flabot.util.problems.DefaultMessage; +import org.isistan.flabot.util.problems.MessageAccumulator; +import org.isistan.flabot.util.problems.MessageSeverity; + +/** + * Loads contributed edition tabs + * @author $Author: dacostae $ + * + */ +public class StrategyGUILoader { + private ClassInstantiator instantiator=new ClassInstantiator( + new Class[] {Map.class}, + new Class[] {}); + + private String extensionPointId; + private String tabTag; + private String classAttribute; + private PropertiesReader propertiesReader; + + public StrategyGUILoader(String extensionPointId, + String tabTag, + String classAttribute, + PropertiesReader propertiesReader) { + this.extensionPointId=extensionPointId; + this.tabTag=tabTag; + this.classAttribute=classAttribute; + this.propertiesReader=propertiesReader; + } + + /** + * Returns all contributed edition tabs + * @param messageAccumulator + * @return + */ + public Collection getEditionItems( + MessageAccumulator messageAccumulator) { + ExtensionPointHandler extensionPoint=new ExtensionPointHandler( + extensionPointId); + ConfigurationElementHandler[] configurationElements= + extensionPoint.getAllConfigurationElementHandlers( + tabTag); + + List componentEditionTabItems= + new LinkedList(); + + for (ConfigurationElementHandler configurationElement : configurationElements) { + + try { + Class clazz= + configurationElement.getClass( + classAttribute); + Map properties=propertiesReader.readProperties(configurationElement); + T instance=instantiator.instantiate(clazz, + new Object[] {properties}, + new Object[] {}); + componentEditionTabItems.add(instance); + } catch (ClassNotFoundException e) { + handleError(messageAccumulator, configurationElement, + "Class " + configurationElement.getString(classAttribute) + " not found.", + e); + + } catch (InstantiationException e) { + handleError(messageAccumulator, configurationElement, + "Cannot instantiate " + configurationElement.getString(classAttribute) + ".", + e); + } catch (IllegalAccessException e) { + handleError(messageAccumulator, configurationElement, + "Cannot access constructor for " + configurationElement.getString(classAttribute) + ".", + e); + } catch (IllegalArgumentException e) { + handleError(messageAccumulator, configurationElement, + "Bad arguments for constructor of " + configurationElement.getString(classAttribute) + ".", + e); + } catch (NoMatchingConstructorFoundException e) { + handleError(messageAccumulator, configurationElement, + "No matching constructor found for " + configurationElement.getString(classAttribute) + ".", + e); + } catch (InvocationTargetException e) { + handleError(messageAccumulator, configurationElement, + "Exception in target constructor " + configurationElement.getString(classAttribute) + ".", + e); + } + } + return componentEditionTabItems; + } + + private void handleError(MessageAccumulator messageAccumulator, ConfigurationElementHandler configurationElement, String description, Throwable e) { + messageAccumulator.addMessage(new DefaultMessage( + FlabotPlugin.getDefault(), + FlabotPlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, + "Error loading contributed edition tab item from " + configurationElement.getNamespace(), + description, + e)); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/TraceStrategyGUIFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/TraceStrategyGUIFactory.java new file mode 100755 index 0000000..7f18723 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/TraceStrategyGUIFactory.java @@ -0,0 +1,157 @@ +/** + * $Id: TraceStrategyGUIFactory.java,v 1.14 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.FixedStateDefault; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityObjectSnapshot; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityPreviousScope; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError; +import org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtraceFactory; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.SingleEditionItemStatus; + +/** + * Config GUI builder for TraceBasedStateDeterminationStrategy + * @author $Author: franco $ + * + */ +public class TraceStrategyGUIFactory implements StrategyGUIFactory { + + private PrologEditComposite prologComposite; + + private static Map> conditions; + + private TraceBasedStateDeterminationStrategy traceStrategy; + + private JavalogTraceInferenceStrategy javalogInferenceStrategy; + + private static Map> getConditions() { + if (conditions == null) + conditions = createConditionMap(); + return conditions; + } + + private static Map> createConditionMap() { + Map> conditions = new HashMap>(); + + List conds = new ArrayList(); + conds.add(new VariableStateOnError("Faulty")); //$NON-NLS-1$ + conds.add(new FixedStateDefault("Faulty")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag("Faulty")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag("Faulty")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.faulty"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new VariableStateOnError("Executed")); //$NON-NLS-1$ + conds.add(new FixedStateDefault("Executed")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag("Executed")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag("Executed")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.executed"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new VariableStateOnError("NotExecuted")); //$NON-NLS-1$ + conds.add(new FixedStateDefault("NotExecuted")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag("NotExecuted")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag("NotExecuted")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.notExecuted"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new ResponsibilityObjectSnapshot()); + conds.add(new ResponsibilityPreviousScope()); + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.filtered"), conds); //$NON-NLS-1$ + + return conditions; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.dialogs.ConfigGUIBuilder#build(org.eclipse.swt.widgets.Composite) + */ + public void build(Composite c, Responsibility responsibility, StateDeterminationStrategy strategy, ChangeNotifier changeNotifier) { + c.setLayout(new GridLayout(2, false)); + + if (strategy == null || + !(strategy instanceof TraceBasedStateDeterminationStrategy)) { + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.wrongStrategy")); //$NON-NLS-1$ + return; + } + + traceStrategy = (TraceBasedStateDeterminationStrategy) strategy; + javalogInferenceStrategy = (JavalogTraceInferenceStrategy) traceStrategy.getTraceInferenceStrategy(); + if (javalogInferenceStrategy == null) { + javalogInferenceStrategy = JavalogtraceFactory.eINSTANCE.createJavalogTraceInferenceStrategy(); + traceStrategy.setTraceInferenceStrategy(javalogInferenceStrategy); + } + + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.prologCode")); //$NON-NLS-1$ + prologComposite = new PrologEditComposite(c, SWT.NONE, getConditions()); + prologComposite.setText(javalogInferenceStrategy.getPrologCode()); + prologComposite.pack(); + } + + public void finishFactory() + { + traceStrategy.setTraceInferenceStrategy(javalogInferenceStrategy); + javalogInferenceStrategy.setPrologCode(prologComposite.getText()); + } + + public StateDeterminationStrategy createStrategy(Responsibility responsibility) { + TraceBasedStateDeterminationStrategy traceStrategy = ExecutionstateFactory.eINSTANCE.createTraceBasedStateDeterminationStrategy(); + TraceInferenceStrategy inferenceStrategy = JavalogtraceFactory.eINSTANCE.createJavalogTraceInferenceStrategy(); + traceStrategy.setTraceInferenceStrategy(inferenceStrategy); + traceStrategy.setResponsibility(responsibility); + return traceStrategy; + } + + public String getStrategyName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.strategyName"); //$NON-NLS-1$ + } + + public Class getReturnType() { + return TraceBasedStateDeterminationStrategy.class; + } + + public EditionItemStatus getStatus() { + String diagnostic = prologComposite.validatePrologCode(); + if (diagnostic == null) + return EditionItemStatus.DEFAULT_OK; + return new SingleEditionItemStatus(EditionItemStatus.Type.ERROR, + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.errorInPrologCode") + diagnostic); //$NON-NLS-1$ + } + + public boolean isAssignable(StateDeterminationStrategy strategy) + { + if (strategy instanceof TraceBasedStateDeterminationStrategy) + { + return ((TraceBasedStateDeterminationStrategy) strategy).getTraceInferenceStrategy() == null || ((TraceBasedStateDeterminationStrategy) strategy).getTraceInferenceStrategy() instanceof JavalogTraceInferenceStrategy; + } + return false; + } + + public Command getCommand() + { + return null; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.java new file mode 100755 index 0000000..888c91c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/DefaultPredefinedCondition.java @@ -0,0 +1,54 @@ +/** + * $Id: DefaultPredefinedCondition.java,v 1.4 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions; + +import java.util.HashMap; +import java.util.Map; + +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public abstract class DefaultPredefinedCondition implements PredefinedCondition { + + private static final String[] EMPTY_ARRAY = new String[0]; + + private Map properties = new HashMap(); + + public abstract String getPrologCode(); + + protected String getValueProperty(int property) { + PredefinedCondition pp = properties.get(Integer.valueOf(property)); + if (pp == null) + return ""; //$NON-NLS-1$ + + return pp.getPrologCode(); + } + + public void setPredefinedProperty(int property, PredefinedCondition value) { + if (acceptProperty(property)) + properties.put(Integer.valueOf(property), value); + } + + public Map getProperties() { + return properties; + } + + public abstract boolean acceptProperty(int property); + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.name"); //$NON-NLS-1$ + } + + public String getDescription() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.description"); //$NON-NLS-1$ + } + + public String[] getRequiredRules() { + return EMPTY_ARRAY; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.java new file mode 100755 index 0000000..0aeb90e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/PredefinedCondition.java @@ -0,0 +1,40 @@ +/** + * $Id: PredefinedCondition.java,v 1.3 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions; + +import java.util.Map; + +/** + * @author $Author: franco $ + * + */ +public interface PredefinedCondition { + + public static final int NONE_PROPERTY = 1 << 1; + + public static final int RETURN_VALUE_PROPERTY = 1 << 2; + + public static final int ARGUMENTS_PROPERTY = 1 << 3; + + public static final int INSTANCE_PROPERTY = 1 << 4; + + public static final int SNAPSHOT_PROPERTY = 1 << 5; + + String getPrologCode(); + + void setPredefinedProperty(int property, PredefinedCondition value); + + Map getProperties(); + + String getName(); + + String getDescription(); + + String getFieldName(); + + boolean acceptProperty(int property); + + String[] getRequiredRules(); +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.java new file mode 100755 index 0000000..85f42b5 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/SnapshotPredefinedCondition.java @@ -0,0 +1,22 @@ +/** + * $Id: SnapshotPredefinedCondition.java,v 1.3 2006/04/11 00:35:35 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions; + +/** + * @author usuario + * + */ +public interface SnapshotPredefinedCondition extends PredefinedCondition{ + + public static final int SNAPSHOT_TOSTRING_PROPERTY = 1 << 1; + + public static final int SNAPSHOT_FIELD_PROPERTY = 1 << 2; + + public static final int SNAPSHOT_OBJECT_PROPERTY = 1 << 3; + + public static final int SNAPSHOT_NULL_PROPERTY = 1 << 4; + + boolean acceptSnaptshot(int property); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.java new file mode 100755 index 0000000..0b15563 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventObjectSnapshot.java @@ -0,0 +1,82 @@ +/** + * $Id: EventObjectSnapshot.java,v 1.4 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import java.util.Iterator; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class EventObjectSnapshot extends DefaultPredefinedCondition { + + String eventName = ""; //$NON-NLS-1$ + + public EventObjectSnapshot(String eventName) { + this.eventName = eventName; + } + + public String getPrologCode() { + return getHeading() + + getValueProperty(PredefinedCondition.RETURN_VALUE_PROPERTY) + + getValueProperty(PredefinedCondition.ARGUMENTS_PROPERTY) + + getValueProperty(PredefinedCondition.INSTANCE_PROPERTY) + "."; //$NON-NLS-1$ + } + + protected String getHeading() { + if (!hasValidProperties()) { + return "eventPreFilter(" + eventName + ")"; //$NON-NLS-1$ //$NON-NLS-2$ + } else { + return "eventPreFilterAccepts(" + eventName + ", Tag) :-\n\t"; //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + public String getValueProperty(int property) { + String stringProperty = super.getValueProperty(property); + if (property == PredefinedCondition.RETURN_VALUE_PROPERTY) { + if (stringProperty.trim().length() > 0 && (getProperties().get(Integer.valueOf(PredefinedCondition.ARGUMENTS_PROPERTY)) != null || + getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null)) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + + if (property == PredefinedCondition.ARGUMENTS_PROPERTY) { + if (stringProperty.trim().length() > 0 && getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + return stringProperty; + } + + protected boolean hasValidProperties() { + for (Iterator iter=getProperties().keySet().iterator(); iter.hasNext();) { + if (getProperties().get(iter.next()) != null) + return true; + } + return false; + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventObjectSnapshot.name"); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.RETURN_VALUE_PROPERTY == property || + PredefinedCondition.ARGUMENTS_PROPERTY == property || + PredefinedCondition.INSTANCE_PROPERTY == property; + } + + public String getFieldName() { + return eventName; + } + + public String[] getRequiredRules() { + if (hasValidProperties()) + return new String[]{"eventPreFilter(" + eventName + ")."}; //$NON-NLS-1$ //$NON-NLS-2$ + return super.getRequiredRules(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventPreviousScope.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventPreviousScope.java new file mode 100755 index 0000000..c45446e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/EventPreviousScope.java @@ -0,0 +1,40 @@ +/** + * $Id: EventPreviousScope.java,v 1.2 2006/04/11 02:19:00 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class EventPreviousScope extends DefaultPredefinedCondition { + + private String eventName; + + public EventPreviousScope(String eventName) { + this.eventName = eventName; + } + + public String getPrologCode() { + return "eventPreFilter(" + eventName + "):-\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ + "preScope(PreScope),\n\t" + //$NON-NLS-1$ + "argument(Tag, Argument),\n\t" + //$NON-NLS-1$ + "scopeAcceptsSnapshot(PreScope, Argument)."; //$NON-NLS-1$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventPreviousScope.name"); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return eventName; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/FixedStateDefault.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/FixedStateDefault.java new file mode 100755 index 0000000..49974a0 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/FixedStateDefault.java @@ -0,0 +1,56 @@ +/** + * $Id: FixedStateDefault.java,v 1.2 2006/04/11 02:19:00 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author $Author: franco $ + * + */ +public class FixedStateDefault extends DefaultPredefinedCondition { + + private String eventName; + + private String state; + + public FixedStateDefault(String state) { + this.eventName = null; + this.state = state; + } + + public FixedStateDefault(String eventName, String state) { + this(state); + this.eventName = eventName; + } + + public String getPrologCode() { + return getHeading(); + } + + private String getHeading() { + if (eventName == null) + return "executionState('" + state + "')."; //$NON-NLS-1$ //$NON-NLS-2$ + + return "eventState(" + eventName + ", '" + state + "')."; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.FixedStateDefault.name"); //$NON-NLS-1$ + } + + public String getDescription() { + return "It is is set as " + state + " by default."; + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return state; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.java new file mode 100755 index 0000000..e1fb848 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/GeneralLogObjectSnapshot.java @@ -0,0 +1,79 @@ +/** + * $Id: EventObjectSnapshot.java,v 1.4 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import java.util.Iterator; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class GeneralLogObjectSnapshot extends DefaultPredefinedCondition { + + public GeneralLogObjectSnapshot() { + } + + public String getPrologCode() { + return getHeading() + + getValueProperty(PredefinedCondition.RETURN_VALUE_PROPERTY) + + getValueProperty(PredefinedCondition.ARGUMENTS_PROPERTY) + + getValueProperty(PredefinedCondition.INSTANCE_PROPERTY) + "."; //$NON-NLS-1$ + } + + protected String getHeading() { + if (!hasValidProperties()) { + return "generalPreFilter"; //$NON-NLS-1$ + } else { + return "generalPreFilterAccepts(Tag) :-\n\t"; //$NON-NLS-1$ + } + } + + public String getValueProperty(int property) { + String stringProperty = super.getValueProperty(property); + if (property == PredefinedCondition.RETURN_VALUE_PROPERTY) { + if (stringProperty.trim().length() > 0 && (getProperties().get(Integer.valueOf(PredefinedCondition.ARGUMENTS_PROPERTY)) != null || + getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null)) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + + if (property == PredefinedCondition.ARGUMENTS_PROPERTY) { + if (stringProperty.trim().length() > 0 && getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + return stringProperty; + } + + protected boolean hasValidProperties() { + for (Iterator iter=getProperties().keySet().iterator(); iter.hasNext();) { + if (getProperties().get(iter.next()) != null) + return true; + } + return false; + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventObjectSnapshot.name"); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.RETURN_VALUE_PROPERTY == property || + PredefinedCondition.ARGUMENTS_PROPERTY == property || + PredefinedCondition.INSTANCE_PROPERTY == property; + } + + public String getFieldName() { + return ""; + } + + public String[] getRequiredRules() { + if (hasValidProperties()) + return new String[]{"generalPreFilter."}; //$NON-NLS-1$ + return super.getRequiredRules(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.java new file mode 100755 index 0000000..c9292e9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityObjectSnapshot.java @@ -0,0 +1,76 @@ +/** + * $Id: ResponsibilityObjectSnapshot.java,v 1.3 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import java.util.Iterator; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class ResponsibilityObjectSnapshot extends DefaultPredefinedCondition { + + public String getPrologCode() { + return getHeading() + + getValueProperty(PredefinedCondition.RETURN_VALUE_PROPERTY) + + getValueProperty(PredefinedCondition.ARGUMENTS_PROPERTY) + + getValueProperty(PredefinedCondition.INSTANCE_PROPERTY) + "."; //$NON-NLS-1$ + } + + protected String getHeading() { + if (!hasValidProperties()) { + return "responsibilityPreFilter"; //$NON-NLS-1$ + } else { + return "responsibilityPreFilterAccepts(Tag) :-\n\t"; //$NON-NLS-1$ + } + } + + public String getValueProperty(int property) { + String stringProperty = super.getValueProperty(property); + if (property == PredefinedCondition.RETURN_VALUE_PROPERTY) { + if (stringProperty.trim().length() > 0 && (getProperties().get(Integer.valueOf(PredefinedCondition.ARGUMENTS_PROPERTY)) != null || + getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null)) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + + if (property == PredefinedCondition.ARGUMENTS_PROPERTY) { + if (stringProperty.trim().length() > 0 && getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + return stringProperty; + } + + protected boolean hasValidProperties() { + for (Iterator iter=getProperties().keySet().iterator(); iter.hasNext();) { + if (getProperties().get(iter.next()) != null) + return true; + } + return false; + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityObjectSnapshot.name"); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.RETURN_VALUE_PROPERTY == property || + PredefinedCondition.ARGUMENTS_PROPERTY == property || + PredefinedCondition.INSTANCE_PROPERTY == property; + } + + public String getFieldName() { + return ""; //$NON-NLS-1$ + } + + public String[] getRequiredRules() { + if (hasValidProperties()) + return new String[]{"responsibilityPreFilter."}; //$NON-NLS-1$ + return super.getRequiredRules(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.java new file mode 100755 index 0000000..d7b8512 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/ResponsibilityPreviousScope.java @@ -0,0 +1,35 @@ +/** + * $Id: ResponsibilityPreviousScope.java,v 1.1 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * + * @author usuario + * + */ +public class ResponsibilityPreviousScope extends DefaultPredefinedCondition { + + public String getPrologCode() { + return "responsibilityPreFilterAccepts(Tag) :-\n\t" + //$NON-NLS-1$ + "returnValue(Tag, Return),\n\t" + //$NON-NLS-1$ + "preScope(Scope),\n\t" + //$NON-NLS-1$ + "scopeAcceptsSnapshot(Scope, Tag)."; //$NON-NLS-1$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityPreviousScope.name"); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return ""; //$NON-NLS-1$ + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.java new file mode 100755 index 0000000..3e869b7 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnAnyTag.java @@ -0,0 +1,57 @@ +/** + * $Id: VariableStateOnAnyTag.java,v 1.2 2006/04/11 02:19:00 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author $Author: franco $ + * + */ +public class VariableStateOnAnyTag extends DefaultPredefinedCondition { + + private String eventName; + + private String state; + + public VariableStateOnAnyTag(String state) { + this.eventName = null; + this.state = state; + } + + public VariableStateOnAnyTag(String eventName, String state) { + this(state); + this.eventName = eventName; + } + + public String getPrologCode() { + return getHeading() + "\n\t" + //$NON-NLS-1$ + "executionTag(_)."; //$NON-NLS-1$ + } + + private String getHeading() { + if (eventName == null) + return "executionState('" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ + + return "eventState(" + eventName + ", '" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.name"); //$NON-NLS-1$ + } + + public String getDescription() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.description", state); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return state; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnCustomTag.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnCustomTag.java new file mode 100755 index 0000000..1737a14 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnCustomTag.java @@ -0,0 +1,79 @@ +/** + * $Id: VariableStateOnCustomTag.java,v 1.3 2006/04/11 02:19:00 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class VariableStateOnCustomTag extends DefaultPredefinedCondition { + + private String state = ""; //$NON-NLS-1$ + + private String eventName; + + public VariableStateOnCustomTag(String state) { + this.state = state; + this.eventName = null; + } + + public VariableStateOnCustomTag(String eventName, String state) { + this(state); + this.eventName = eventName; + } + + public String getPrologCode() { + return getHeading() + "\n\t" + //$NON-NLS-1$ + "executionTag(Tag),\n\t" + //$NON-NLS-1$ + getValueProperty(PredefinedCondition.RETURN_VALUE_PROPERTY) + + getValueProperty(PredefinedCondition.ARGUMENTS_PROPERTY) + + getValueProperty(PredefinedCondition.INSTANCE_PROPERTY) + "."; //$NON-NLS-1$ + } + + private String getHeading() { + if (eventName == null) + return "executionState('" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ + + return "eventState(" + eventName + ", '" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.name"); //$NON-NLS-1$ + } + + public String getDescription() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.description", state); //$NON-NLS-1$ + } + + public String getValueProperty(int property) { + String stringProperty = super.getValueProperty(property); + if (property == PredefinedCondition.RETURN_VALUE_PROPERTY) { + if (stringProperty.trim().length() > 0 && (getProperties().get(Integer.valueOf(PredefinedCondition.ARGUMENTS_PROPERTY)) != null || + getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null)) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + + if (property == PredefinedCondition.ARGUMENTS_PROPERTY) { + if (stringProperty.trim().length() > 0 && getProperties().get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)) != null) + stringProperty += ",\n\t"; //$NON-NLS-1$ + } + return stringProperty; + } + + @Override + public boolean acceptProperty(int property) { + return PredefinedCondition.RETURN_VALUE_PROPERTY == property || + PredefinedCondition.ARGUMENTS_PROPERTY == property || + PredefinedCondition.INSTANCE_PROPERTY == property; + } + + public String getFieldName() { + return ""; //$NON-NLS-1$ + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnError.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnError.java new file mode 100755 index 0000000..659dc68 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/predefined/VariableStateOnError.java @@ -0,0 +1,57 @@ +/** + * $Id: VariableStateOnError.java,v 1.2 2006/04/11 02:19:00 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author $Author: franco $ + * + */ +public class VariableStateOnError extends DefaultPredefinedCondition { + + private String state; + + private String eventName; + + public VariableStateOnError(String state) { + this.state = state; + this.eventName = null; + } + + public VariableStateOnError(String eventName, String state) { + this(state); + this.eventName = eventName; + } + + public String getPrologCode() { + return getHeading() + "\n\t" + //$NON-NLS-1$ + "executionTag(T), isExitError(T)."; //$NON-NLS-1$ + } + + private String getHeading() { + if (eventName == null) + return "executionState('" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ + + return "eventState(" + eventName + ", '" + state + "'):-"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + public String getName() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.name"); //$NON-NLS-1$ + } + + public String getDescription() { + return Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.description", state); //$NON-NLS-1$ + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return state; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.java new file mode 100755 index 0000000..73fc61a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ArgumentPredefinedProperty.java @@ -0,0 +1,47 @@ +/** + * $Id: ArgumentPredefinedProperty.java,v 1.3 2006/04/11 00:35:35 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.SnapshotPredefinedCondition; + +/** + * @author usuario + * + */ +public class ArgumentPredefinedProperty extends DefaultPredefinedCondition implements SnapshotPredefinedCondition { + + private String fieldName = "ArgumentField"; //$NON-NLS-1$ + + public String getPrologCode() { + String predefined = "argument(Tag, " + getFieldName() + "),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ + getValueProperty(PredefinedCondition.SNAPSHOT_PROPERTY); + return predefined; + } + + protected String getValueProperty(int property) { + String propertyString = super.getValueProperty(property); + if (propertyString.trim().length() == 0) + return "(NOT-SET)"; //$NON-NLS-1$ + + return propertyString; + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.SNAPSHOT_PROPERTY == property; + } + + public String getFieldName() { + return fieldName; + } + + public boolean acceptSnaptshot(int property) { + return SnapshotPredefinedCondition.SNAPSHOT_TOSTRING_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_FIELD_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_OBJECT_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_NULL_PROPERTY == property; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ExecutionInstancePredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ExecutionInstancePredefinedProperty.java new file mode 100755 index 0000000..e54c424 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ExecutionInstancePredefinedProperty.java @@ -0,0 +1,46 @@ +/** + * $Id: ExecutionInstancePredefinedProperty.java,v 1.1 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.SnapshotPredefinedCondition; + +/** + * @author usuario + * + */ +public class ExecutionInstancePredefinedProperty extends DefaultPredefinedCondition implements SnapshotPredefinedCondition { + + private String fieldName = "Snapshot"; //$NON-NLS-1$ + + public String getPrologCode() { + String predefined = "executionInstanceSnapshot(Tag, " + getFieldName() + "),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ + getValueProperty(PredefinedCondition.SNAPSHOT_PROPERTY); + return predefined; + } + + protected String getValueProperty(int property) { + String propertyString = super.getValueProperty(property); + if (propertyString.trim().length() == 0) + return "(NOT-SET)"; //$NON-NLS-1$ + + return propertyString; + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.SNAPSHOT_PROPERTY == property; + } + + public String getFieldName() { + return fieldName; + } + + public boolean acceptSnaptshot(int property) { + return SnapshotPredefinedCondition.SNAPSHOT_TOSTRING_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_FIELD_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_OBJECT_PROPERTY == property; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ReturnValuePredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ReturnValuePredefinedProperty.java new file mode 100755 index 0000000..21a5b69 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/ReturnValuePredefinedProperty.java @@ -0,0 +1,47 @@ +/** + * $Id: ReturnValuePredefinedProperty.java,v 1.3 2006/04/11 00:35:35 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.SnapshotPredefinedCondition; + +/** + * @author usuario + * + */ +public class ReturnValuePredefinedProperty extends DefaultPredefinedCondition implements SnapshotPredefinedCondition{ + + private String fieldName = "ReturnValue"; //$NON-NLS-1$ + + public String getPrologCode() { + String predefined = "returnValue(Tag, " + getFieldName() + "),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ + getValueProperty(PredefinedCondition.SNAPSHOT_PROPERTY); + return predefined; + } + + protected String getValueProperty(int property) { + String propertyString = super.getValueProperty(property); + if (propertyString.trim().length() == 0) + return "(NOT-SET)"; //$NON-NLS-1$ + + return propertyString; + } + + public String getFieldName() { + return fieldName; + } + + public boolean acceptProperty(int property) { + return PredefinedCondition.SNAPSHOT_PROPERTY == property; + } + + public boolean acceptSnaptshot(int property) { + return SnapshotPredefinedCondition.SNAPSHOT_TOSTRING_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_FIELD_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_OBJECT_PROPERTY == property || + SnapshotPredefinedCondition.SNAPSHOT_NULL_PROPERTY == property; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.java new file mode 100755 index 0000000..0624452 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotFieldPredefinedProperty.java @@ -0,0 +1,54 @@ +/** + * $Id: SnapshotFieldPredefinedProperty.java,v 1.2 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; + +/** + * @author usuario + * + */ +public class SnapshotFieldPredefinedProperty extends DefaultPredefinedCondition { + + StringMatchingPredefinedProperty matchingName; + StringMatchingPredefinedProperty matchingValue; + + String fieldName = ""; //$NON-NLS-1$ + String fieldValue = ""; //$NON-NLS-1$ + String name = ""; //$NON-NLS-1$ + + public SnapshotFieldPredefinedProperty(String name) { + this.name = name; + this.fieldName = name + "FieldName"; //$NON-NLS-1$ + this.fieldValue = name + "FieldValue"; //$NON-NLS-1$ + matchingName = new StringMatchingPredefinedProperty(fieldName); + matchingValue = new StringMatchingPredefinedProperty(fieldValue); + } + + + public String getPrologCode() { + return "snapshotField(" + getFieldName() + ", field(" + fieldName + ", " + fieldValue + ")),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + matchingName.getPrologCode() + ",\n\t" + //$NON-NLS-1$ + matchingValue.getPrologCode(); + } + + + public PredefinedCondition getMatchingName() { + return matchingName; + } + + public PredefinedCondition getMatchingValue() { + return matchingValue; + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return name; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.java new file mode 100755 index 0000000..fb9ece9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotNullPredefinedProperty.java @@ -0,0 +1,32 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; + +/** + * @author usuario + * + */ +public class SnapshotNullPredefinedProperty extends DefaultPredefinedCondition { + + String name = ""; //$NON-NLS-1$ + + public SnapshotNullPredefinedProperty(String name) { + this.name = name; + } + + + public String getPrologCode() { + return "snapshotIsNull(" + name + ")"; + } + + public String getFieldName() { + return ""; + } + + public boolean acceptProperty(int property) { + return false; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.java new file mode 100755 index 0000000..79d7b09 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotObjectPredefinedProperty.java @@ -0,0 +1,45 @@ +/** + * $Id: SnapshotObjectPredefinedProperty.java,v 1.2 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; + +/** + * @author usuario + * + */ +public class SnapshotObjectPredefinedProperty extends DefaultPredefinedCondition { + + StringMatchingPredefinedProperty matchingToString; + + String fieldValue = ""; //$NON-NLS-1$ + String name = ""; //$NON-NLS-1$ + + public SnapshotObjectPredefinedProperty(String name) { + this.name = name; + this.fieldValue = name + "Object"; //$NON-NLS-1$ + matchingToString = new StringMatchingPredefinedProperty(name + "Descriptor"); //$NON-NLS-1$ + } + + public String getPrologCode() { + return "snapshotObject(" + name + ", " + fieldValue + "),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + "objectClass(" + fieldValue + ", " + name + "Class),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + "classDescriptor(" + name + "Class, " + name + "Descriptor),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + matchingToString.getPrologCode(); + } + + public String getFieldName() { + return fieldValue; + } + + public PredefinedCondition getMatchingToString() { + return matchingToString; + } + + public boolean acceptProperty(int property) { + return false; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.java new file mode 100755 index 0000000..e2696a2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/SnapshotToStringPredefinedProperty.java @@ -0,0 +1,43 @@ +/** + * $Id: SnapshotToStringPredefinedProperty.java,v 1.2 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; + +/** + * @author usuario + * + */ +public class SnapshotToStringPredefinedProperty extends DefaultPredefinedCondition { + + StringMatchingPredefinedProperty matchingToString; + + String fieldValue = ""; //$NON-NLS-1$ + String name = ""; //$NON-NLS-1$ + + public SnapshotToStringPredefinedProperty(String name) { + this.name = name; + this.fieldValue = name + "String"; //$NON-NLS-1$ + matchingToString = new StringMatchingPredefinedProperty(fieldValue); + } + + public String getPrologCode() { + return "snapshotToString(" + name + ", " + fieldValue + "),\n\t" + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + matchingToString.getPrologCode(); + } + + public String getFieldName() { + return fieldValue; + } + + public PredefinedCondition getMatchingToString() { + return matchingToString; + } + + public boolean acceptProperty(int property) { + return false; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.java new file mode 100755 index 0000000..acd346a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/conditions/properties/StringMatchingPredefinedProperty.java @@ -0,0 +1,71 @@ +/** + * $Id: StringMatchingPredefinedProperty.java,v 1.3 2006/04/11 03:19:54 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.conditions.properties; + +import org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition; + +/** + * @author usuario + * + */ +public class StringMatchingPredefinedProperty extends DefaultPredefinedCondition { + + public static String FULL_MATCHING = "stringsEqual"; //$NON-NLS-1$ + + public static String SUBSTRING_MATCHING = "stringContains"; //$NON-NLS-1$ + + public static String REGEX_MATCHING = "regexMatch"; //$NON-NLS-1$ + + private String matchingStringType = FULL_MATCHING; + + private String fieldName = "(NOT-SET)"; //$NON-NLS-1$ + + private String fieldValue = "(NOT-SET)"; //$NON-NLS-1$ + + private boolean isNegative = false; + + public StringMatchingPredefinedProperty(String fieldName) { + this.fieldName = fieldName; + } + + public void setMatchingStringType(String matchingStringType) { + this.matchingStringType = matchingStringType; + } + + public void setFieldValue(String fieldValue) { + this.fieldValue = fieldValue; + } + + public void setNegative(boolean isNegative) { + this.isNegative = isNegative; + } + + public boolean isNegative() { + return isNegative; + } + + public String getFieldValue() { + return fieldValue; + } + + public String getMatchingStringType() { + return matchingStringType; + } + + public String getPrologCode() { + String predefined = matchingStringType + "(" + fieldName + ", '" + fieldValue + "')"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + if (isNegative()) + predefined = "not(" + predefined + ")"; //$NON-NLS-1$ //$NON-NLS-2$ + return predefined; + } + + public boolean acceptProperty(int property) { + return false; + } + + public String getFieldName() { + return ""; //$NON-NLS-1$ + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.java new file mode 100755 index 0000000..a0fb2e1 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/ConditionEventStrategyEditionItem.java @@ -0,0 +1,208 @@ +/** + * $Id: StateDeterminationStrategyEditionItem.java,v 1.10 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.event; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.edit.ucmeditor.dialogs.event.ConditionEventEditionItem; +import org.isistan.flabot.engine.ExtensionPointConstants; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.PrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.dialogs.ChangeNotifier; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUILoader; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.tab.EditionTabItemImpl; +import org.isistan.flabot.util.extension.PropertiesReader; +import org.isistan.flabot.util.problems.log.LoggerMessageAccumulator; + +/** + * Edits the responsibily's state determination strategy + * @author $Author: franco $ + * + */ +public class ConditionEventStrategyEditionItem + extends EditionTabItemImpl implements ConditionEventEditionItem, ChangeNotifier { + + private ConditionEvent conditionEvent; + private Composite control; + + private ScrolledComposite strategyConfigurationComposite; + + private PrologProviderStrategy strategy; + + private Group strategyConfigurationGroup; + private StrategyGUIFactory factory; + + + public static final List> + strategyGUIFactoryRegistry = new ArrayList>(); + + static + { + StrategyGUILoader> loader = new StrategyGUILoader>( + ExtensionPointConstants.PROLOG_STRATEGY_UI_COMBO_BOX, + ExtensionPointConstants.PROLOG_STRATEGY_UI_COMBO_BOX_ACTION_TAG, + ExtensionPointConstants.PROLOG_STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE, + new PropertiesReader()); + Collection> collection = loader.getEditionItems(new LoggerMessageAccumulator()); + + strategyGUIFactoryRegistry.add(new SimplePrologProviderStrategyGUI()); + strategyGUIFactoryRegistry.addAll(collection); + } + + @Override + public void initialize(TabFolder tabFolder, TabItem tabItem, + ConditionEvent conditionEvent) { + + this.conditionEvent=conditionEvent; + + strategy = ExecutionStateManager.getPrologProviderStrategy(conditionEvent); + this.strategy = (PrologProviderStrategy) EcoreUtil.copy(strategy); + + tabItem.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.tabName")); //$NON-NLS-1$ + control=new Composite(tabFolder, SWT.NONE); + control.setLayout(new GridLayout(1, true)); + + createControls(); + } + + public void activate() { + + } + + /** + * This method initializes the tab's controsl + */ + private void createControls() { + new Label(control, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.responsibilityLabel") + //$NON-NLS-1$ + conditionEvent.getName()); + /// strategy selection group + Group strategySelectionGroup = new Group(control, SWT.NONE); + strategySelectionGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.selectStrategyGroup")); //$NON-NLS-1$ + strategySelectionGroup.setLayout(new RowLayout(SWT.VERTICAL)); + strategySelectionGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); + + final Combo strategySelectionCombo = new Combo(strategySelectionGroup, + SWT.READ_ONLY | SWT.DROP_DOWN | SWT.SIMPLE); + StrategyGUIFactory initialFactory = null; + for (StrategyGUIFactory factory: strategyGUIFactoryRegistry) { + strategySelectionCombo.add(factory.getStrategyName()); + if (factory.isAssignable(strategy)) { + strategySelectionCombo.setText(factory.getStrategyName()); + initialFactory = factory; + //break; + } + } + strategySelectionCombo.addSelectionListener(new SelectionAdapter(){ + @Override + public void widgetSelected(SelectionEvent e) { + StrategyGUIFactory factory = + strategyGUIFactoryRegistry.get(strategySelectionCombo.getSelectionIndex()); + setSelection(factory); + } + }); + + // strategy configuration group + strategyConfigurationGroup = new Group(control, SWT.NONE); + strategyConfigurationGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.configureStrategyGroup")); //$NON-NLS-1$ + strategyConfigurationGroup.setLayout(new FillLayout()); + strategyConfigurationGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + if (initialFactory != null) + setSelection(initialFactory); + } + + + @Override + public Control getControl() { + return control; + } + + public Command getCommand() { + factory.finishFactory(); + return factory.getCommand(); + } + + public boolean canCreateCommand() { + return getStatus().equals(EditionItemStatus.DEFAULT_OK); + } + + public EditionItemStatus getStatus() { + if (factory == null) + return EditionItemStatus.DEFAULT_OK; + return factory.getStatus(); + } + + /** + * Set the currently selected strategy and call the appropriate + * composite creation method to allow strategy-specific configuration + * @param strategy + */ + private void setSelection(StrategyGUIFactory factory) { + this.factory = factory; + // set the current strategy + if (!factory.getReturnType().isAssignableFrom(strategy.getClass())) + this.strategy = factory.createStrategy(conditionEvent); + + // dispose the previous composite (if needed) + if (strategyConfigurationComposite != null && + !strategyConfigurationComposite.isDisposed()) + strategyConfigurationComposite.dispose(); + //create the scrolled composite (contains the strategy-specific composite) + strategyConfigurationComposite = + new ScrolledComposite(strategyConfigurationGroup, SWT.HORIZONTAL|SWT.VERTICAL); + //strategyConfigurationComposite = new Composite(strategyConfigurationGroup, SWT.NONE); + //strategyConfigurationComposite.setLayout(new GridLayout()); + //strategyConfigurationComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Composite c = new Composite(strategyConfigurationComposite, SWT.NONE); + c.setLayout(new GridLayout()); + c.setLayoutData(new GridData(GridData.FILL_BOTH)); + strategyConfigurationComposite.setContent(c); + strategyConfigurationComposite.setExpandVertical(true); + strategyConfigurationComposite.setExpandHorizontal(true); + // strategyConfigurationComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); + //strategyConfigurationComposite.setBackgroundMode(SWT.INHERIT_DEFAULT); + + + factory.build(c, conditionEvent, strategy, this); + //new Label(strategyConfigurationGroup, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.prologCode")); //$NON-NLS-1$ + + // compute the composite's size and layout + c.setSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + strategyConfigurationGroup.layout(true); + } + + public boolean accepts(ConditionEvent element) { + return true; + } + + public void onChange() + { + this.notifyChange(); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.java new file mode 100755 index 0000000..731f85a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/event/SimplePrologProviderStrategyGUI.java @@ -0,0 +1,151 @@ +/** + * $Id: ConditionEventStrategyEditionItem.java,v 1.4 2006/04/11 23:32:10 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.event; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.gef.commands.Command; +import org.eclipse.gef.commands.CompoundCommand; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.FocusAdapter; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.edit.ucmeditor.commands.model.ModifyPrologCodeConditionEventCommand; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.PrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.commands.UpdatePrologProviderStrategyCommand; +import org.isistan.flabot.engine.executionstate.dialogs.ChangeNotifier; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventObjectSnapshot; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventPreviousScope; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.FixedStateDefault; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError; +import org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.SingleEditionItemStatus; + +/** + * @author $Author: franco $ + * + */ +public class SimplePrologProviderStrategyGUI implements StrategyGUIFactory +{ + private PrologProviderStrategy strategy; + + private ConditionEvent conditionEvent; + + private PrologEditComposite prologComposite; + + public String getStrategyName() + { + return "Simple Prolog Strategy"; + } + + public void finishFactory() + { + } + + public PrologProviderStrategy createStrategy(ConditionEvent element) { + return ExecutionstateFactory.eINSTANCE.createSimplePrologProviderStrategy(); + } + + public Class getReturnType() { + return SimplePrologProviderStrategy.class; + } + + public boolean isAssignable(PrologProviderStrategy strategy) + { + return (strategy == null || strategy instanceof SimplePrologProviderStrategy); + } + + /** + * This method initializes the tab's controsl + */ + public void build(Composite c, ConditionEvent condition, PrologProviderStrategy strategy, ChangeNotifier changeNotifier) { + c.setLayout(new GridLayout(2, false)); + + // strategy configuration group + this.conditionEvent = condition; + this.strategy = strategy; + this.prologComposite = null; + + if (conditionEvent.getName().trim().length() == 0) + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.eventMustHaveAName")); //$NON-NLS-1$ + else { + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.prologCode")); //$NON-NLS-1$ + prologComposite = new PrologEditComposite(c, SWT.NONE, createConditionMap(conditionEvent.getName())); + prologComposite.setText(conditionEvent.getConditionEvent()); + prologComposite.getPrologTextComponent().addFocusListener(new FocusAdapter(){ + public void focusLost(FocusEvent e) { + conditionEvent.setConditionEvent(prologComposite.getText()); + }}); + prologComposite.pack(); + } + } + + public Command getCommand() { + CompoundCommand commands = new CompoundCommand(); + if (prologComposite != null) + { + commands.add(new ModifyPrologCodeConditionEventCommand(conditionEvent, prologComposite.getText())); + } + commands.add(new UpdatePrologProviderStrategyCommand(conditionEvent, strategy)); + return commands; + } + + public EditionItemStatus getStatus() { + if (prologComposite != null) { + String diagnostic = prologComposite.validatePrologCode(); + if (diagnostic == null) + return EditionItemStatus.DEFAULT_OK; + return new SingleEditionItemStatus(EditionItemStatus.Type.ERROR, + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.errorInPrologCode") + diagnostic); //$NON-NLS-1$ + } + return EditionItemStatus.DEFAULT_OK; + } + + private Map> createConditionMap(String eventName) { + Map> conditions = new HashMap>(); + + List conds = new ArrayList(); + conds.add(new VariableStateOnError(eventName, "Faulty")); //$NON-NLS-1$ + conds.add(new FixedStateDefault(eventName, "Faulty")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag(eventName, "Faulty")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag(eventName, "Faulty")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.faulty"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new VariableStateOnError(eventName, "Executed")); //$NON-NLS-1$ + conds.add(new FixedStateDefault(eventName, "Executed")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag(eventName, "Executed")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag(eventName, "Executed")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.executed"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new VariableStateOnError(eventName, "NotExecuted")); //$NON-NLS-1$ + conds.add(new FixedStateDefault(eventName, "NotExecuted")); //$NON-NLS-1$ + conds.add(new VariableStateOnAnyTag(eventName, "NotExecuted")); //$NON-NLS-1$ + conds.add(new VariableStateOnCustomTag(eventName, "NotExecuted")); //$NON-NLS-1$ + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.notExecuted"), conds); //$NON-NLS-1$ + + conds = new ArrayList(); + conds.add(new EventObjectSnapshot(eventName)); + conds.add(new EventPreviousScope(eventName)); + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.filtered"), conds); //$NON-NLS-1$ + + return conditions; + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem.java new file mode 100755 index 0000000..1be6d2e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/GeneralLogFilterStrategyEditionItem.java @@ -0,0 +1,205 @@ +/** + * $Id: StateDeterminationStrategyEditionItem.java,v 1.10 2006/04/08 04:15:41 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.generallog; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.TabFolder; +import org.eclipse.swt.widgets.TabItem; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.ExtensionPointConstants; +import org.isistan.flabot.engine.executionstate.ExecutionStateManager; +import org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.dialogs.ChangeNotifier; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUILoader; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.tab.EditionTabItemImpl; +import org.isistan.flabot.util.extension.PropertiesReader; +import org.isistan.flabot.util.problems.log.LoggerMessageAccumulator; + +/** + * Edits the general log filter strategy + * @author $Author: franco $ + * + */ +public class GeneralLogFilterStrategyEditionItem + extends EditionTabItemImpl implements ChangeNotifier { + + private FlabotFileModel flabotFileModel; + private Composite control; + + private ScrolledComposite strategyConfigurationComposite; + + private GeneralLogFilterStrategy strategy; + + private Group strategyConfigurationGroup; + private StrategyGUIFactory factory; + + + public static final List> + strategyGUIFactoryRegistry = new ArrayList>(); + + static + { + StrategyGUILoader> loader = new StrategyGUILoader>( + ExtensionPointConstants.GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX, + ExtensionPointConstants.GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX_ACTION_TAG, + ExtensionPointConstants.GENERAL_LOG_FILTER_STRATEGY_UI_COMBO_BOX__CLASS_ATTRIBUTE, + new PropertiesReader()); + Collection> collection = loader.getEditionItems(new LoggerMessageAccumulator()); + + strategyGUIFactoryRegistry.add(new SimpleGeneralLogFilterPrologProviderStrategyGUI()); + strategyGUIFactoryRegistry.addAll(collection); + } + + @Override + public void initialize(TabFolder tabFolder, TabItem tabItem, + FlabotFileModel flabotFileModel) { + + this.flabotFileModel=flabotFileModel; + + strategy = ExecutionStateManager.getGeneralLogFilterStrategy(flabotFileModel); + this.strategy = (GeneralLogFilterStrategy) EcoreUtil.copy(strategy); + + tabItem.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.tabName")); //$NON-NLS-1$ + control=new Composite(tabFolder, SWT.NONE); + control.setLayout(new GridLayout(1, true)); + + createControls(); + } + + public void activate() { + + } + + /** + * This method initializes the tab's controsl + */ + private void createControls() { + /// strategy selection group + Group strategySelectionGroup = new Group(control, SWT.NONE); + strategySelectionGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.selectStrategyGroup")); //$NON-NLS-1$ + strategySelectionGroup.setLayout(new RowLayout(SWT.VERTICAL)); + strategySelectionGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); + + final Combo strategySelectionCombo = new Combo(strategySelectionGroup, + SWT.READ_ONLY | SWT.DROP_DOWN | SWT.SIMPLE); + StrategyGUIFactory initialFactory = null; + for (StrategyGUIFactory factory: strategyGUIFactoryRegistry) { + strategySelectionCombo.add(factory.getStrategyName()); + if (factory.isAssignable(strategy)) { + strategySelectionCombo.setText(factory.getStrategyName()); + initialFactory = factory; + //break; + } + } + strategySelectionCombo.addSelectionListener(new SelectionAdapter(){ + @Override + public void widgetSelected(SelectionEvent e) { + StrategyGUIFactory factory = + strategyGUIFactoryRegistry.get(strategySelectionCombo.getSelectionIndex()); + setSelection(factory); + } + }); + + // strategy configuration group + strategyConfigurationGroup = new Group(control, SWT.NONE); + strategyConfigurationGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.configureStrategyGroup")); //$NON-NLS-1$ + strategyConfigurationGroup.setLayout(new FillLayout()); + strategyConfigurationGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + if (initialFactory != null) + setSelection(initialFactory); + } + + + @Override + public Control getControl() { + return control; + } + + public Command getCommand() { + factory.finishFactory(); + return factory.getCommand(); + } + + public boolean canCreateCommand() { + return getStatus().equals(EditionItemStatus.DEFAULT_OK); + } + + public EditionItemStatus getStatus() { + if (factory == null) + return EditionItemStatus.DEFAULT_OK; + return factory.getStatus(); + } + + /** + * Set the currently selected strategy and call the appropriate + * composite creation method to allow strategy-specific configuration + * @param strategy + */ + private void setSelection(StrategyGUIFactory factory) { + this.factory = factory; + // set the current strategy + if (!factory.getReturnType().isAssignableFrom(strategy.getClass())) + this.strategy = factory.createStrategy(flabotFileModel); + + // dispose the previous composite (if needed) + if (strategyConfigurationComposite != null && + !strategyConfigurationComposite.isDisposed()) + strategyConfigurationComposite.dispose(); + //create the scrolled composite (contains the strategy-specific composite) + strategyConfigurationComposite = + new ScrolledComposite(strategyConfigurationGroup, SWT.HORIZONTAL|SWT.VERTICAL); + //strategyConfigurationComposite = new Composite(strategyConfigurationGroup, SWT.NONE); + //strategyConfigurationComposite.setLayout(new GridLayout()); + //strategyConfigurationComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Composite c = new Composite(strategyConfigurationComposite, SWT.NONE); + c.setLayout(new GridLayout()); + c.setLayoutData(new GridData(GridData.FILL_BOTH)); + strategyConfigurationComposite.setContent(c); + strategyConfigurationComposite.setExpandVertical(true); + strategyConfigurationComposite.setExpandHorizontal(true); + // strategyConfigurationComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); + //strategyConfigurationComposite.setBackgroundMode(SWT.INHERIT_DEFAULT); + + + factory.build(c, flabotFileModel, strategy, this); + //new Label(strategyConfigurationGroup, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.prologCode")); //$NON-NLS-1$ + + // compute the composite's size and layout + c.setSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + strategyConfigurationGroup.layout(true); + } + + public boolean accepts(FlabotFileModel element) { + return true; + } + + public void onChange() + { + this.notifyChange(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.java new file mode 100755 index 0000000..f4c6438 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/generallog/SimpleGeneralLogFilterPrologProviderStrategyGUI.java @@ -0,0 +1,119 @@ +/** + * $Id: ConditionEventStrategyEditionItem.java,v 1.4 2006/04/11 23:32:10 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.generallog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.gef.commands.Command; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.FocusAdapter; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.commands.UpdateGeneralLogFilterStrategyCommand; +import org.isistan.flabot.engine.executionstate.dialogs.ChangeNotifier; +import org.isistan.flabot.engine.executionstate.dialogs.StrategyGUIFactory; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.GeneralLogObjectSnapshot; +import org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.edition.EditionItemStatus; +import org.isistan.flabot.util.edition.SingleEditionItemStatus; + +/** + * @author $Author: franco $ + * + */ +public class SimpleGeneralLogFilterPrologProviderStrategyGUI implements StrategyGUIFactory +{ + private SimpleGeneralLogFilterStrategy strategy; + + private FlabotFileModel flabotFileModel; + + private PrologEditComposite prologComposite; + + private String prologCode; + + public String getStrategyName() + { + return "Simple General Log Filter Strategy"; + } + + public void finishFactory() + { + strategy.setPrologCodeText(prologCode); + } + + public GeneralLogFilterStrategy createStrategy(FlabotFileModel element) { + return ExecutionstateFactory.eINSTANCE.createSimpleGeneralLogFilterStrategy(); + } + + public Class getReturnType() { + return SimpleGeneralLogFilterStrategy.class; + } + + public boolean isAssignable(GeneralLogFilterStrategy strategy) + { + return (strategy == null || strategy instanceof SimpleGeneralLogFilterStrategy); + } + + /** + * This method initializes the tab's controsl + */ + public void build(Composite c, FlabotFileModel flabotFileModel, GeneralLogFilterStrategy strategy, ChangeNotifier changeNotifier) { + c.setLayout(new GridLayout(2, false)); + + // strategy configuration group + this.flabotFileModel = flabotFileModel; + this.strategy = (SimpleGeneralLogFilterStrategy) strategy; + this.prologComposite = null; + + prologCode = this.strategy.getPrologCodeText(); + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.prologCode")); //$NON-NLS-1$ + prologComposite = new PrologEditComposite(c, SWT.NONE, createConditionMap()); + prologComposite.setText(prologCode); + prologComposite.getPrologTextComponent().addFocusListener(new FocusAdapter(){ + public void focusLost(FocusEvent e) { + prologCode = prologComposite.getText(); + }}); + prologComposite.pack(); + } + + public Command getCommand() { + return new UpdateGeneralLogFilterStrategyCommand(flabotFileModel, strategy); + } + + public EditionItemStatus getStatus() { + if (prologComposite != null) { + String diagnostic = prologComposite.validatePrologCode(); + if (diagnostic == null) + return EditionItemStatus.DEFAULT_OK; + return new SingleEditionItemStatus(EditionItemStatus.Type.ERROR, + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.errorInPrologCode") + diagnostic); //$NON-NLS-1$ + } + return EditionItemStatus.DEFAULT_OK; + } + + private Map> createConditionMap() { + Map> conditions = new HashMap>(); + + List conds = new ArrayList(); + conds = new ArrayList(); + conds.add(new GeneralLogObjectSnapshot()); + conditions.put(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.filtered"), conds); //$NON-NLS-1$ + + return conditions; + } + +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.java new file mode 100755 index 0000000..c56d172 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/MatchingPredefinedPropertyDialog.java @@ -0,0 +1,176 @@ +/** + * $Id: MatchingPredefinedPropertyDialog.java,v 1.3 2006/04/10 21:55:02 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.prolog; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.StringMatchingPredefinedProperty; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class MatchingPredefinedPropertyDialog extends Dialog { + + /** + * the dialog's shell + */ + private Shell shell = null; // @jve:decl-index=0:visual-constraint="10,9" + + protected StringMatchingPredefinedProperty predefinedProperty; + + private Text matchingText; + + private Button[] matchingTypeButtons = new Button[3]; + + private Button negativeValue; + + /** + * @param parent + */ + public MatchingPredefinedPropertyDialog(Shell parent) { + super(parent, 0); + } + /** + * Makes the dialog visible. + * + * @return + */ + public PredefinedCondition open(StringMatchingPredefinedProperty predefinedProperty) { + if (predefinedProperty == null) + predefinedProperty = new StringMatchingPredefinedProperty(""); //$NON-NLS-1$ + this.predefinedProperty = predefinedProperty; + + shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); + shell.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.tabName")); //$NON-NLS-1$ + shell.setLayout(new GridLayout(1, true)); + + shell.addShellListener(new org.eclipse.swt.events.ShellAdapter() { + public void shellClosed(org.eclipse.swt.events.ShellEvent e) { + handleCancel(); + } + }); + + createMatchingGroup(shell); + + // buttons composite (ok and cancel) + Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + Button buttonOK = new Button(buttonsComposite, SWT.NONE); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleOk(); + } + }); + + Button buttonCancel = new Button(buttonsComposite, SWT.NONE); + buttonCancel.setText(Messages.getString("org.isistan.flabot.edit.editor.cancelButton")); //$NON-NLS-1$ + buttonCancel.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleCancel(); + } + }); + + shell.pack(); + Display display = getParent().getDisplay(); + Rectangle r = display.getClientArea(); + int centerX = r.width/2 - shell.getSize().x / 2; + int centerY = r.height/2 - shell.getSize().y / 2; + shell.setLocation(centerX, centerY); + shell.open(); + + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + return predefinedProperty; + } + + private void createMatchingGroup(Composite c) { + Group propertyGroup = new Group(c, SWT.CHECK); + propertyGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingGroup")); //$NON-NLS-1$ + + GridLayout layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + + propertyGroup.setLayout(layout); + propertyGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Label matchingLabel = new Label(propertyGroup, SWT.NULL); + matchingLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); + + matchingLabel.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchWithLabel")); //$NON-NLS-1$ + + matchingText = new Text(propertyGroup, SWT.BORDER); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.widthHint = 150; + matchingText.setLayoutData(gd); + matchingText.setText(predefinedProperty.getFieldValue()); + + + Group matchingGroup = new Group(c, SWT.CHECK); + matchingGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingTecnicGroup")); //$NON-NLS-1$ + + layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + + matchingGroup.setLayout(layout); + matchingGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + matchingTypeButtons[0] = new Button(matchingGroup, SWT.RADIO); + matchingTypeButtons[0].setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.fullMatching")); //$NON-NLS-1$ + matchingTypeButtons[0].setData(StringMatchingPredefinedProperty.FULL_MATCHING); + matchingTypeButtons[0].setSelection(StringMatchingPredefinedProperty.FULL_MATCHING.equals(predefinedProperty.getMatchingStringType())); + + matchingTypeButtons[1] = new Button(matchingGroup, SWT.RADIO); + matchingTypeButtons[1].setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.substringMatching")); //$NON-NLS-1$ + matchingTypeButtons[1].setData(StringMatchingPredefinedProperty.SUBSTRING_MATCHING); + matchingTypeButtons[1].setSelection(StringMatchingPredefinedProperty.SUBSTRING_MATCHING.equals(predefinedProperty.getMatchingStringType())); + + matchingTypeButtons[2] = new Button(matchingGroup, SWT.RADIO); + matchingTypeButtons[2].setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.regularExpresionMatching")); //$NON-NLS-1$ + matchingTypeButtons[2].setData(StringMatchingPredefinedProperty.REGEX_MATCHING); + matchingTypeButtons[2].setSelection(StringMatchingPredefinedProperty.REGEX_MATCHING.equals(predefinedProperty.getMatchingStringType())); + + negativeValue = new Button(c, SWT.CHECK); + negativeValue.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.negativeMatching")); //$NON-NLS-1$ + negativeValue.setSelection(predefinedProperty.isNegative()); + } + + private void handleCancel() { + predefinedProperty = null; + shell.dispose(); + } + + private void handleOk() { + predefinedProperty.setFieldValue(matchingText.getText()); + for (Button button : matchingTypeButtons) { + if (button.getSelection()) + predefinedProperty.setMatchingStringType((String) button.getData()); + } + predefinedProperty.setNegative(negativeValue.getSelection()); + shell.dispose(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite.java new file mode 100755 index 0000000..1b85f5f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/PrologEditComposite.java @@ -0,0 +1,128 @@ +/** + * $Id: PrologEditComposite.java,v 1.5 2006/04/11 04:24:49 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.prolog; + +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Text; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.messages.Messages; +import org.isistan.flabot.util.javalog.JavalogUtil; + +/** + * Reusable prolog editor + * @author mblech + * + */ +public class PrologEditComposite extends Composite { + + private Map> conditions; + + private Text prologTextComponent; + + public PrologEditComposite(Composite parent, int style, Map> conditions) { + super(parent, style); + this.setLayout(new GridLayout(2, false)); + this.conditions = conditions; + + prologTextComponent = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); + prologTextComponent.setLayoutData(new GridData(250, 250)); + + final Button buttonAdd = new Button(parent, SWT.PUSH); + buttonAdd.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING)); + buttonAdd.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.addConditionButton")); //$NON-NLS-1$ + buttonAdd.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + RulesEditionDialog f = new RulesEditionDialog(Display.getCurrent().getActiveShell()); + String condition = f.open(getConditions()); + if (condition != null) + insertCode(condition, f.getRequiredRules()); + } + }); + + Button checkPrologButton = new Button(parent, SWT.NONE); + checkPrologButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.checkPrologCodeButton")); //$NON-NLS-1$ + checkPrologButton.addSelectionListener(new SelectionAdapter(){ + public void widgetSelected(SelectionEvent e) { + String diagnostic = validatePrologCode(); + if (diagnostic == null) { + MessageDialog.openInformation(prologTextComponent.getShell(), + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageTitle"), Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageDescription")); //$NON-NLS-1$ //$NON-NLS-2$ + } + else { + MessageDialog.openError(prologTextComponent.getShell(), + Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckErrorMessageTitle"), diagnostic); //$NON-NLS-1$ + } + } + }); + + this.pack(); + } + + private void insertCode(String text, String[] requiredRules) { + StringBuffer sb = new StringBuffer(); + for (String rule :requiredRules) { + if (getPrologTextComponent().getText().indexOf(rule) < 0) + sb.append(rule + "\n\n" ); + } + sb.append(text); + getPrologTextComponent().insert(sb.toString()); + } + + private Map> getConditions() { + return conditions; + } + + /** + * @return Returns the prologText. + */ + public Text getPrologTextComponent() { + return prologTextComponent; + } + + /** + * Set the text content for the text component. The same as + * calling getPrologTextComponent().setText(prologCode). + * @param prologCode + */ + public void setText(String prologCode) { + this.getPrologTextComponent().setText(prologCode); + } + + /** + * Get the text editor's contents. Same as calling + * getPrologTextComponent().getText(). + * @return + */ + public String getText() { + return this.getPrologTextComponent().getText(); + } + + /** + * Insert the given prolog code at the current cursor position + * @param prologCode + */ + public void insertCode(String prologCode) { + getPrologTextComponent().insert(prologCode); + } + + /** + * Validate the current prolog code + * @return the diagnostic (null if ok) + */ + public String validatePrologCode() { + return JavalogUtil.INSTANCE.validatePrologCode(prologTextComponent.getText()); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.java new file mode 100755 index 0000000..d28779e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/dialogs/prolog/RulesEditionDialog.java @@ -0,0 +1,552 @@ +/** + * $Id: RulesEditionDialog.java,v 1.8 2006/04/13 01:41:07 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.executionstate.dialogs.prolog; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.layout.RowLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Dialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.PredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.SnapshotPredefinedCondition; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.ArgumentPredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.ExecutionInstancePredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.ReturnValuePredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.SnapshotFieldPredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.SnapshotNullPredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.SnapshotObjectPredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.SnapshotToStringPredefinedProperty; +import org.isistan.flabot.engine.executionstate.dialogs.conditions.properties.StringMatchingPredefinedProperty; +import org.isistan.flabot.engine.messages.Messages; + +/** + * @author usuario + * + */ +public class RulesEditionDialog extends Dialog { + + /** + * the dialog's shell + */ + private Shell shell = null; // @jve:decl-index=0:visual-constraint="10,9" + + private Combo comboStates; + + private Combo comboRules; + + private Text previewText; + + private Label descriptionText; + + private Group configurationGroup; + + private PredefinedCondition selectedPredefinedCondition; + + private Map> conditions = new HashMap>(); + + private ScrolledComposite strategyConfigurationComposite; + + private String returnText; + + private String[] requiredRules; + + private int validSelections = 0; + + private Button buttonOK; + + /** + * @param parent + */ + public RulesEditionDialog(Shell parent) { + super(parent, 0); + } + /** + * Makes the dialog visible. + * + * @return + */ + public String open(Map> conditions) { + this.conditions = conditions; + + shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); + shell.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.tabName")); //$NON-NLS-1$ + shell.setLayout(new GridLayout(1, true)); + + shell.addShellListener(new org.eclipse.swt.events.ShellAdapter() { + public void shellClosed(org.eclipse.swt.events.ShellEvent e) { + handleCancel(); + } + }); + + Group propertyGroup = new Group(shell, SWT.NONE); + propertyGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.group")); //$NON-NLS-1$ + + GridLayout layout = new GridLayout(2, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + + propertyGroup.setLayout(layout); + propertyGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + createComboStates(propertyGroup); + createComboRules(propertyGroup); + createDescription(shell); + createConditionConfigurationGroup(shell); + + //Load Combo + if (comboStates.getItemCount() > 0) { + comboStates.select(0); + updateConditions((List)comboStates.getData(String.valueOf(comboStates.getSelectionIndex()))); + } + + // buttons composite (ok and cancel) + Composite buttonsComposite = new Composite(shell, SWT.NONE); + buttonsComposite.setLayout(new RowLayout()); + buttonsComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); + + buttonOK = new Button(buttonsComposite, SWT.NONE); + buttonOK.setEnabled(false); + buttonOK.setText(Messages.getString("org.isistan.flabot.edit.editor.okButton")); //$NON-NLS-1$ + buttonOK.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleOk(); + } + }); + + Button buttonCancel = new Button(buttonsComposite, SWT.NONE); + buttonCancel.setText(Messages.getString("org.isistan.flabot.edit.editor.cancelButton")); //$NON-NLS-1$ + buttonCancel.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + handleCancel(); + } + }); + + shell.pack(); + Display display = getParent().getDisplay(); + Rectangle r = display.getClientArea(); + int centerX = r.width/2 - shell.getSize().x / 2; + int centerY = r.height/2 - shell.getSize().y / 2; + shell.setLocation(centerX, centerY); + shell.open(); + + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) + display.sleep(); + } + + return returnText; + } + + private void createComboStates(Composite composite) { + new Label(composite, SWT.NULL).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.stateLabel")); //$NON-NLS-1$ + + comboStates = new Combo(composite, SWT.READ_ONLY); + comboStates.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + //Reset the condition + if (selectedPredefinedCondition != null) + selectedPredefinedCondition.getProperties().clear(); + updateConditions((List) comboStates.getData(String.valueOf(comboStates.getSelectionIndex()))); + } + }); + + for(Iterator iter=conditions.keySet().iterator(); iter.hasNext();) { + String condition = iter.next(); + comboStates.setData(String.valueOf(comboStates.getItemCount()), conditions.get(condition)); + comboStates.add(condition); + } + } + + private void createComboRules(Composite composite) { + new Label(composite, SWT.NULL).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.predefinedConditionLabel")); //$NON-NLS-1$ + + comboRules = new Combo(composite, SWT.READ_ONLY); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.widthHint = 100; + comboRules.setLayoutData(gd); + comboRules.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + updateRuleChanged((PredefinedCondition)comboRules.getData(String.valueOf(comboRules.getSelectionIndex()))); + } + }); + } + + private void createDescription(Composite c) { + Group descriptionGroup = new Group(c, SWT.NONE); + descriptionGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.descriptionGroup")); //$NON-NLS-1$ + GridLayout layout = new GridLayout(1, false); + layout.verticalSpacing = 1; + layout.horizontalSpacing = 1; + + descriptionGroup.setLayout(layout); + descriptionGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + descriptionText = new Label(descriptionGroup, SWT.NONE); + descriptionText.setLayoutData(new GridData(GridData.FILL_BOTH)); + } + + private void createConditionConfigurationGroup(Composite c) { + configurationGroup = new Group(c, SWT.NONE); + configurationGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.configurationConditionGroup")); //$NON-NLS-1$ + GridLayout layout = new GridLayout(1, false); + layout.verticalSpacing = 1; + layout.horizontalSpacing = 1; + + configurationGroup.setLayout(layout); + configurationGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + Group previewGroup = new Group(c, SWT.NONE); + previewGroup.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.previewGroup")); //$NON-NLS-1$ + + layout = new GridLayout(1, false); + layout.verticalSpacing = 12; + layout.horizontalSpacing = 12; + + previewGroup.setLayout(layout); + previewGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + previewText = new Text(previewGroup, SWT.MULTI | SWT.BORDER | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.widthHint = 200; + gd.heightHint = 100; + previewText.setLayoutData(gd); + } + + private void updateConditions(List predefinedConditions) { + comboRules.removeAll(); + + for(PredefinedCondition predefinedCondition : predefinedConditions) { + comboRules.setData(String.valueOf(comboRules.getItemCount()), predefinedCondition); + comboRules.add(predefinedCondition.getName()); + } + + if (comboRules.getItemCount() > 0) { + comboRules.select(0); + updateRuleChanged((PredefinedCondition)comboRules.getData(String.valueOf(comboRules.getSelectionIndex()))); + } + } + + private void updateRuleChanged(PredefinedCondition predefinedCondition) { + //Reset the condition + if (selectedPredefinedCondition != null) + selectedPredefinedCondition.getProperties().clear(); + selectedPredefinedCondition = predefinedCondition; + + buildConfiguration(predefinedCondition); + updatePreview(predefinedCondition); + } + + private void updatePreview(PredefinedCondition predefinedCondition) { + previewText.setText(predefinedCondition.getPrologCode()); + descriptionText.setText(predefinedCondition.getDescription()); + } + + private void buildConfiguration(PredefinedCondition predefinedCondition) { + + if (strategyConfigurationComposite != null && + !strategyConfigurationComposite.isDisposed()) + strategyConfigurationComposite.dispose(); + + // create the scrolled composite (contains the strategy-specific composite) + strategyConfigurationComposite = + new ScrolledComposite(configurationGroup, SWT.HORIZONTAL|SWT.VERTICAL); + Composite c = new Composite(strategyConfigurationComposite, SWT.NONE); + ((ScrolledComposite)strategyConfigurationComposite).setContent(c); + + c.setLayout(new GridLayout(3, false)); + + Map properties = predefinedCondition.getProperties(); + int accepted = 0; + + if (predefinedCondition.acceptProperty(PredefinedCondition.RETURN_VALUE_PROPERTY)) { + PredefinedCondition pp = properties.get(Integer.valueOf(PredefinedCondition.RETURN_VALUE_PROPERTY)); + if (pp == null) + pp = new ReturnValuePredefinedProperty(); + create(c, Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.returnValueGroup"), predefinedCondition, PredefinedCondition.RETURN_VALUE_PROPERTY, pp); //$NON-NLS-1$ + accepted++; + } + + if (predefinedCondition.acceptProperty(PredefinedCondition.ARGUMENTS_PROPERTY)) { + PredefinedCondition pp = properties.get(Integer.valueOf(PredefinedCondition.ARGUMENTS_PROPERTY)); + if (pp == null) + pp = new ArgumentPredefinedProperty(); + create(c, Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.argumentsGroup") , predefinedCondition, PredefinedCondition.ARGUMENTS_PROPERTY, pp); //$NON-NLS-1$ + accepted++; + } + + if (predefinedCondition.acceptProperty(PredefinedCondition.INSTANCE_PROPERTY)) { + PredefinedCondition pp = properties.get(Integer.valueOf(PredefinedCondition.INSTANCE_PROPERTY)); + if (pp == null) + pp = new ExecutionInstancePredefinedProperty(); + create(c, Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.instanceGroup") , predefinedCondition, PredefinedCondition.INSTANCE_PROPERTY, pp); //$NON-NLS-1$ + accepted++; + } + + if (accepted == 0) { + new Label(c, SWT.NONE).setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.noConfigurationNeeded")); //$NON-NLS-1$ + } + updateButtons(accepted == 0); + + // compute the composite's size and layout + c.setSize(c.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + configurationGroup.layout(true); + } + + private void create(Composite composite, String name, final PredefinedCondition predefinedCondition, final int property, final PredefinedCondition predefinedPropery) { + Group configurationGroup = new Group(composite, SWT.NONE); + configurationGroup.setText(name); + GridLayout layout = new GridLayout(2, false); + configurationGroup.setLayout(layout); + configurationGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); + + final Button checkReturnValueButton = new Button(configurationGroup, SWT.CHECK); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.horizontalSpan = 2; + checkReturnValueButton.setLayoutData(gd); + checkReturnValueButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.evaluate") + name); //$NON-NLS-1$ + + final Control[] controls = createSnapshotGroup(configurationGroup, predefinedCondition, property, predefinedPropery); + updateControls(controls, false); + + checkReturnValueButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + if (checkReturnValueButton.getSelection()) { + predefinedCondition.setPredefinedProperty(property, predefinedPropery); + validSelections++; + } else { + predefinedCondition.setPredefinedProperty(property, null); + validSelections--; + } + updateButtons(validSelections > 0); + updateControls(controls, checkReturnValueButton.getSelection()); + updatePreview(predefinedCondition); + } + }); + } + + private void updateButtons(boolean enabled) { + if (buttonOK != null) + buttonOK.setEnabled(enabled); + } + + private void updateControls(Control[] controls, boolean value) { + for (Control control : controls) { + control.setEnabled(value); + } + } + + private Control[] createSnapshotGroup(Composite composite, final PredefinedCondition predefinedCondition, final int property, final PredefinedCondition predefinedProperty) { + String fieldName = predefinedProperty.getFieldName(); + SnapshotPredefinedCondition snapshotPredefinedPropery = (SnapshotPredefinedCondition)predefinedProperty; + final List controls = new ArrayList(); + final List returnControls = new ArrayList(); + if (snapshotPredefinedPropery.acceptSnaptshot(SnapshotPredefinedCondition.SNAPSHOT_TOSTRING_PROPERTY)) { + createSnapshotToString(composite, returnControls, controls, predefinedCondition, fieldName, property); + } + if (snapshotPredefinedPropery.acceptSnaptshot(SnapshotPredefinedCondition.SNAPSHOT_FIELD_PROPERTY)) { + createSnapshotField(composite, returnControls, controls, predefinedCondition, fieldName, property); + } + if (snapshotPredefinedPropery.acceptSnaptshot(SnapshotPredefinedCondition.SNAPSHOT_OBJECT_PROPERTY)) { + createSnapshotObject(composite, returnControls, controls, predefinedCondition, fieldName, property); + } + if (snapshotPredefinedPropery.acceptSnaptshot(SnapshotPredefinedCondition.SNAPSHOT_NULL_PROPERTY)) { + createSnapshotNull(composite, returnControls, controls, predefinedCondition, fieldName, property); + } + return returnControls.toArray(new Control[returnControls.size()]); + } + + private void createSnapshotToString(Composite composite, List returnControls, final List controls, final PredefinedCondition predefinedCondition, String fieldName, final int property) { + final Button radioToStringButton = new Button(composite, SWT.RADIO); + radioToStringButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.toStringLabel")); //$NON-NLS-1$ + SnapshotToStringPredefinedProperty snapshotToStringPredefinedProperty = new SnapshotToStringPredefinedProperty(fieldName); + radioToStringButton.setData(snapshotToStringPredefinedProperty); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.horizontalSpan = 2; + radioToStringButton.setLayoutData(gd); + returnControls.add(radioToStringButton); + + final Label toStringLabel = new Label(composite, SWT.NONE); + toStringLabel.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.valueLabel")); //$NON-NLS-1$ + toStringLabel.setEnabled(false); + gd = new GridData(); + gd.horizontalIndent = 20; + toStringLabel.setLayoutData(gd); + controls.add(toStringLabel); + final Control controlToString = addButtonEdition(composite, (StringMatchingPredefinedProperty)snapshotToStringPredefinedProperty.getMatchingToString(), predefinedCondition); + controlToString.setEnabled(false); + controls.add(controlToString); + + radioToStringButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + updateControls(controls.toArray(new Control[controls.size()]), false); + controlToString.setEnabled(true); + toStringLabel.setEnabled(true); + updateProperty(predefinedCondition, property, (PredefinedCondition)radioToStringButton.getData()); + updatePreview(predefinedCondition); + } + }); + } + + private void createSnapshotField(Composite composite, List returnControls, final List controls, final PredefinedCondition predefinedCondition, String fieldName, final int property) { + final Button radioFieldButton = new Button(composite, SWT.RADIO); + radioFieldButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.useFieldLabel")); //$NON-NLS-1$ + SnapshotFieldPredefinedProperty snapshotFieldPredefinedProperty = new SnapshotFieldPredefinedProperty(fieldName); + radioFieldButton.setData(snapshotFieldPredefinedProperty); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.horizontalSpan = 2; + radioFieldButton.setLayoutData(gd); + returnControls.add(radioFieldButton); + + final Label fieldNameLabel = new Label(composite, SWT.NONE); + fieldNameLabel.setEnabled(false); + fieldNameLabel.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldNameLabel")); //$NON-NLS-1$ + gd = new GridData(); + gd.horizontalIndent = 20; + fieldNameLabel.setLayoutData(gd); + controls.add(fieldNameLabel); + final Control controlValue1 = addButtonEdition(composite, (StringMatchingPredefinedProperty) snapshotFieldPredefinedProperty.getMatchingName(), predefinedCondition); + controlValue1.setEnabled(false); + controls.add(controlValue1); + + final Label fieldValueLabel = new Label(composite, SWT.NONE); + fieldValueLabel.setEnabled(false); + fieldValueLabel.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldValueLabel")); //$NON-NLS-1$ + gd = new GridData(); + gd.horizontalIndent = 20; + fieldValueLabel.setLayoutData(gd); + controls.add(fieldValueLabel); + final Control controlValue2 = addButtonEdition(composite, (StringMatchingPredefinedProperty) snapshotFieldPredefinedProperty.getMatchingValue(), predefinedCondition); + controlValue2.setEnabled(false); + controls.add(controlValue2); + + radioFieldButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + updateControls(controls.toArray(new Control[controls.size()]), false); + controlValue1.setEnabled(true); + controlValue2.setEnabled(true); + fieldNameLabel.setEnabled(true); + fieldValueLabel.setEnabled(true); + updateProperty(predefinedCondition, property, (PredefinedCondition)radioFieldButton.getData()); + updatePreview(predefinedCondition); + } + }); + } + + private void createSnapshotObject(Composite composite, List returnControls, final List controls, final PredefinedCondition predefinedCondition, String fieldName, final int property) { + final Button radioObjectButton = new Button(composite, SWT.RADIO); + radioObjectButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.objectLabel")); //$NON-NLS-1$ + SnapshotObjectPredefinedProperty snapshotToStringPredefinedProperty = new SnapshotObjectPredefinedProperty(fieldName); + radioObjectButton.setData(snapshotToStringPredefinedProperty); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.horizontalSpan = 2; + radioObjectButton.setLayoutData(gd); + returnControls.add(radioObjectButton); + + final Label classLabel = new Label(composite, SWT.NONE); + classLabel.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.classNameLabel")); //$NON-NLS-1$ + classLabel.setEnabled(false); + gd = new GridData(); + gd.horizontalIndent = 20; + classLabel.setLayoutData(gd); + controls.add(classLabel); + final Control controlObject = addButtonEdition(composite, (StringMatchingPredefinedProperty)snapshotToStringPredefinedProperty.getMatchingToString(), predefinedCondition); + controlObject.setEnabled(false); + controls.add(controlObject); + + radioObjectButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + updateControls(controls.toArray(new Control[controls.size()]), false); + controlObject.setEnabled(true); + classLabel.setEnabled(true); + updateProperty(predefinedCondition, property, (PredefinedCondition)radioObjectButton.getData()); + updatePreview(predefinedCondition); + } + }); + } + + private void createSnapshotNull(Composite composite, List returnControls, final List controls, final PredefinedCondition predefinedCondition, String fieldName, final int property) { + final Button radioNullButton = new Button(composite, SWT.RADIO); + radioNullButton.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.nullLabel")); //$NON-NLS-1$ + SnapshotNullPredefinedProperty snapshotNullPredefinedProperty = new SnapshotNullPredefinedProperty(fieldName); + radioNullButton.setData(snapshotNullPredefinedProperty); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.horizontalSpan = 2; + radioNullButton.setLayoutData(gd); + returnControls.add(radioNullButton); + + radioNullButton.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + updateControls(controls.toArray(new Control[controls.size()]), false); + updateProperty(predefinedCondition, property, (PredefinedCondition)radioNullButton.getData()); + updatePreview(predefinedCondition); + } + }); + } + + private void updateProperty(PredefinedCondition predefinedCondition, int property, PredefinedCondition predefinedValue) { + PredefinedCondition pc = predefinedCondition.getProperties().get(Integer.valueOf(property)); + if (pc != null) { + pc.setPredefinedProperty(PredefinedCondition.SNAPSHOT_PROPERTY, predefinedValue); + } + } + + private Control addButtonEdition(Composite composite, final StringMatchingPredefinedProperty pp, final PredefinedCondition predefinedCondition) { + Button button = new Button(composite, SWT.NONE); + button.setText(Messages.getString("org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.editButton")); //$NON-NLS-1$ + button.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + MatchingPredefinedPropertyDialog dialog = new MatchingPredefinedPropertyDialog(shell); + PredefinedCondition changed = dialog.open(pp); + if (changed != null) + updatePreview(predefinedCondition); + } + }); + return button; + } + + public String[] getRequiredRules() { + return requiredRules; + } + + private void handleCancel() { + //Reset the condition + if (selectedPredefinedCondition != null) + selectedPredefinedCondition.getProperties().clear(); + returnText = null; + shell.dispose(); + } + + private void handleOk() { + returnText = null; + //Reset the condition + if (selectedPredefinedCondition != null) { + returnText = selectedPredefinedCondition.getPrologCode(); + requiredRules = selectedPredefinedCondition.getRequiredRules(); + selectedPredefinedCondition.getProperties().clear(); + } + shell.dispose(); + } +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.java new file mode 100755 index 0000000..b27dbdf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/BasicMappingBasedFilterImpl.java @@ -0,0 +1,219 @@ +/** + * + * + * + * $Id: BasicMappingBasedFilterImpl.java,v 1.16 2006/03/27 23:53:01 dacostae Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.gauge.Gauge; +import org.isistan.flabot.javamodel.JBehavior; +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.javamodel.JPackage; +import org.isistan.flabot.launcher.filter.filtermodel.FiltermodelFactory; +import org.isistan.flabot.launcher.filter.filtermodel.LogFilter; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.config.ConfigPackage; +import org.isistan.flabot.trace.config.Context; +import org.isistan.flabot.util.TriState; + +/** + * + * An implementation of the model object 'Basic Mapping Based Filter'. + * + *

+ *

+ * + * @generated + */ +public class BasicMappingBasedFilterImpl extends MappingBasedFilterImpl implements BasicMappingBasedFilter { + /** + * + * + * @generated + */ + protected BasicMappingBasedFilterImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getBasicMappingBasedFilter(); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + return eBasicSetContainer(null, ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT, msgs); + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__MAPPING: + return basicSetMapping(null, msgs); + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__LOG_FILTER: + return basicSetLogFilter(null, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + return eContainer.eInverseRemove(this, ConfigPackage.CONTEXT__FILTER, Context.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + return getContext(); + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__MAPPING: + return getMapping(); + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__LOG_FILTER: + return getLogFilter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + setContext((Context)newValue); + return; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__MAPPING: + setMapping((Mapping)newValue); + return; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__LOG_FILTER: + setLogFilter((LogFilter)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + setContext((Context)null); + return; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__MAPPING: + setMapping((Mapping)null); + return; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__LOG_FILTER: + setLogFilter((LogFilter)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__CONTEXT: + return getContext() != null; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__MAPPING: + return mapping != null; + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER__LOG_FILTER: + return logFilter != null; + } + return eDynamicIsSet(eFeature); + } + + private static LogFilter defaultLogFilter=FiltermodelFactory.eINSTANCE.createLogFilter(); + public boolean passes(Gauge gauge) { + LogFilter logFilter=getLogFilter(); + if(logFilter==null) + logFilter=defaultLogFilter; + + return logFilter.isGaugeType(gauge.getType()); + } + + public boolean passes(JBehavior jBehavior) { + Mapping mapping=getMapping(); + return mapping.passes(jBehavior); + } + + public TriState passes(JClass jClass) { + Mapping mapping=getMapping(); + return mapping.passes(jClass); + } + + public TriState passes(JPackage jPackage) { + Mapping mapping=getMapping(); + return mapping.passes(jPackage); + } + +} //BasicMappingBasedFilterImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.java new file mode 100755 index 0000000..bd47968 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/DiagnosticImpl.java @@ -0,0 +1,333 @@ +/** + * + * + * + * $Id: DiagnosticImpl.java,v 1.2 2006/03/22 03:28:54 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreEMap; +import org.eclipse.emf.ecore.util.InternalEList; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; + +/** + * + * An implementation of the model object 'Diagnostic'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl#getDiagnostician Diagnostician}
  • + *
  • {@link org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl#getDescription Description}
  • + *
  • {@link org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl#getAdditionalData Additional Data}
  • + *
  • {@link org.isistan.flabot.engine.executionstate.impl.DiagnosticImpl#getState State}
  • + *
+ *

+ * + * @generated + */ +public class DiagnosticImpl extends EObjectImpl implements Diagnostic { + /** + * The cached value of the '{@link #getDiagnostician() Diagnostician}' reference. + * + * + * @see #getDiagnostician() + * @generated + * @ordered + */ + protected StateDeterminationStrategy diagnostician = null; + + /** + * The default value of the '{@link #getDescription() Description}' attribute. + * + * + * @see #getDescription() + * @generated + * @ordered + */ + protected static final String DESCRIPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDescription() Description}' attribute. + * + * + * @see #getDescription() + * @generated + * @ordered + */ + protected String description = DESCRIPTION_EDEFAULT; + + /** + * The cached value of the '{@link #getAdditionalData() Additional Data}' map. + * + * + * @see #getAdditionalData() + * @generated + * @ordered + */ + protected EMap additionalData = null; + + /** + * The default value of the '{@link #getState() State}' attribute. + * + * + * @see #getState() + * @generated + * @ordered + */ + protected static final ExecutionState STATE_EDEFAULT = ExecutionState.EXECUTED_LITERAL; + + /** + * The cached value of the '{@link #getState() State}' attribute. + * + * + * @see #getState() + * @generated + * @ordered + */ + protected ExecutionState state = STATE_EDEFAULT; + + /** + * + * + * @generated + */ + protected DiagnosticImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getDiagnostic(); + } + + /** + * + * + * @generated + */ + public StateDeterminationStrategy getDiagnostician() { + if (diagnostician != null && diagnostician.eIsProxy()) { + StateDeterminationStrategy oldDiagnostician = diagnostician; + diagnostician = (StateDeterminationStrategy)eResolveProxy((InternalEObject)diagnostician); + if (diagnostician != oldDiagnostician) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN, oldDiagnostician, diagnostician)); + } + } + return diagnostician; + } + + /** + * + * + * @generated + */ + public StateDeterminationStrategy basicGetDiagnostician() { + return diagnostician; + } + + /** + * + * + * @generated + */ + public void setDiagnostician(StateDeterminationStrategy newDiagnostician) { + StateDeterminationStrategy oldDiagnostician = diagnostician; + diagnostician = newDiagnostician; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN, oldDiagnostician, diagnostician)); + } + + /** + * + * + * @generated + */ + public String getDescription() { + return description; + } + + /** + * + * + * @generated + */ + public void setDescription(String newDescription) { + String oldDescription = description; + description = newDescription; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.DIAGNOSTIC__DESCRIPTION, oldDescription, description)); + } + + /** + * + * + * @generated + */ + public EMap getAdditionalData() { + if (additionalData == null) { + additionalData = new EcoreEMap(ExecutionstatePackage.eINSTANCE.getEStringToEJavaObjectMapEntry(), EStringToEJavaObjectMapEntryImpl.class, this, ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA); + } + return additionalData; + } + + /** + * + * + * @generated + */ + public ExecutionState getState() { + return state; + } + + /** + * + * + * @generated + */ + public void setState(ExecutionState newState) { + ExecutionState oldState = state; + state = newState == null ? STATE_EDEFAULT : newState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.DIAGNOSTIC__STATE, oldState, state)); + } + + /** + * + * + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA: + return ((InternalEList)getAdditionalData()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN: + if (resolve) return getDiagnostician(); + return basicGetDiagnostician(); + case ExecutionstatePackage.DIAGNOSTIC__DESCRIPTION: + return getDescription(); + case ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA: + return getAdditionalData(); + case ExecutionstatePackage.DIAGNOSTIC__STATE: + return getState(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN: + setDiagnostician((StateDeterminationStrategy)newValue); + return; + case ExecutionstatePackage.DIAGNOSTIC__DESCRIPTION: + setDescription((String)newValue); + return; + case ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA: + getAdditionalData().clear(); + getAdditionalData().addAll((Collection)newValue); + return; + case ExecutionstatePackage.DIAGNOSTIC__STATE: + setState((ExecutionState)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN: + setDiagnostician((StateDeterminationStrategy)null); + return; + case ExecutionstatePackage.DIAGNOSTIC__DESCRIPTION: + setDescription(DESCRIPTION_EDEFAULT); + return; + case ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA: + getAdditionalData().clear(); + return; + case ExecutionstatePackage.DIAGNOSTIC__STATE: + setState(STATE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.DIAGNOSTIC__DIAGNOSTICIAN: + return diagnostician != null; + case ExecutionstatePackage.DIAGNOSTIC__DESCRIPTION: + return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description); + case ExecutionstatePackage.DIAGNOSTIC__ADDITIONAL_DATA: + return additionalData != null && !additionalData.isEmpty(); + case ExecutionstatePackage.DIAGNOSTIC__STATE: + return state != STATE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (description: "); + result.append(description); + result.append(", state: "); + result.append(state); + result.append(')'); + return result.toString(); + } + +} //DiagnosticImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.java new file mode 100755 index 0000000..8bd7b5a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/EStringToEJavaObjectMapEntryImpl.java @@ -0,0 +1,292 @@ +/** + * + * + * + * $Id: EStringToEJavaObjectMapEntryImpl.java,v 1.2 2006/03/22 03:28:54 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; + +/** + * + * An implementation of the model object 'EString To EJava Object Map Entry'. + * + *

+ * The following features are implemented: + *

    + *
  • {@link org.isistan.flabot.engine.executionstate.impl.EStringToEJavaObjectMapEntryImpl#getTypedKey Key}
  • + *
  • {@link org.isistan.flabot.engine.executionstate.impl.EStringToEJavaObjectMapEntryImpl#getTypedValue Value}
  • + *
+ *

+ * + * @generated + */ +public class EStringToEJavaObjectMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The default value of the '{@link #getTypedKey() Key}' attribute. + * + * + * @see #getTypedKey() + * @generated + * @ordered + */ + protected static final String KEY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTypedKey() Key}' attribute. + * + * + * @see #getTypedKey() + * @generated + * @ordered + */ + protected String key = KEY_EDEFAULT; + + /** + * The default value of the '{@link #getTypedValue() Value}' attribute. + * + * + * @see #getTypedValue() + * @generated + * @ordered + */ + protected static final Object VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTypedValue() Value}' attribute. + * + * + * @see #getTypedValue() + * @generated + * @ordered + */ + protected Object value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected EStringToEJavaObjectMapEntryImpl() { + super(); + } + + /** + * + * + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getEStringToEJavaObjectMapEntry(); + } + + /** + * + * + * @generated + */ + public String getTypedKey() { + return key; + } + + /** + * + * + * @generated + */ + public void setTypedKey(String newKey) { + String oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * + * + * @generated + */ + public Object getTypedValue() { + return value; + } + + /** + * + * + * @generated + */ + public void setTypedValue(Object newValue) { + Object oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + return getTypedKey(); + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + return getTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + setTypedKey((String)newValue); + return; + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + setTypedValue((Object)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + setTypedKey(KEY_EDEFAULT); + return; + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + setTypedValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return eDynamicIsSet(eFeature); + } + + /** + * + * + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (key: "); + result.append(key); + result.append(", value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + + /** + * + * + * @generated + */ + protected int hash = -1; + + /** + * + * + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * + * + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * + * + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * + * + * @generated + */ + public void setKey(Object key) { + setTypedKey((String)key); + } + + /** + * + * + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * + * + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((Object)value); + return oldValue; + } + + /** + * + * + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //EStringToEJavaObjectMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.java new file mode 100755 index 0000000..78a4703 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstateFactoryImpl.java @@ -0,0 +1,255 @@ +/** + * + * + * + * $Id: ExecutionstateFactoryImpl.java,v 1.19 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.isistan.flabot.engine.executionstate.*; + +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class ExecutionstateFactoryImpl extends EFactoryImpl implements ExecutionstateFactory { + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public ExecutionstateFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER: return createBasicMappingBasedFilter(); + case ExecutionstatePackage.DIAGNOSTIC: return createDiagnostic(); + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY: return createManualStateDeterminationStrategy(); + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY: return createManualTraceInferenceStrategy(); + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY: return createSimpleTraceInferenceStrategy(); + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY: return createStateDeterminationStrategyRegistry(); + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY: return createTraceBasedStateDeterminationStrategy(); + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY: return (EObject)createResponsibilityToStateDeterminationStrategyMapEntry(); + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY: return (EObject)createEStringToEJavaObjectMapEntry(); + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY: return createStateFromMappingStateDeterminationStrategy(); + case ExecutionstatePackage.OR_FILTER: return createOrFilter(); + case ExecutionstatePackage.SIMPLE_PROLOG_PROVIDER_STRATEGY: return createSimplePrologProviderStrategy(); + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY: return createSimpleGeneralLogFilterStrategy(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case ExecutionstatePackage.EXECUTION_STATE: { + ExecutionState result = ExecutionState.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case ExecutionstatePackage.EXECUTION_STATE: + return instanceValue == null ? null : instanceValue.toString(); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public Map.Entry createResponsibilityToStateDeterminationStrategyMapEntry() { + ResponsibilityToStateDeterminationStrategyMapEntryImpl responsibilityToStateDeterminationStrategyMapEntry = new ResponsibilityToStateDeterminationStrategyMapEntryImpl(); + return responsibilityToStateDeterminationStrategyMapEntry; + } + + /** + * + * + * @generated + */ + public StateDeterminationStrategyRegistry createStateDeterminationStrategyRegistry() { + StateDeterminationStrategyRegistryImpl stateDeterminationStrategyRegistry = new StateDeterminationStrategyRegistryImpl(); + return stateDeterminationStrategyRegistry; + } + + /** + * + * + * @generated + */ + public ManualStateDeterminationStrategy createManualStateDeterminationStrategy() { + ManualStateDeterminationStrategyImpl manualStateDeterminationStrategy = new ManualStateDeterminationStrategyImpl(); + return manualStateDeterminationStrategy; + } + + /** + * + * + * @generated + */ + public TraceBasedStateDeterminationStrategy createTraceBasedStateDeterminationStrategy() { + TraceBasedStateDeterminationStrategyImpl traceBasedStateDeterminationStrategy = new TraceBasedStateDeterminationStrategyImpl(); + return traceBasedStateDeterminationStrategy; + } + + /** + * + * + * @generated + */ + public ManualTraceInferenceStrategy createManualTraceInferenceStrategy() { + ManualTraceInferenceStrategyImpl manualTraceInferenceStrategy = new ManualTraceInferenceStrategyImpl(); + return manualTraceInferenceStrategy; + } + + /** + * + * + * @generated + */ + public SimpleTraceInferenceStrategy createSimpleTraceInferenceStrategy() { + SimpleTraceInferenceStrategyImpl simpleTraceInferenceStrategy = new SimpleTraceInferenceStrategyImpl(); + return simpleTraceInferenceStrategy; + } + + /** + * + * + * @generated + */ + public Diagnostic createDiagnostic() { + DiagnosticImpl diagnostic = new DiagnosticImpl(); + return diagnostic; + } + + /** + * + * + * @generated + */ + public Map.Entry createEStringToEJavaObjectMapEntry() { + EStringToEJavaObjectMapEntryImpl eStringToEJavaObjectMapEntry = new EStringToEJavaObjectMapEntryImpl(); + return eStringToEJavaObjectMapEntry; + } + + /** + * + * + * @generated + */ + public StateFromMappingStateDeterminationStrategy createStateFromMappingStateDeterminationStrategy() { + StateFromMappingStateDeterminationStrategyImpl stateFromMappingStateDeterminationStrategy = new StateFromMappingStateDeterminationStrategyImpl(); + return stateFromMappingStateDeterminationStrategy; + } + + /** + * + * + * @generated + */ + public OrFilter createOrFilter() { + OrFilterImpl orFilter = new OrFilterImpl(); + return orFilter; + } + + /** + * + * + * @generated + */ + public SimplePrologProviderStrategy createSimplePrologProviderStrategy() { + SimplePrologProviderStrategyImpl simplePrologProviderStrategy = new SimplePrologProviderStrategyImpl(); + return simplePrologProviderStrategy; + } + + /** + * + * + * @generated + */ + public SimpleGeneralLogFilterStrategy createSimpleGeneralLogFilterStrategy() { + SimpleGeneralLogFilterStrategyImpl simpleGeneralLogFilterStrategy = new SimpleGeneralLogFilterStrategyImpl(); + return simpleGeneralLogFilterStrategy; + } + + /** + * + * + * @generated + */ + public BasicMappingBasedFilter createBasicMappingBasedFilter() { + BasicMappingBasedFilterImpl basicMappingBasedFilter = new BasicMappingBasedFilterImpl(); + return basicMappingBasedFilter; + } + + /** + * + * + * @generated + */ + public ExecutionstatePackage getExecutionstatePackage() { + return (ExecutionstatePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static ExecutionstatePackage getPackage() { + return ExecutionstatePackage.eINSTANCE; + } + +} //ExecutionstateFactoryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.java new file mode 100755 index 0000000..50e6610 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ExecutionstatePackageImpl.java @@ -0,0 +1,794 @@ +/** + * + * + * + * $Id: ExecutionstatePackageImpl.java,v 1.22 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Map; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.isistan.flabot.coremodel.CoremodelPackage; +import org.isistan.flabot.coremodel.impl.CoremodelPackageImpl; +import org.isistan.flabot.edit.componentmodel.impl.ComponentmodelPackageImpl; +import org.isistan.flabot.edit.editormodel.impl.EditormodelPackageImpl; +import org.isistan.flabot.edit.ucmmodel.impl.UcmmodelPackageImpl; +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.MappingBasedFilter; +import org.isistan.flabot.engine.executionstate.OrFilter; +import org.isistan.flabot.engine.executionstate.PrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy; +import org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy; +import org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; +import org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogtracePackageImpl; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; +import org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl; +import org.isistan.flabot.launcher.filter.filtermodel.FiltermodelPackage; +import org.isistan.flabot.launcher.filter.filtermodel.impl.FiltermodelPackageImpl; +import org.isistan.flabot.mapping.mappingmodel.MappingmodelPackage; +import org.isistan.flabot.mapping.mappingmodel.impl.MappingmodelPackageImpl; +import org.isistan.flabot.trace.config.ConfigPackage; +import org.isistan.flabot.trace.config.impl.ConfigPackageImpl; +import org.isistan.flabot.trace.log.impl.LogPackageImpl; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class ExecutionstatePackageImpl extends EPackageImpl implements ExecutionstatePackage { + /** + * + * + * @generated + */ + private EClass basicMappingBasedFilterEClass = null; + + /** + * + * + * @generated + */ + private EClass diagnosticEClass = null; + + /** + * + * + * @generated + */ + private EClass manualStateDeterminationStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass manualTraceInferenceStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass mappingBasedFilterEClass = null; + + /** + * + * + * @generated + */ + private EClass simpleTraceInferenceStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass stateDeterminationStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass stateDeterminationStrategyRegistryEClass = null; + + /** + * + * + * @generated + */ + private EClass traceBasedStateDeterminationStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass traceInferenceStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass responsibilityToStateDeterminationStrategyMapEntryEClass = null; + + /** + * + * + * @generated + */ + private EClass eStringToEJavaObjectMapEntryEClass = null; + + /** + * + * + * @generated + */ + private EClass stateFromMappingStateDeterminationStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass orFilterEClass = null; + + /** + * + * + * @generated + */ + private EClass prologProviderStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass simplePrologProviderStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass generalLogFilterStrategyEClass = null; + + /** + * + * + * @generated + */ + private EClass simpleGeneralLogFilterStrategyEClass = null; + + /** + * + * + * @generated + */ + private EEnum executionStateEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage#eNS_URI + * @see #init() + * @generated + */ + private ExecutionstatePackageImpl() { + super(eNS_URI, ExecutionstateFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this + * model, and for any others upon which it depends. Simple + * dependencies are satisfied by calling this method on all + * dependent packages before doing anything else. This method drives + * initialization for interdependent packages directly, in parallel + * with this package, itself. + *

Of this package and its interdependencies, all packages which + * have not yet been registered by their URI values are first created + * and registered. The packages are then initialized in two steps: + * meta-model objects for all of the packages are created before any + * are initialized, since one package's meta-model objects may refer to + * those of another. + *

Invocation of this method will not affect any packages that have + * already been initialized. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ExecutionstatePackage init() { + if (isInited) return (ExecutionstatePackage)EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI); + + // Obtain or create and register package + ExecutionstatePackageImpl theExecutionstatePackage = (ExecutionstatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ExecutionstatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ExecutionstatePackageImpl()); + + isInited = true; + + // Initialize simple dependencies + EditormodelPackageImpl.init(); + ComponentmodelPackageImpl.init(); + UcmmodelPackageImpl.init(); + CoremodelPackageImpl.init(); + ConfigPackageImpl.init(); + LogPackageImpl.init(); + MappingmodelPackageImpl.init(); + FiltermodelPackageImpl.init(); + + // Obtain or create and register interdependencies + JavalogtracePackageImpl theJavalogtracePackage = (JavalogtracePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(JavalogtracePackage.eNS_URI) instanceof JavalogtracePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(JavalogtracePackage.eNS_URI) : JavalogtracePackage.eINSTANCE); + ExecutionmodelPackageImpl theExecutionmodelPackage = (ExecutionmodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExecutionmodelPackage.eNS_URI) instanceof ExecutionmodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExecutionmodelPackage.eNS_URI) : ExecutionmodelPackage.eINSTANCE); + + // Create package meta-data objects + theExecutionstatePackage.createPackageContents(); + theJavalogtracePackage.createPackageContents(); + theExecutionmodelPackage.createPackageContents(); + // Initialize created meta-data + theExecutionstatePackage.initializePackageContents(); + theJavalogtracePackage.initializePackageContents(); + theExecutionmodelPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theExecutionstatePackage.freeze(); + + return theExecutionstatePackage; + } + + /** + * + * + * @generated + */ + public EClass getBasicMappingBasedFilter() { + return basicMappingBasedFilterEClass; + } + + /** + * + * + * @generated + */ + public EClass getDiagnostic() { + return diagnosticEClass; + } + + /** + * + * + * @generated + */ + public EReference getDiagnostic_Diagnostician() { + return (EReference)diagnosticEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getDiagnostic_Description() { + return (EAttribute)diagnosticEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getDiagnostic_AdditionalData() { + return (EReference)diagnosticEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EAttribute getDiagnostic_State() { + return (EAttribute)diagnosticEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getManualStateDeterminationStrategy() { + return manualStateDeterminationStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getManualTraceInferenceStrategy() { + return manualTraceInferenceStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getMappingBasedFilter() { + return mappingBasedFilterEClass; + } + + /** + * + * + * @generated + */ + public EReference getMappingBasedFilter_Mapping() { + return (EReference)mappingBasedFilterEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getMappingBasedFilter_LogFilter() { + return (EReference)mappingBasedFilterEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getSimpleTraceInferenceStrategy() { + return simpleTraceInferenceStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getStateDeterminationStrategy() { + return stateDeterminationStrategyEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateDeterminationStrategy_Responsibility() { + return (EReference)stateDeterminationStrategyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStateDeterminationStrategyRegistry() { + return stateDeterminationStrategyRegistryEClass; + } + + /** + * + * + * @generated + */ + public EReference getStateDeterminationStrategyRegistry_Registry() { + return (EReference)stateDeterminationStrategyRegistryEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTraceBasedStateDeterminationStrategy() { + return traceBasedStateDeterminationStrategyEClass; + } + + /** + * + * + * @generated + */ + public EReference getTraceBasedStateDeterminationStrategy_TraceInferenceStrategy() { + return (EReference)traceBasedStateDeterminationStrategyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getTraceInferenceStrategy() { + return traceInferenceStrategyEClass; + } + + /** + * + * + * @generated + */ + public EReference getTraceInferenceStrategy_StateDeterminationStrategy() { + return (EReference)traceInferenceStrategyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getResponsibilityToStateDeterminationStrategyMapEntry() { + return responsibilityToStateDeterminationStrategyMapEntryEClass; + } + + /** + * + * + * @generated + */ + public EReference getResponsibilityToStateDeterminationStrategyMapEntry_Key() { + return (EReference)responsibilityToStateDeterminationStrategyMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getResponsibilityToStateDeterminationStrategyMapEntry_Value() { + return (EReference)responsibilityToStateDeterminationStrategyMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getEStringToEJavaObjectMapEntry() { + return eStringToEJavaObjectMapEntryEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getEStringToEJavaObjectMapEntry_Key() { + return (EAttribute)eStringToEJavaObjectMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getEStringToEJavaObjectMapEntry_Value() { + return (EAttribute)eStringToEJavaObjectMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getStateFromMappingStateDeterminationStrategy() { + return stateFromMappingStateDeterminationStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getOrFilter() { + return orFilterEClass; + } + + /** + * + * + * @generated + */ + public EReference getOrFilter_CombinedFilters() { + return (EReference)orFilterEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPrologProviderStrategy() { + return prologProviderStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getSimplePrologProviderStrategy() { + return simplePrologProviderStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getGeneralLogFilterStrategy() { + return generalLogFilterStrategyEClass; + } + + /** + * + * + * @generated + */ + public EClass getSimpleGeneralLogFilterStrategy() { + return simpleGeneralLogFilterStrategyEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getSimpleGeneralLogFilterStrategy_PrologCodeText() { + return (EAttribute)simpleGeneralLogFilterStrategyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EEnum getExecutionState() { + return executionStateEEnum; + } + + /** + * + * + * @generated + */ + public ExecutionstateFactory getExecutionstateFactory() { + return (ExecutionstateFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + basicMappingBasedFilterEClass = createEClass(BASIC_MAPPING_BASED_FILTER); + + diagnosticEClass = createEClass(DIAGNOSTIC); + createEReference(diagnosticEClass, DIAGNOSTIC__DIAGNOSTICIAN); + createEAttribute(diagnosticEClass, DIAGNOSTIC__DESCRIPTION); + createEReference(diagnosticEClass, DIAGNOSTIC__ADDITIONAL_DATA); + createEAttribute(diagnosticEClass, DIAGNOSTIC__STATE); + + manualStateDeterminationStrategyEClass = createEClass(MANUAL_STATE_DETERMINATION_STRATEGY); + + manualTraceInferenceStrategyEClass = createEClass(MANUAL_TRACE_INFERENCE_STRATEGY); + + mappingBasedFilterEClass = createEClass(MAPPING_BASED_FILTER); + createEReference(mappingBasedFilterEClass, MAPPING_BASED_FILTER__MAPPING); + createEReference(mappingBasedFilterEClass, MAPPING_BASED_FILTER__LOG_FILTER); + + simpleTraceInferenceStrategyEClass = createEClass(SIMPLE_TRACE_INFERENCE_STRATEGY); + + stateDeterminationStrategyEClass = createEClass(STATE_DETERMINATION_STRATEGY); + createEReference(stateDeterminationStrategyEClass, STATE_DETERMINATION_STRATEGY__RESPONSIBILITY); + + stateDeterminationStrategyRegistryEClass = createEClass(STATE_DETERMINATION_STRATEGY_REGISTRY); + createEReference(stateDeterminationStrategyRegistryEClass, STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY); + + traceBasedStateDeterminationStrategyEClass = createEClass(TRACE_BASED_STATE_DETERMINATION_STRATEGY); + createEReference(traceBasedStateDeterminationStrategyEClass, TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY); + + traceInferenceStrategyEClass = createEClass(TRACE_INFERENCE_STRATEGY); + createEReference(traceInferenceStrategyEClass, TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY); + + responsibilityToStateDeterminationStrategyMapEntryEClass = createEClass(RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY); + createEReference(responsibilityToStateDeterminationStrategyMapEntryEClass, RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY); + createEReference(responsibilityToStateDeterminationStrategyMapEntryEClass, RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE); + + eStringToEJavaObjectMapEntryEClass = createEClass(ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY); + createEAttribute(eStringToEJavaObjectMapEntryEClass, ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY); + createEAttribute(eStringToEJavaObjectMapEntryEClass, ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE); + + stateFromMappingStateDeterminationStrategyEClass = createEClass(STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY); + + orFilterEClass = createEClass(OR_FILTER); + createEReference(orFilterEClass, OR_FILTER__COMBINED_FILTERS); + + prologProviderStrategyEClass = createEClass(PROLOG_PROVIDER_STRATEGY); + + simplePrologProviderStrategyEClass = createEClass(SIMPLE_PROLOG_PROVIDER_STRATEGY); + + generalLogFilterStrategyEClass = createEClass(GENERAL_LOG_FILTER_STRATEGY); + + simpleGeneralLogFilterStrategyEClass = createEClass(SIMPLE_GENERAL_LOG_FILTER_STRATEGY); + createEAttribute(simpleGeneralLogFilterStrategyEClass, SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT); + + // Create enums + executionStateEEnum = createEEnum(EXECUTION_STATE); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + ConfigPackageImpl theConfigPackage = (ConfigPackageImpl)EPackage.Registry.INSTANCE.getEPackage(ConfigPackage.eNS_URI); + MappingmodelPackageImpl theMappingmodelPackage = (MappingmodelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(MappingmodelPackage.eNS_URI); + FiltermodelPackageImpl theFiltermodelPackage = (FiltermodelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(FiltermodelPackage.eNS_URI); + CoremodelPackageImpl theCoremodelPackage = (CoremodelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(CoremodelPackage.eNS_URI); + + // Add supertypes to classes + basicMappingBasedFilterEClass.getESuperTypes().add(this.getMappingBasedFilter()); + manualStateDeterminationStrategyEClass.getESuperTypes().add(this.getStateDeterminationStrategy()); + manualTraceInferenceStrategyEClass.getESuperTypes().add(this.getTraceInferenceStrategy()); + mappingBasedFilterEClass.getESuperTypes().add(theConfigPackage.getFilter()); + simpleTraceInferenceStrategyEClass.getESuperTypes().add(this.getTraceInferenceStrategy()); + stateDeterminationStrategyEClass.getESuperTypes().add(theCoremodelPackage.getRegistrable()); + traceBasedStateDeterminationStrategyEClass.getESuperTypes().add(this.getStateDeterminationStrategy()); + stateFromMappingStateDeterminationStrategyEClass.getESuperTypes().add(this.getStateDeterminationStrategy()); + orFilterEClass.getESuperTypes().add(theConfigPackage.getFilter()); + simplePrologProviderStrategyEClass.getESuperTypes().add(this.getPrologProviderStrategy()); + simpleGeneralLogFilterStrategyEClass.getESuperTypes().add(this.getGeneralLogFilterStrategy()); + + // Initialize classes and features; add operations and parameters + initEClass(basicMappingBasedFilterEClass, BasicMappingBasedFilter.class, "BasicMappingBasedFilter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(diagnosticEClass, Diagnostic.class, "Diagnostic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDiagnostic_Diagnostician(), this.getStateDeterminationStrategy(), null, "diagnostician", null, 0, 1, Diagnostic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDiagnostic_Description(), ecorePackage.getEString(), "description", null, 0, 1, Diagnostic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDiagnostic_AdditionalData(), this.getEStringToEJavaObjectMapEntry(), null, "additionalData", null, 0, -1, Diagnostic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDiagnostic_State(), this.getExecutionState(), "state", null, 0, 1, Diagnostic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(manualStateDeterminationStrategyEClass, ManualStateDeterminationStrategy.class, "ManualStateDeterminationStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(manualTraceInferenceStrategyEClass, ManualTraceInferenceStrategy.class, "ManualTraceInferenceStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(mappingBasedFilterEClass, MappingBasedFilter.class, "MappingBasedFilter", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMappingBasedFilter_Mapping(), theMappingmodelPackage.getMapping(), null, "mapping", null, 0, 1, MappingBasedFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMappingBasedFilter_LogFilter(), theFiltermodelPackage.getLogFilter(), null, "logFilter", null, 0, 1, MappingBasedFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(simpleTraceInferenceStrategyEClass, SimpleTraceInferenceStrategy.class, "SimpleTraceInferenceStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(stateDeterminationStrategyEClass, StateDeterminationStrategy.class, "StateDeterminationStrategy", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStateDeterminationStrategy_Responsibility(), theCoremodelPackage.getResponsibility(), null, "responsibility", null, 0, 1, StateDeterminationStrategy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stateDeterminationStrategyRegistryEClass, StateDeterminationStrategyRegistry.class, "StateDeterminationStrategyRegistry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStateDeterminationStrategyRegistry_Registry(), this.getResponsibilityToStateDeterminationStrategyMapEntry(), null, "registry", null, 0, -1, StateDeterminationStrategyRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(traceBasedStateDeterminationStrategyEClass, TraceBasedStateDeterminationStrategy.class, "TraceBasedStateDeterminationStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTraceBasedStateDeterminationStrategy_TraceInferenceStrategy(), this.getTraceInferenceStrategy(), this.getTraceInferenceStrategy_StateDeterminationStrategy(), "traceInferenceStrategy", null, 0, 1, TraceBasedStateDeterminationStrategy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(traceInferenceStrategyEClass, TraceInferenceStrategy.class, "TraceInferenceStrategy", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTraceInferenceStrategy_StateDeterminationStrategy(), this.getTraceBasedStateDeterminationStrategy(), this.getTraceBasedStateDeterminationStrategy_TraceInferenceStrategy(), "stateDeterminationStrategy", null, 0, 1, TraceInferenceStrategy.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(responsibilityToStateDeterminationStrategyMapEntryEClass, Map.Entry.class, "ResponsibilityToStateDeterminationStrategyMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEReference(getResponsibilityToStateDeterminationStrategyMapEntry_Key(), theCoremodelPackage.getResponsibility(), null, "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getResponsibilityToStateDeterminationStrategyMapEntry_Value(), this.getStateDeterminationStrategy(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eStringToEJavaObjectMapEntryEClass, Map.Entry.class, "EStringToEJavaObjectMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEStringToEJavaObjectMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEStringToEJavaObjectMapEntry_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(stateFromMappingStateDeterminationStrategyEClass, StateFromMappingStateDeterminationStrategy.class, "StateFromMappingStateDeterminationStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(orFilterEClass, OrFilter.class, "OrFilter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getOrFilter_CombinedFilters(), theConfigPackage.getFilter(), null, "combinedFilters", null, 0, -1, OrFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(prologProviderStrategyEClass, PrologProviderStrategy.class, "PrologProviderStrategy", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(simplePrologProviderStrategyEClass, SimplePrologProviderStrategy.class, "SimplePrologProviderStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(generalLogFilterStrategyEClass, GeneralLogFilterStrategy.class, "GeneralLogFilterStrategy", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(simpleGeneralLogFilterStrategyEClass, SimpleGeneralLogFilterStrategy.class, "SimpleGeneralLogFilterStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getSimpleGeneralLogFilterStrategy_PrologCodeText(), ecorePackage.getEString(), "prologCodeText", null, 0, 1, SimpleGeneralLogFilterStrategy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(executionStateEEnum, ExecutionState.class, "ExecutionState"); + addEEnumLiteral(executionStateEEnum, ExecutionState.EXECUTED_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.NOT_EXECUTED_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.NO_ACTION_STATE_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_CURRENT_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_CONSTRAIN_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_PREVIOUS_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_PRECONDITION_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_PATH_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_NEXT_LEVELS_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.FAULTY_CONSTRAINT_START_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.PROBABLY_FAULTY_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.UNCERTAIN_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.MULTIPLE_ERRORS_LITERAL); + addEEnumLiteral(executionStateEEnum, ExecutionState.STATE_FROM_MAPPING_LITERAL); + + // Create resource + createResource(eNS_URI); + } + +} //ExecutionstatePackageImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl.java new file mode 100755 index 0000000..4825e73 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualStateDeterminationStrategyImpl.java @@ -0,0 +1,159 @@ +/** + * + * + * + * $Id: ManualStateDeterminationStrategyImpl.java,v 1.15 2006/03/22 03:28:54 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.internal.Workbench; +import org.isistan.flabot.coremodel.ComponentModel; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.ResponsibilityRegistry; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; + +/** + * + * An implementation of the model object 'Manual State Determination Strategy'. + * + *

+ *

+ * + * @generated + */ +public class ManualStateDeterminationStrategyImpl extends StateDeterminationStrategyImpl implements ManualStateDeterminationStrategy { + /** + * + * + * @generated + */ + protected ManualStateDeterminationStrategyImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getManualStateDeterminationStrategy(); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + if (resolve) return getResponsibility(); + return basicGetResponsibility(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + return responsibility != null; + } + return eDynamicIsSet(eFeature); + } + + private class GetStateRunnable implements Runnable { + private ResponsibilityNode node; + private Map engineContext; + private ExecutionState executionState; + + public GetStateRunnable(ResponsibilityNode node, Map engineContext) { + this.node = node; + this.engineContext = engineContext; + } + + public void run() { + //Opens a dialog so the user can select a state + ResponsibilityExecutionStateDialog aDialog = new ResponsibilityExecutionStateDialog(new Shell()); + aDialog.setExecutionInfo(node, engineContext); + executionState = aDialog.getSelectedExecutionState(ExecutionState.NOT_EXECUTED_LITERAL); + } + + public ExecutionState getExecutionState() { + return executionState; + } + + } + + public Diagnostic getState(ResponsibilityNode node, + Map engineContext, Loader loader) { + GetStateRunnable getStateRunnable = new GetStateRunnable(node, engineContext); + Workbench.getInstance().getDisplay().syncExec(getStateRunnable); + ExecutionState state = getStateRunnable.getExecutionState(); + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setState(state); + diagnostic.setDiagnostician(this); + diagnostic.setDescription("User-selected execution state."); + return diagnostic; + } + + public void registered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + // do nothing because this strategy needs no initialization + } + + public void unregistered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + // do nothing because this strategy needs no initialization + } + +} //ManualStateDeterminationStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualTraceInferenceStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualTraceInferenceStrategyImpl.java new file mode 100755 index 0000000..00f5ee8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ManualTraceInferenceStrategyImpl.java @@ -0,0 +1,205 @@ +/** + * + * + * + * $Id: ManualTraceInferenceStrategyImpl.java,v 1.13 2006/03/22 03:28:54 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.swt.widgets.Shell; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceLogManagerException; +import org.isistan.flabot.engine.executionstate.tagfilter.AcceptAllFilter; +import org.isistan.flabot.trace.TagTreeModel; +import org.isistan.flabot.trace.log.LogFactory; +import org.isistan.flabot.trace.log.Tag; + +/** + * + * An implementation of the model object 'Manual Trace Inference Strategy'. + * + *

+ *

+ * + * @generated + */ +public class ManualTraceInferenceStrategyImpl extends TraceInferenceStrategyImpl implements ManualTraceInferenceStrategy { + /** + * + * + * @generated + */ + protected ManualTraceInferenceStrategyImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getManualTraceInferenceStrategy(); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eBasicSetContainer(null, ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eContainer.eInverseRemove(this, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, TraceBasedStateDeterminationStrategy.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy() != null; + } + return eDynamicIsSet(eFeature); + } + + public Diagnostic getState(ResponsibilityNode node, Map engineContext) throws TraceLogManagerException { + List tags = getStateDeterminationStrategy().getTags(new AcceptAllFilter()); + Shell shell = FlabotPlugin.getDefault().getWorkbench().getDisplay().getActiveShell(); + + Tag rootTag = LogFactory.eINSTANCE.createTag(); + int i = 0; + for (Iterator iter = tags.iterator(); iter.hasNext();) { + Tag tag = (Tag) iter.next(); + rootTag.getTags().put(Integer.toString(i), tag); + i++; + } + + TagTreeModel.show("", "root", rootTag); + + //Opens a dialog so the user can select a state + ResponsibilityExecutionStateDialog aDialog = new ResponsibilityExecutionStateDialog(new Shell()); + aDialog.setExecutionInfo(node, engineContext); + ExecutionState state = aDialog.getSelectedExecutionState(ExecutionState.NOT_EXECUTED_LITERAL); + + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setDiagnostician(getStateDeterminationStrategy()); + diagnostic.setDescription("State determined manually by the user by seeing the trace log."); + diagnostic.setState(state); + diagnostic.getAdditionalData().put(TraceBasedStateDeterminationStrategy.ANALYZED_TAGS_KEY, tags); + return diagnostic; + } + +} //ManualTraceInferenceStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.java new file mode 100755 index 0000000..40b690e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/MappingBasedFilterImpl.java @@ -0,0 +1,337 @@ +/** + * <copyright> + * </copyright> + * + * $Id: MappingBasedFilterImpl.java,v 1.9 2006/04/10 21:55:02 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.MappingBasedFilter; +import org.isistan.flabot.launcher.filter.filtermodel.LogFilter; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.config.ConfigPackage; +import org.isistan.flabot.trace.config.Context; + + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Mapping Based Filter</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.MappingBasedFilterImpl#getContext <em>Context</em>}</li> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.MappingBasedFilterImpl#getMapping <em>Mapping</em>}</li> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.MappingBasedFilterImpl#getLogFilter <em>Log Filter</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class MappingBasedFilterImpl extends EObjectImpl implements MappingBasedFilter { + /** + * The cached value of the '{@link #getMapping() <em>Mapping</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMapping() + * @generated + * @ordered + */ + protected Mapping mapping = null; + + /** + * The cached value of the '{@link #getLogFilter() <em>Log Filter</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLogFilter() + * @generated + * @ordered + */ + protected LogFilter logFilter = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MappingBasedFilterImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getMappingBasedFilter(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Context getContext() { + if (eContainerFeatureID != ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT) return null; + return (Context)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setContext(Context newContext) { + if (newContext != eContainer || (eContainerFeatureID != ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT && newContext != null)) { + if (EcoreUtil.isAncestor(this, newContext)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContext != null) + msgs = ((InternalEObject)newContext).eInverseAdd(this, ConfigPackage.CONTEXT__FILTER, Context.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newContext, ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT, newContext, newContext)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Mapping getMapping() { + return mapping; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMapping(Mapping newMapping, NotificationChain msgs) { + Mapping oldMapping = mapping; + mapping = newMapping; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING, oldMapping, newMapping); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMapping(Mapping newMapping) { + if (newMapping != mapping) { + NotificationChain msgs = null; + if (mapping != null) + msgs = ((InternalEObject)mapping).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING, null, msgs); + if (newMapping != null) + msgs = ((InternalEObject)newMapping).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING, null, msgs); + msgs = basicSetMapping(newMapping, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING, newMapping, newMapping)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public LogFilter getLogFilter() { + return logFilter; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetLogFilter(LogFilter newLogFilter, NotificationChain msgs) { + LogFilter oldLogFilter = logFilter; + logFilter = newLogFilter; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER, oldLogFilter, newLogFilter); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLogFilter(LogFilter newLogFilter) { + if (newLogFilter != logFilter) { + NotificationChain msgs = null; + if (logFilter != null) + msgs = ((InternalEObject)logFilter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER, null, msgs); + if (newLogFilter != null) + msgs = ((InternalEObject)newLogFilter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER, null, msgs); + msgs = basicSetLogFilter(newLogFilter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER, newLogFilter, newLogFilter)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + return eBasicSetContainer(null, ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT, msgs); + case ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING: + return basicSetMapping(null, msgs); + case ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER: + return basicSetLogFilter(null, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + return eContainer.eInverseRemove(this, ConfigPackage.CONTEXT__FILTER, Context.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + return getContext(); + case ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING: + return getMapping(); + case ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER: + return getLogFilter(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + setContext((Context)newValue); + return; + case ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING: + setMapping((Mapping)newValue); + return; + case ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER: + setLogFilter((LogFilter)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + setContext((Context)null); + return; + case ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING: + setMapping((Mapping)null); + return; + case ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER: + setLogFilter((LogFilter)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.MAPPING_BASED_FILTER__CONTEXT: + return getContext() != null; + case ExecutionstatePackage.MAPPING_BASED_FILTER__MAPPING: + return mapping != null; + case ExecutionstatePackage.MAPPING_BASED_FILTER__LOG_FILTER: + return logFilter != null; + } + return eDynamicIsSet(eFeature); + } + +} //MappingBasedFilterImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.java new file mode 100755 index 0000000..9f1b0ab --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/OrFilterImpl.java @@ -0,0 +1,291 @@ +/** + * <copyright> + * </copyright> + * + * $Id: OrFilterImpl.java,v 1.1 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.EcoreUtil; + +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.OrFilter; +import org.isistan.flabot.gauge.Gauge; +import org.isistan.flabot.javamodel.JBehavior; +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.javamodel.JPackage; + +import org.isistan.flabot.trace.config.ConfigPackage; +import org.isistan.flabot.trace.config.Context; +import org.isistan.flabot.trace.config.Filter; +import org.isistan.flabot.util.TriState; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Or Filter</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.OrFilterImpl#getContext <em>Context</em>}</li> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.OrFilterImpl#getCombinedFilters <em>Combined Filters</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class OrFilterImpl extends EObjectImpl implements OrFilter { + /** + * The cached value of the '{@link #getCombinedFilters() <em>Combined Filters</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCombinedFilters() + * @generated + * @ordered + */ + protected EList combinedFilters = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrFilterImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getOrFilter(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Context getContext() { + if (eContainerFeatureID != ExecutionstatePackage.OR_FILTER__CONTEXT) return null; + return (Context)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setContext(Context newContext) { + if (newContext != eContainer || (eContainerFeatureID != ExecutionstatePackage.OR_FILTER__CONTEXT && newContext != null)) { + if (EcoreUtil.isAncestor(this, newContext)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newContext != null) + msgs = ((InternalEObject)newContext).eInverseAdd(this, ConfigPackage.CONTEXT__FILTER, Context.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newContext, ExecutionstatePackage.OR_FILTER__CONTEXT, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.OR_FILTER__CONTEXT, newContext, newContext)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList getCombinedFilters() { + if (combinedFilters == null) { + combinedFilters = new EObjectResolvingEList(Filter.class, this, ExecutionstatePackage.OR_FILTER__COMBINED_FILTERS); + } + return combinedFilters; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.OR_FILTER__CONTEXT, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + return eBasicSetContainer(null, ExecutionstatePackage.OR_FILTER__CONTEXT, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + return eContainer.eInverseRemove(this, ConfigPackage.CONTEXT__FILTER, Context.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + return getContext(); + case ExecutionstatePackage.OR_FILTER__COMBINED_FILTERS: + return getCombinedFilters(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + setContext((Context)newValue); + return; + case ExecutionstatePackage.OR_FILTER__COMBINED_FILTERS: + getCombinedFilters().clear(); + getCombinedFilters().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + setContext((Context)null); + return; + case ExecutionstatePackage.OR_FILTER__COMBINED_FILTERS: + getCombinedFilters().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.OR_FILTER__CONTEXT: + return getContext() != null; + case ExecutionstatePackage.OR_FILTER__COMBINED_FILTERS: + return combinedFilters != null && !combinedFilters.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + public boolean passes(Gauge gauge) { + for (Filter filter: (List<Filter>)getCombinedFilters()) { + if (filter.passes(gauge)) + return true; + } + return false; + } + + public boolean passes(JBehavior jBehavior) { + for (Filter filter: (List<Filter>)getCombinedFilters()) { + if (filter.passes(jBehavior)) + return true; + } + return false; + } + + public TriState passes(JClass jClass) { + boolean someUndefined = false; + for (Filter filter: (List<Filter>)getCombinedFilters()) { + TriState passes = filter.passes(jClass); + if (passes == TriState.TRUE) + return TriState.TRUE; + else if (passes == TriState.UNDEFINED) + someUndefined = true; + } + if (someUndefined) + return TriState.UNDEFINED; + else + return TriState.FALSE; + } + + public TriState passes(JPackage jPackage) { + boolean someUndefined = false; + for (Filter filter: (List<Filter>)getCombinedFilters()) { + TriState passes = filter.passes(jPackage); + if (passes == TriState.TRUE) + return TriState.TRUE; + else if (passes == TriState.UNDEFINED) + someUndefined = true; + } + if (someUndefined) + return TriState.UNDEFINED; + else + return TriState.FALSE; + } + +} //OrFilterImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ResponsibilityToStateDeterminationStrategyMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ResponsibilityToStateDeterminationStrategyMapEntryImpl.java new file mode 100755 index 0000000..cb4fe47 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/ResponsibilityToStateDeterminationStrategyMapEntryImpl.java @@ -0,0 +1,299 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ResponsibilityToStateDeterminationStrategyMapEntryImpl.java,v 1.4 2006/04/10 21:55:02 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Responsibility To State Determination Strategy Map Entry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.ResponsibilityToStateDeterminationStrategyMapEntryImpl#getTypedKey <em>Key</em>}</li> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.ResponsibilityToStateDeterminationStrategyMapEntryImpl#getTypedValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ResponsibilityToStateDeterminationStrategyMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected Responsibility key = null; + + /** + * The cached value of the '{@link #getTypedValue() <em>Value</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected StateDeterminationStrategy value = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ResponsibilityToStateDeterminationStrategyMapEntryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getResponsibilityToStateDeterminationStrategyMapEntry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Responsibility getTypedKey() { + if (key != null && key.eIsProxy()) { + Responsibility oldKey = key; + key = (Responsibility)eResolveProxy((InternalEObject)key); + if (key != oldKey) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY, oldKey, key)); + } + } + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Responsibility basicGetTypedKey() { + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedKey(Responsibility newKey) { + Responsibility oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StateDeterminationStrategy getTypedValue() { + if (value != null && value.eIsProxy()) { + StateDeterminationStrategy oldValue = value; + value = (StateDeterminationStrategy)eResolveProxy((InternalEObject)value); + if (value != oldValue) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE, oldValue, value)); + } + } + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StateDeterminationStrategy basicGetTypedValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedValue(StateDeterminationStrategy newValue) { + StateDeterminationStrategy oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY: + if (resolve) return getTypedKey(); + return basicGetTypedKey(); + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE: + if (resolve) return getTypedValue(); + return basicGetTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY: + setTypedKey((Responsibility)newValue); + return; + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE: + setTypedValue((StateDeterminationStrategy)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY: + setTypedKey((Responsibility)null); + return; + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE: + setTypedValue((StateDeterminationStrategy)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__KEY: + return key != null; + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY__VALUE: + return value != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int hash = -1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setKey(Object key) { + setTypedKey((Responsibility)key); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((StateDeterminationStrategy)value); + return oldValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //ResponsibilityToStateDeterminationStrategyMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleGeneralLogFilterStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleGeneralLogFilterStrategyImpl.java new file mode 100755 index 0000000..55367bf --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleGeneralLogFilterStrategyImpl.java @@ -0,0 +1,178 @@ +/** + * <copyright> + * </copyright> + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; + +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Simple General Log Filter Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.SimpleGeneralLogFilterStrategyImpl#getPrologCodeText <em>Prolog Code Text</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class SimpleGeneralLogFilterStrategyImpl extends EObjectImpl implements SimpleGeneralLogFilterStrategy { + /** + * The default value of the '{@link #getPrologCodeText() <em>Prolog Code Text</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologCodeText() + * @generated NOT + * @ordered + */ + protected static final String PROLOG_CODE_TEXT_EDEFAULT = "generalPreFilter.\ngeneralPreFilterAccepts(Tag)."; + + /** + * The cached value of the '{@link #getPrologCodeText() <em>Prolog Code Text</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologCodeText() + * @generated + * @ordered + */ + protected String prologCodeText = PROLOG_CODE_TEXT_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SimpleGeneralLogFilterStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getSimpleGeneralLogFilterStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getPrologCodeText() { + return prologCodeText; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPrologCodeText(String newPrologCodeText) { + String oldPrologCodeText = prologCodeText; + prologCodeText = newPrologCodeText; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT, oldPrologCodeText, prologCodeText)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT: + return getPrologCodeText(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT: + setPrologCodeText((String)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT: + setPrologCodeText(PROLOG_CODE_TEXT_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY__PROLOG_CODE_TEXT: + return PROLOG_CODE_TEXT_EDEFAULT == null ? prologCodeText != null : !PROLOG_CODE_TEXT_EDEFAULT.equals(prologCodeText); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (prologCodeText: "); + result.append(prologCodeText); + result.append(')'); + return result.toString(); + } + + public String getPrologCode() + { + String prolog = getPrologCodeText(); + if (prolog == null || prologCodeText.trim().length() == 0) + { + prolog = PROLOG_CODE_TEXT_EDEFAULT; + } + return prolog; + } + + public void resetProlog() + { + //Do nothing + } + +} //SimpleGeneralLogFilterStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimplePrologProviderStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimplePrologProviderStrategyImpl.java new file mode 100755 index 0000000..65c0cfb --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimplePrologProviderStrategyImpl.java @@ -0,0 +1,59 @@ +/** + * <copyright> + * </copyright> + * + * $Id$ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.EObjectImpl; + +import org.isistan.flabot.coremodel.ConditionEvent; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Simple Prolog Provider Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class SimplePrologProviderStrategyImpl extends EObjectImpl implements SimplePrologProviderStrategy { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SimplePrologProviderStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getSimplePrologProviderStrategy(); + } + + public String getPrologCode(ConditionEvent conditionEvent) { + if (conditionEvent != null) + { + return conditionEvent.getConditionEvent(); + } + + return ""; + } + + public void resetProlog() + { + //Do nothing + } + +} //SimplePrologProviderStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.java new file mode 100755 index 0000000..b2ff59b --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/SimpleTraceInferenceStrategyImpl.java @@ -0,0 +1,200 @@ +/** + * <copyright> + * </copyright> + * + * $Id: SimpleTraceInferenceStrategyImpl.java,v 1.8 2006/03/15 02:37:00 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceLogManagerException; +import org.isistan.flabot.engine.executionstate.tagfilter.AcceptAllFilter; +import org.isistan.flabot.gauge.Gauge; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil.TraceGeneratorConstants; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Simple Trace Inference Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class SimpleTraceInferenceStrategyImpl extends TraceInferenceStrategyImpl implements SimpleTraceInferenceStrategy { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SimpleTraceInferenceStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getSimpleTraceInferenceStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eBasicSetContainer(null, ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eContainer.eInverseRemove(this, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, TraceBasedStateDeterminationStrategy.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy() != null; + } + return eDynamicIsSet(eFeature); + } + + public Diagnostic getState(ResponsibilityNode node, Map engineContext) throws TraceLogManagerException { + List tags = getStateDeterminationStrategy().getTags(new AcceptAllFilter()); + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setDiagnostician(getStateDeterminationStrategy()); + diagnostic.setDescription("State determined using the simple trace inference strategy."); + diagnostic.getAdditionalData().put(TraceBasedStateDeterminationStrategy.ANALYZED_TAGS_KEY, tags); + if (tags == null || tags.size() == 0) { + diagnostic.setState(ExecutionState.NOT_EXECUTED_LITERAL); + return diagnostic; + } + for (Iterator iter = tags.iterator(); iter.hasNext();) { + Tag tag = (Tag) iter.next(); + String eventType = tag.getProperty(TraceGeneratorConstants.EVENT_TYPE_PARAMETER_NAME); + if (eventType != null && eventType.equals(Gauge.Type.ON_BEHAVIOR_ENTRY)) { + String exitType = tag.getProperty(TraceGeneratorConstants.EXIT_EVENT_TYPE_PARAMETER_NAME); + if (exitType == null || exitType.equals(Gauge.Type.ON_BEHAVIOR_ERROR.getName())) { + diagnostic.setState(ExecutionState.FAULTY_LITERAL); + return diagnostic; + } + } + } + diagnostic.setState(ExecutionState.EXECUTED_LITERAL); + return diagnostic; + } + +} //SimpleTraceInferenceStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.java new file mode 100755 index 0000000..26f2e83 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyImpl.java @@ -0,0 +1,168 @@ +/** + * <copyright> + * </copyright> + * + * $Id: StateDeterminationStrategyImpl.java,v 1.5 2006/02/27 22:05:23 dacostae Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>State Determination Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyImpl#getResponsibility <em>Responsibility</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class StateDeterminationStrategyImpl extends EObjectImpl implements StateDeterminationStrategy { + /** + * The cached value of the '{@link #getResponsibility() <em>Responsibility</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getResponsibility() + * @generated + * @ordered + */ + protected Responsibility responsibility = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StateDeterminationStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getStateDeterminationStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Responsibility getResponsibility() { + if (responsibility != null && responsibility.eIsProxy()) { + Responsibility oldResponsibility = responsibility; + responsibility = (Responsibility)eResolveProxy((InternalEObject)responsibility); + if (responsibility != oldResponsibility) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY, oldResponsibility, responsibility)); + } + } + return responsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Responsibility basicGetResponsibility() { + return responsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setResponsibility(Responsibility newResponsibility) { + Responsibility oldResponsibility = responsibility; + responsibility = newResponsibility; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY, oldResponsibility, responsibility)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + if (resolve) return getResponsibility(); + return basicGetResponsibility(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + return responsibility != null; + } + return eDynamicIsSet(eFeature); + } + + public void checkMapping() + { + //No check needed + } + + public void checkFilter() + { + //Do nothing + } +} //StateDeterminationStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.java new file mode 100755 index 0000000..80566fe --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateDeterminationStrategyRegistryImpl.java @@ -0,0 +1,154 @@ +/** + * <copyright> + * </copyright> + * + * $Id: StateDeterminationStrategyRegistryImpl.java,v 1.2 2006/02/03 21:03:07 dacostae Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreEMap; +import org.eclipse.emf.ecore.util.InternalEList; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>State Determination Strategy Registry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.StateDeterminationStrategyRegistryImpl#getRegistry <em>Registry</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class StateDeterminationStrategyRegistryImpl extends EObjectImpl implements StateDeterminationStrategyRegistry { + /** + * The cached value of the '{@link #getRegistry() <em>Registry</em>}' map. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRegistry() + * @generated + * @ordered + */ + protected EMap registry = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StateDeterminationStrategyRegistryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getStateDeterminationStrategyRegistry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getRegistry() { + if (registry == null) { + registry = new EcoreEMap(ExecutionstatePackage.eINSTANCE.getResponsibilityToStateDeterminationStrategyMapEntry(), ResponsibilityToStateDeterminationStrategyMapEntryImpl.class, this, ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY); + } + return registry; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY: + return ((InternalEList)getRegistry()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY: + return getRegistry(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY: + getRegistry().clear(); + getRegistry().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY: + getRegistry().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY__REGISTRY: + return registry != null && !registry.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + +} //StateDeterminationStrategyRegistryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.java new file mode 100755 index 0000000..8883ec8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/StateFromMappingStateDeterminationStrategyImpl.java @@ -0,0 +1,128 @@ +/** + * <copyright> + * </copyright> + * + * $Id: StateFromMappingStateDeterminationStrategyImpl.java,v 1.3 2006/04/13 01:45:45 apersson Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.isistan.flabot.coremodel.ComponentModel; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.ResponsibilityRegistry; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationException; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>State From Mapping State Determination Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class StateFromMappingStateDeterminationStrategyImpl extends StateDeterminationStrategyImpl implements StateFromMappingStateDeterminationStrategy { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StateFromMappingStateDeterminationStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getStateFromMappingStateDeterminationStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + if (resolve) return getResponsibility(); + return basicGetResponsibility(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + return responsibility != null; + } + return eDynamicIsSet(eFeature); + } + + public Diagnostic getState(ResponsibilityNode node, Map engineContext, Loader loader) throws StateDeterminationException { + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setDiagnostician(this); + // diagnostic.setDescription(mapping.id); + ExecutionState stateFromMappingState = ExecutionState.STATE_FROM_MAPPING_LITERAL; + diagnostic.setState(stateFromMappingState); + return diagnostic; + } + + public void registered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + // TODO Auto-generated method stub + + } + + public void unregistered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + // TODO Auto-generated method stub + + } + +} //StateFromMappingStateDeterminationStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceBasedStateDeterminationStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceBasedStateDeterminationStrategyImpl.java new file mode 100755 index 0000000..cb3982e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceBasedStateDeterminationStrategyImpl.java @@ -0,0 +1,451 @@ +/** + * <copyright> + * </copyright> + * + * $Id: TraceBasedStateDeterminationStrategyImpl.java,v 1.34 2006/04/13 05:26:52 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.isistan.flabot.coremodel.ComponentModel; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.coremodel.ResponsibilityRegistry; +import org.isistan.flabot.engine.InterfaceContextInfo; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.ContextCreationException; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationException; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.TraceLogManagerException; +import org.isistan.flabot.engine.executionstate.correlation.Correlator; +import org.isistan.flabot.engine.executionstate.correlation.dialog.TagFilterDialogManager; +import org.isistan.flabot.engine.executionstate.tagfilter.AndCompositeFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.ComponentScopeTagFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; +import org.isistan.flabot.launcher.filter.LogFilterManager; +import org.isistan.flabot.launcher.filter.filtermodel.LogFilter; +import org.isistan.flabot.mapping.MappingManager; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.mapping.mappingmodel.ScopeAwareMappingCreator; +import org.isistan.flabot.trace.config.ConfigFactory; +import org.isistan.flabot.trace.config.Context; +import org.isistan.flabot.trace.log.LogContext; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.TraceLog; +import org.isistan.flabot.util.EObjectIdGenerator; +import org.isistan.flabot.util.ObjectBoolean; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Trace Based State Determination Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.TraceBasedStateDeterminationStrategyImpl#getTraceInferenceStrategy <em>Trace Inference Strategy</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TraceBasedStateDeterminationStrategyImpl extends StateDeterminationStrategyImpl implements TraceBasedStateDeterminationStrategy { + /** + * The cached value of the '{@link #getTraceInferenceStrategy() <em>Trace Inference Strategy</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTraceInferenceStrategy() + * @generated + * @ordered + */ + protected TraceInferenceStrategy traceInferenceStrategy = null; + private List<Tag> lastTags; + private Loader currentLoader; + private ResponsibilityNode currentNode; + private ComponentRole currentInstance; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TraceBasedStateDeterminationStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getTraceBasedStateDeterminationStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TraceInferenceStrategy getTraceInferenceStrategy() { + return traceInferenceStrategy; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetTraceInferenceStrategy(TraceInferenceStrategy newTraceInferenceStrategy, NotificationChain msgs) { + TraceInferenceStrategy oldTraceInferenceStrategy = traceInferenceStrategy; + traceInferenceStrategy = newTraceInferenceStrategy; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, oldTraceInferenceStrategy, newTraceInferenceStrategy); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTraceInferenceStrategy(TraceInferenceStrategy newTraceInferenceStrategy) { + if (newTraceInferenceStrategy != traceInferenceStrategy) { + NotificationChain msgs = null; + if (traceInferenceStrategy != null) + msgs = ((InternalEObject)traceInferenceStrategy).eInverseRemove(this, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, TraceInferenceStrategy.class, msgs); + if (newTraceInferenceStrategy != null) + msgs = ((InternalEObject)newTraceInferenceStrategy).eInverseAdd(this, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, TraceInferenceStrategy.class, msgs); + msgs = basicSetTraceInferenceStrategy(newTraceInferenceStrategy, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, newTraceInferenceStrategy, newTraceInferenceStrategy)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + if (traceInferenceStrategy != null) + msgs = ((InternalEObject)traceInferenceStrategy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, null, msgs); + return basicSetTraceInferenceStrategy((TraceInferenceStrategy)otherEnd, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + return basicSetTraceInferenceStrategy(null, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + if (resolve) return getResponsibility(); + return basicGetResponsibility(); + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + return getTraceInferenceStrategy(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)newValue); + return; + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + setTraceInferenceStrategy((TraceInferenceStrategy)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + setResponsibility((Responsibility)null); + return; + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + setTraceInferenceStrategy((TraceInferenceStrategy)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__RESPONSIBILITY: + return responsibility != null; + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY: + return traceInferenceStrategy != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * Delegate the actual state determination to the trace inference strategy + * @throws StateDeterminationException + * @throws TraceLogManagerException + */ + public Diagnostic getState(ResponsibilityNode node, + Map engineContext, Loader loader) throws StateDeterminationException { + this.currentLoader = loader; + this.currentNode = node; + this.currentInstance = (ComponentRole) engineContext.get(InterfaceContextInfo.INSTANCE); + if (currentInstance == null) + throw new StateDeterminationException("The given component instance can't be null"); + try { + return getTraceInferenceStrategy().getState(node, engineContext); + } catch (TraceLogManagerException e) { + throw new StateDeterminationException(e); + } + } + + public List<Tag> getTags(TagFilter filter) { + List<Tag> logTags = getAllTags(); + List<Tag> filteredTags = filterTags(logTags, filter); + this.lastTags = filteredTags; + return filteredTags; + } + + /** + * @param tags + * @param filter + * @return + */ + private List<Tag> filterTags(List<Tag> tags, TagFilter filter) { + if (filter == null) + return tags; + List<Tag> filteredTags = new LinkedList<Tag>(); + for (Tag tag: tags) { + if (filter.accepts(tag)) + filteredTags.add(tag); + } + return filteredTags; + } + + /** + * Combine the component scope filter with the provided custom filter + * @param filter + * @return + */ + private TagFilter combineScopeFilter(TagFilter filter) { + TagFilter scopeFilter = getScopeFilter(); + if (scopeFilter == null) + return filter; + if (filter == null || filter instanceof org.isistan.flabot.engine.executionstate.tagfilter.AcceptAllFilter) + return scopeFilter; + List<TagFilter> filters = new ArrayList<TagFilter>(2); + filters.add(scopeFilter); + filters.add(filter); + return new AndCompositeFilter(filters); + } + + public TagFilter getScopeFilter() { + Mapping mapping = getCurrentScope(); + if (mapping == null) + return null; + TagFilter scopeFilter = new ComponentScopeTagFilter(mapping); + return scopeFilter; + } + + public Mapping getCurrentScope() { + if (currentInstance == null) + throw new IllegalArgumentException("Current instance can't be null"); + ComponentModel component = currentInstance.getComponent(); + if (component == null) + throw new IllegalArgumentException("Current instance's component can't be null"); + Mapping mapping = MappingManager.getMapping(component); + return mapping; + } + + /** + * @return + * @throws TraceLogManagerException + * @throws ContextCreationException + */ + @SuppressWarnings("unchecked") + public List<Tag> getAllTags() { + TraceLog log = currentLoader.getTraceLog(); + if (log == null) + return Collections.emptyList(); + List<Tag> logTags = Collections.<Tag>emptyList(); + String contextName = getContextName(); + for (Iterator iter = log.getContexts().iterator(); iter.hasNext();) { + LogContext logContext = (LogContext) iter.next(); + if (contextName.equals(logContext.getName())) { + logTags = logContext.getTags(); + break; + } + } + TagFilter scopeFilter = getScopeFilter(); + List<Tag> filteredTags = filterTags(logTags, scopeFilter); + return filteredTags; + } + + public void registered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + } + + public void unregistered(ResponsibilityRegistry registry, Responsibility responsibility, ComponentModel component, ComponentRole role) { + } + + public String getContextName() { + return EObjectIdGenerator.getGeneratedEMFID(this); + } + + public Context getContext() throws ContextCreationException { + Context context = ConfigFactory.eINSTANCE.createContext(); + context.setName(getContextName()); + Responsibility responsibility= getCurrentResponsibility(); + BasicMappingBasedFilter filter = ExecutionstateFactory.eINSTANCE.createBasicMappingBasedFilter(); + Mapping mapping=MappingManager.getMapping(responsibility); + if(mapping==null) { + throw new ContextCreationException("Mapping not present for responsibility " + responsibility.getName()); + } + LogFilter logFilter = LogFilterManager.getLogFilter(responsibility); + if(logFilter==null) { + throw new ContextCreationException("Log filter not present for responsibility " + responsibility.getName()); + } + mapping=ScopeAwareMappingCreator.create( + ScopeAwareMappingCreator.getScopes( + (ComponentModel[]) responsibility.getComponents().toArray(new ComponentModel[responsibility.getComponents().size()])), + mapping, new ObjectBoolean()); + if(mapping==null) { + throw new ContextCreationException("Scope aware mapping couldn't be built for responsibility " + responsibility.getName()); + } + + filter.setMapping(mapping); + filter.setLogFilter((LogFilter) EcoreUtil.copy(logFilter)); + + context.setFilter(filter); + return context; + } + + private Responsibility getCurrentResponsibility() { + if (currentNode != null) + return currentNode.getResponsibility(); + return getResponsibility(); + } + + public List<Tag> getCorrelatedTags(List<Tag> tags, TagFilter filter, List<Tag> correlationTags, Correlator correlator) { + List<Tag> originalTags = filterTags(tags, getScopeFilter()); + if (originalTags == null || originalTags.isEmpty()) + // the original tag list is empty, there's nothing to correlate + return originalTags; + List<Tag> correlatedTags = Collections.<Tag>emptyList(); + if (correlationTags != null && !correlationTags.isEmpty()) { + Set<Tag> tagSet = new HashSet<Tag>(); + for (Tag correlationTag: correlationTags) { + tagSet.addAll((correlator.correlate(originalTags, correlationTag))); + } + correlatedTags = new ArrayList<Tag>(tagSet); + } + correlatedTags = filterTags(correlatedTags, filter); + // let the user refine the correlated tags + correlatedTags = TagFilterDialogManager.INSTANCE.filterTags( + "Select execution tags for responsibility " + this.getCurrentResponsibility().getName(), + originalTags, correlatedTags, false); + this.lastTags = correlatedTags; + return correlatedTags; + } + + public List<Tag> getLastTags() { + return lastTags; + } + + public TraceLog getCurrentLog() { + return currentLoader.getTraceLog(); + } + + @Override + public void checkMapping() + { + if (getTraceInferenceStrategy() != null) + { + getTraceInferenceStrategy().checkMapping(getResponsibility()); + } + } + + @Override + public void checkFilter() + { + if (getTraceInferenceStrategy() != null) + { + getTraceInferenceStrategy().checkFilter(getResponsibility()); + } + } + +} //TraceBasedStateDeterminationStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.java new file mode 100755 index 0000000..39123a5 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/impl/TraceInferenceStrategyImpl.java @@ -0,0 +1,212 @@ +/** + * <copyright> + * </copyright> + * + * $Id: TraceInferenceStrategyImpl.java,v 1.2 2006/02/03 21:03:07 dacostae Exp $ + */ +package org.isistan.flabot.engine.executionstate.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.isistan.flabot.coremodel.Responsibility; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Trace Inference Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.impl.TraceInferenceStrategyImpl#getStateDeterminationStrategy <em>State Determination Strategy</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class TraceInferenceStrategyImpl extends EObjectImpl implements TraceInferenceStrategy { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TraceInferenceStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionstatePackage.eINSTANCE.getTraceInferenceStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TraceBasedStateDeterminationStrategy getStateDeterminationStrategy() { + if (eContainerFeatureID != ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY) return null; + return (TraceBasedStateDeterminationStrategy)eContainer; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStateDeterminationStrategy(TraceBasedStateDeterminationStrategy newStateDeterminationStrategy) { + if (newStateDeterminationStrategy != eContainer || (eContainerFeatureID != ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY && newStateDeterminationStrategy != null)) { + if (EcoreUtil.isAncestor(this, newStateDeterminationStrategy)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newStateDeterminationStrategy != null) + msgs = ((InternalEObject)newStateDeterminationStrategy).eInverseAdd(this, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, TraceBasedStateDeterminationStrategy.class, msgs); + msgs = eBasicSetContainer((InternalEObject)newStateDeterminationStrategy, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, newStateDeterminationStrategy, newStateDeterminationStrategy)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eBasicSetContainer(null, ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eContainer.eInverseRemove(this, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, TraceBasedStateDeterminationStrategy.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy() != null; + } + return eDynamicIsSet(eFeature); + } + + public void checkMapping(Responsibility responsibility) + { + //No check needed + } + + public void checkFilter(Responsibility responsibility) + { + //No check needed + } + +} //TraceInferenceStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/DefaultLogQueryPredicates.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/DefaultLogQueryPredicates.java new file mode 100755 index 0000000..d5e386c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/DefaultLogQueryPredicates.java @@ -0,0 +1,282 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.eclipse.swt.widgets.Display; +import org.isistan.flabot.engine.executionstate.correlation.Correlator; +import org.isistan.flabot.engine.executionstate.correlation.dialog.TagFilterDialogManager; +import org.isistan.flabot.engine.executionstate.tagfilter.ClassTagJClass; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; +import org.isistan.flabot.gauge.Gauge; +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil.TraceGeneratorConstants; +import org.isistan.flabot.util.TriState; + +/** + * Default implementation of the LogQueryPredicates + * @author mblech + * + */ +public class DefaultLogQueryPredicates extends LogQueryPredicates { + + private JavalogTraceInferenceStrategy traceInferenceStrategy; + + /** + * Create a new instance for the given display and engine + * @param engine + */ + public DefaultLogQueryPredicates(Display display, JavalogTraceInferenceStrategy traceInferenceStrategy, TraceInferenceJavalogEngine engine) { + super(display, engine); + this.traceInferenceStrategy = traceInferenceStrategy; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jTags() + */ + protected List<Tag> jTags() { + return traceInferenceStrategy.getStateDeterminationStrategy().getAllTags(); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#qBehaviorDescriptor(org.isistan.flabot.trace.log.Tag) + */ + protected String jBehaviorDescriptor(Tag behaviorTag) { + return TagQueryUtil.INSTANCE.getBehaviorDescriptor(behaviorTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#qBehaviorExecuted(org.isistan.flabot.trace.log.Tag) + */ + protected Tag jBehavior(Tag executionTag) { + return TagQueryUtil.INSTANCE.getBehavior(executionTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#qMethodCalls(org.isistan.flabot.trace.log.Tag) + */ + protected List<Tag> jInternalEvents(Tag executionTag) { + return TagQueryUtil.INSTANCE.getInternalEvents(executionTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#qExceptionThrown(org.isistan.flabot.trace.log.Tag) + */ + protected Tag jExceptionThrown(Tag executionTag) { + return TagQueryUtil.INSTANCE.getExceptionThrown(executionTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#qExceptionCaught(org.isistan.flabot.trace.log.Tag) + */ + protected List<Tag> jExceptionCaught(Tag executionTag) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jDeclaringClass(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected Tag jDeclaringClass(Tag behaviorTag) { + return TagQueryUtil.INSTANCE.getDeclaringClass(behaviorTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jClassDescriptor(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected String jClassDescriptor(Tag classTag) { + return TagQueryUtil.INSTANCE.getClassDescriptor(classTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jIsMethodCall(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected boolean jIsMethodCall(Tag tag) { + if (tag == null) + return false; + String eventType = tag.getProperty(TraceGeneratorConstants.EVENT_TYPE_PARAMETER_NAME); + if (eventType != null && eventType.equals(Gauge.Type.BEFORE_METHOD_CALL.getName())) + return true; + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jIsExitError(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected boolean jIsExitError(Tag tag) { + if (tag == null) + return false; + String exitEventType = tag.getProperty(TraceGeneratorConstants.EXIT_EVENT_TYPE_PARAMETER_NAME); + if (exitEventType == null) + return false; + if (exitEventType.equals(Gauge.Type.ON_BEHAVIOR_ERROR.getName()) || + exitEventType.equals(Gauge.Type.ON_METHOD_CALL_ERROR.getName())) + return true; + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jIsExitNull(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected boolean jIsExitNull(Tag tag) { + if (tag == null) + return false; + String exitEventType = tag.getProperty(TraceGeneratorConstants.EXIT_EVENT_TYPE_PARAMETER_NAME); + if (exitEventType == null) + return true; + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jTargetBehavior(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected Tag jTargetBehavior(Tag tag) { + return TagQueryUtil.INSTANCE.getTargetBehavior(tag); + } + + @Override + protected Tag jTargetInstance(Tag tag) { + return TagQueryUtil.INSTANCE.getTargetInstance(tag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jIsFieldRead(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected boolean jIsFieldRead(Tag tag) { + if (tag == null) + return false; + String eventType = (String) tag.getProperty(TraceGeneratorConstants.EVENT_TYPE_PARAMETER_NAME); + if (eventType.equals(Gauge.Type.ON_FIELD_READ.getName())) + return true; + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jIsFieldWrite(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected boolean jIsFieldWrite(Tag tag) { + if (tag == null) + return false; + String eventType = (String) tag.getProperty(TraceGeneratorConstants.EVENT_TYPE_PARAMETER_NAME); + if (eventType.equals(Gauge.Type.ON_FIELD_WRITE.getName())) + return true; + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates#jTargetField(org.isistan.flabot.trace.log.Tag) + */ + @Override + protected Tag jTargetField(Tag fieldEventTag) { + if (fieldEventTag == null) + return null; + Tag targetField = (Tag) fieldEventTag.getTags().get(Gauge.AttributeName.TARGET_FIELD); + return targetField; + } + + @Override + protected String jFieldDescriptor(Tag fieldTag) { + // TODO implement field descriptor generation + return ""; + } + + protected List<Tag> jCorrelatedTags(List<Tag> tags, TagFilter scope, List<Tag> correlationTags, Correlator correlator) { + return traceInferenceStrategy.getStateDeterminationStrategy().getCorrelatedTags(tags, scope, correlationTags, correlator); + } + + @Override + protected List<Tag> jPopupTagsSelect(List<Tag> tags) { + return TagFilterDialogManager.INSTANCE.filterTags("Test", tags, Collections.EMPTY_LIST, false); + } + + @Override + protected Tag jExecutionThread(Tag executionTag) { + return TagQueryUtil.INSTANCE.getThread(executionTag); + } + + @Override + protected long jTimestamp(Tag eventTag) { + return TagQueryUtil.INSTANCE.getTimestamp(eventTag).longValue(); + } + + @Override + protected Tag jExecutionInstanceSnapshot(Tag executionTag) { + return TagQueryUtil.INSTANCE.getExecutionInstanceSnapshot(executionTag); + } + + @Override + protected Tag jSnapshotObject(Tag snapshotTag) { + return TagQueryUtil.INSTANCE.getObject(snapshotTag); + } + + @Override + protected String jObjectId(Tag objectTag) { + return TagQueryUtil.INSTANCE.getObjectId(objectTag); + } + + @Override + protected Tag jObjectClass(Tag objectTag) { + return TagQueryUtil.INSTANCE.getObjectClass(objectTag); + } + + @Override + protected List<Tag> jArguments(Tag executionTag) { + return TagQueryUtil.INSTANCE.getArguments(executionTag); + } + + @Override + protected Tag jReturnValue(Tag executionTag) { + return TagQueryUtil.INSTANCE.getReturnValue(executionTag); + } + + @Override + protected boolean jScopeAcceptsSnapshotTag(Mapping scope, Tag snapshotTag) { + if (scope == null) + return true; + Tag object = TagQueryUtil.INSTANCE.getObject(snapshotTag); + Tag classTag = TagQueryUtil.INSTANCE.getObjectClass(object); + if (classTag == null) { + // class is null, it was a null object snapshot. must be accepted + return true; + } + JClass jClass = new ClassTagJClass(classTag); + boolean passes = scope.passes(jClass).equals(TriState.TRUE); + return passes; + } + + @Override + protected String jSnapshotToString(Tag snapshotTag) { + return TagQueryUtil.INSTANCE.getToString(snapshotTag); + } + + @Override + protected Map<String, String> jSnapshotFields(Tag snapshotTag) { + if (snapshotTag == null) + return null; + Tag fieldsTag = TagQueryUtil.INSTANCE.getFieldsTag(snapshotTag); + if (fieldsTag == null) + return Collections.emptyMap(); + return fieldsTag.getProperties().map(); + } + + @Override + protected boolean jSnapshotIsNull(Tag snapshotTag) { + return TagQueryUtil.INSTANCE.isNull(snapshotTag); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.java new file mode 100755 index 0000000..93fc65f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogTraceInferenceStrategy.java @@ -0,0 +1,32 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; + +/** + * Trace inference strategy that uses javalog to analyze the trace log + * + * @author mblech + * @model + */ +public interface JavalogTraceInferenceStrategy extends TraceInferenceStrategy{ + + /** + * The prolog code used by this javalog trace inference strategy + * @model default="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')." + */ + String getPrologCode(); + + /** + * Sets the value of the '{@link org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy#getPrologCode <em>Prolog Code</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Prolog Code</em>' attribute. + * @see #getPrologCode() + * @generated + */ + void setPrologCode(String value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtraceFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtraceFactory.java new file mode 100755 index 0000000..467c402 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtraceFactory.java @@ -0,0 +1,46 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtraceFactory.java,v 1.1 2006/02/11 01:55:06 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage + * @generated + */ +public interface JavalogtraceFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + JavalogtraceFactory eINSTANCE = new org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogtraceFactoryImpl(); + + /** + * Returns a new object of class '<em>Javalog Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Javalog Trace Inference Strategy</em>'. + * @generated + */ + JavalogTraceInferenceStrategy createJavalogTraceInferenceStrategy(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + JavalogtracePackage getJavalogtracePackage(); + +} //JavalogtraceFactory diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.java new file mode 100755 index 0000000..b71213c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/JavalogtracePackage.java @@ -0,0 +1,130 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtracePackage.java,v 1.2 2006/02/14 22:18:47 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtraceFactory + * @model kind="package" + * @generated + */ +public interface JavalogtracePackage extends EPackage{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "javalogtrace"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http:///org/isistan/flabot/engine/executionstate/javalogtrace.ecore"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "org.isistan.flabot.engine.executionstate.javalogtrace"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + JavalogtracePackage eINSTANCE = org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogtracePackageImpl.init(); + + /** + * The meta object id for the '{@link org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogTraceInferenceStrategyImpl <em>Javalog Trace Inference Strategy</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogTraceInferenceStrategyImpl + * @see org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogtracePackageImpl#getJavalogTraceInferenceStrategy() + * @generated + */ + int JAVALOG_TRACE_INFERENCE_STRATEGY = 0; + + /** + * The feature id for the '<em><b>State Determination Strategy</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY = ExecutionstatePackage.TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY; + + /** + * The feature id for the '<em><b>Prolog Code</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE = ExecutionstatePackage.TRACE_INFERENCE_STRATEGY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the the '<em>Javalog Trace Inference Strategy</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int JAVALOG_TRACE_INFERENCE_STRATEGY_FEATURE_COUNT = ExecutionstatePackage.TRACE_INFERENCE_STRATEGY_FEATURE_COUNT + 1; + + + /** + * Returns the meta object for class '{@link org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy <em>Javalog Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Javalog Trace Inference Strategy</em>'. + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy + * @generated + */ + EClass getJavalogTraceInferenceStrategy(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy#getPrologCode <em>Prolog Code</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Prolog Code</em>'. + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy#getPrologCode() + * @see #getJavalogTraceInferenceStrategy() + * @generated + */ + EAttribute getJavalogTraceInferenceStrategy_PrologCode(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + JavalogtraceFactory getJavalogtraceFactory(); + +} //JavalogtracePackage diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.java new file mode 100755 index 0000000..aa305f9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/LogQueryPredicates.java @@ -0,0 +1,802 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Map.Entry; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.isistan.flabot.engine.executionstate.correlation.Correlator; +import org.isistan.flabot.engine.executionstate.javalogtrace.correlatorbuilder.JavalogCorrelatorBuilder; +import org.isistan.flabot.engine.executionstate.javalogtrace.tagfilterbuilder.JavalogTagFilterBuilder; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.util.javalog.JavalogUtil; + +import JavaLog.PlAtom; +import JavaLog.PlJavaObj; +import JavaLog.PlList; +import JavaLog.PlNumber; +import JavaLog.PlReal; +import JavaLog.PlStructArgs; +import JavaLog.PlUVar; + +/** + * This abstract class defines the set of predefined predicates for querying the + * trace log that must be implemented. + * All queries have 2 methods, one with the 'pl' prefix and another with the 'j' prefix. 'pl' methods + * handle the conversion (if necessary) of parameters and return values of their 'j' counterparts + * to and from javalog-specific types, so that subclassers of this abstract class + * don't have to worry about javalog-specific details + * @author mblech + * + */ +public abstract class LogQueryPredicates { + + public static final String FIELD_FUNCTOR = "field"; + + /** + * Holds the display instance that's used to show popup dialogs + */ + private Display display; + + /** + * Holds the engine instance + */ + private TraceInferenceJavalogEngine engine; + + /** + * Create a new instance for the given display + * @param display + * @param engine + */ + public LogQueryPredicates(Display display, TraceInferenceJavalogEngine engine) { + this.engine = engine; + this.display = display; + } + + /** + * Get the display instance that's used by this LogQueryPredicates instance + * @return + */ + public Display getDisplay() { + return display; + } + + /** + * Print an object on system out specifying first its class + * @param o + */ + public void printObject(Object o) { + if (o!=null) + System.out.print(o.getClass() + " : "); + System.out.println(o); + } + + /** + * Show the given object and its class on a popup dialog + * @param o + */ + public void popupDialog(Object o) { + final StringBuffer message = new StringBuffer(); + if (o != null) { + message.append(o.getClass()); + message.append('\n'); + } + message.append(o); + display.syncExec(new Runnable(){ + public void run() { + MessageDialog.openInformation(display.getActiveShell(), + "Javalog popup object", message.toString()); + }}); + } + + /** + * Javalog converter for jPopupTagsSelect + * @param plTags the PlList of tags + * @return a PlList containing the selected tags + */ + public PlList plPopupTagsSelect(PlList plTags) { + List<Tag> tags = new LinkedList<Tag>(); + while (!plTags.isEmpty()) { + PlJavaObj head = (PlJavaObj) plTags.car(); + plTags = (PlList) plTags.cdr(); + tags.add((Tag) head.reference()); + } + List<Tag> result = jPopupTagsSelect(tags); + return JavalogUtil.INSTANCE.createPlList(result); + } + + /** + * Popup the given list of tags to the user and return the tags that the user + * selected + * @param tags + */ + protected abstract List<Tag> jPopupTagsSelect(List<Tag> tags); + + /** + * Check whether the given string matches the given regular expression or not + * @param string the string + * @param regex the regular expression + * @return the result of string.matches(regex) + */ + public boolean plRegexMatch(String string, String regex) { + if (string == null) + return false; + if (regex == null) + return false; + return string.matches(regex); + } + + /** + * Check whether the 2 given strings are equal + * @param string1 + * @param string2 + * @return + */ + public boolean plStringsEqual(String string1, String string2) { + if (string1 == null) + return false; + if (string2 == null) + return false; + string1 = JavalogUtil.INSTANCE.escapePrologString(string1); + string2 = JavalogUtil.INSTANCE.escapePrologString(string2); + boolean equals = string1.equals(string2); + return equals; + } + + /** + * Check whether string contains substring or not + * @param string the string + * @param substring the substring + * @return true if string contains substring, false otherwise + */ + public boolean plStringContains(String string, String substring) { + if (string == null) + return false; + if (substring == null) + return false; + string = JavalogUtil.INSTANCE.escapePrologString(string); + substring = JavalogUtil.INSTANCE.escapePrologString(substring); + boolean hasSubstring = string.contains(substring); + return hasSubstring; + } + + /** + * Check whether string1 is greater than string2 (numeric format) + * @param string1 + * @param string2 + * @return + */ + public boolean plStringsGreater(String string1, String string2) { + if (string1 == null) + return false; + if (string2 == null) + return false; + string1 = JavalogUtil.INSTANCE.escapePrologString(string1); + string2 = JavalogUtil.INSTANCE.escapePrologString(string2); + + double v1, v2; + try + { + v1 = Double.parseDouble(string1); + v2 = Double.parseDouble(string2); + } + catch (NumberFormatException e) + { + return false; + } + return v1 > v2; + } + + /** + * Check whether string1 is greater equal than string2 (numeric format) + * @param string1 + * @param string2 + * @return + */ + public boolean plStringsGreaterEqual(String string1, String string2) { + if (string1 == null) + return false; + if (string2 == null) + return false; + string1 = JavalogUtil.INSTANCE.escapePrologString(string1); + string2 = JavalogUtil.INSTANCE.escapePrologString(string2); + + double v1, v2; + try + { + v1 = Double.parseDouble(string1); + v2 = Double.parseDouble(string2); + } + catch (NumberFormatException e) + { + return false; + } + return v1 >= v2; + } + + /** + * Check whether string1 is lower than string2 (numeric format) + * @param string1 + * @param string2 + * @return + */ + public boolean plStringsLower(String string1, String string2) { + if (string1 == null) + return false; + if (string2 == null) + return false; + string1 = JavalogUtil.INSTANCE.escapePrologString(string1); + string2 = JavalogUtil.INSTANCE.escapePrologString(string2); + + double v1, v2; + try + { + v1 = Double.parseDouble(string1); + v2 = Double.parseDouble(string2); + } + catch (NumberFormatException e) + { + return false; + } + return v1 < v2; + } + + /** + * Check whether string1 is lower equal than string2 (numeric format) + * @param string1 + * @param string2 + * @return + */ + public boolean plStringsLowerEqual(String string1, String string2) { + if (string1 == null) + return false; + if (string2 == null) + return false; + string1 = JavalogUtil.INSTANCE.escapePrologString(string1); + string2 = JavalogUtil.INSTANCE.escapePrologString(string2); + + double v1, v2; + try + { + v1 = Double.parseDouble(string1); + v2 = Double.parseDouble(string2); + } + catch (NumberFormatException e) + { + return false; + } + return v1 <= v2; + } + + /** + * Javalog converter for jTags + * @return + */ + public PlList plTags() { + List<Tag> tagsList = jTags(); + if (tagsList == null) + return null; + PlList tagsPlList = JavalogUtil.INSTANCE.createPlList(tagsList); + return tagsPlList; + } + + private TagFilter buildFilter(PlList filterDescriptor) { + return JavalogTagFilterBuilder.INSTANCE.buildFilter(filterDescriptor, engine); + } + + /** + * Get the list of all tags in the current context + * @return + */ + protected abstract List<Tag> jTags(); + + /** + * Javalog converter for jCorrelatedTags + * @return + */ + public PlList plCorrelatedTags(PlList tags, PlList filterDescriptor, PlList correlationTags, PlList correlatorDescriptor) { + // build scope + TagFilter filter = buildFilter(filterDescriptor); + // extract correlationTags + List<Tag> correlationTagsList = new LinkedList<Tag>(); + while (!correlationTags.isEmpty()) { + PlJavaObj head = (PlJavaObj) correlationTags.car(); + correlationTags = (PlList) correlationTags.cdr(); + correlationTagsList.add((Tag) head.reference()); + } + // extract tags + List<Tag> tagsList = new LinkedList<Tag>(); + while (!tags.isEmpty()) { + PlJavaObj head = (PlJavaObj) tags.car(); + tags = (PlList) tags.cdr(); + tagsList.add((Tag) head.reference()); + } + // build correlator using the descriptor + Correlator correlator = buildCorrelator(correlatorDescriptor); + // call jCorrelatedTags + List<Tag> correlatedTags = jCorrelatedTags(tagsList, filter, correlationTagsList, correlator); + // convert the return value to PlList + return JavalogUtil.INSTANCE.createPlList(correlatedTags); + } + + /** + * Create the correlator that corresponds to the given descriptor + * @param descriptor + * @return + */ + private Correlator buildCorrelator(PlList descriptor) { + return JavalogCorrelatorBuilder.INSTANCE.buildCorrelator(descriptor); + } + + /** + * Get the list of correlated tags from the current context, given the + * scope, correlation tags and correlator + * @param tags the tag list + * @param scope the tag scope + * @param correlationTags the set of tags to which this context's tags must + * be correlated to + * @param correlator the correlator + * @return a subset the current context's tags that match the given scope + * and are accepted by the given correlator + */ + protected abstract List<Tag> jCorrelatedTags( + List<Tag> tags, TagFilter scope, List<Tag> correlationTags, Correlator correlator); + + /** + * This method handles prolog conversion for jBehavior + * (just delegates because conversion isn't needed) + * @param executionTag + * @return + */ + public Tag plBehavior(Tag executionTag) { + return jBehavior(executionTag); + } + + /** + * Get the behavior tag of the behavior (method or constructor) + * that's executed in the given execution tag + * @param executionTag the execution tag + * @return the behavior tag + */ + protected abstract Tag jBehavior(Tag executionTag); + + /** + * This method handles prolog conversion for jDeclaringClass + * (just delegates because conversion isn't needed) + * @param behaviorTag + * @return + */ + public Tag plDeclaringClass(Tag behaviorTag) { + return jDeclaringClass(behaviorTag); + } + + /** + * Get the class tag for the declaring class of the given behavior + * @param behaviorTag the behavior tag + * @return the declaring class' class tag + */ + protected abstract Tag jDeclaringClass(Tag behaviorTag); + + /** + * This method handles prolog conversion for jBehaviorDescriptor + * (just delegates because no conversion is needed) + * @param behaviorTag + * @return + */ + public String plBehaviorDescriptor(Tag behaviorTag) { + return jBehaviorDescriptor(behaviorTag); + } + + /** + * Get the string descriptor of the given behavior tag + * @param behaviorTag the behavior tag + * @return the descriptor + */ + protected abstract String jBehaviorDescriptor(Tag behaviorTag); + + /** + * this method handles javalog conversion for jClassDescriptor + * (no conversion needed, it only delegates) + * @param classTag + * @return + */ + public String plClassDescriptor(Tag classTag) { + return jClassDescriptor(classTag); + } + + /** + * Get the descriptor for the class specified in the given classTag + * @param classTag the class tag + * @return the descriptor for the class + */ + protected abstract String jClassDescriptor(Tag classTag); + + /** + * This method handles conversion from the List<Tag> returned by + * jInternalEvents to PlList for javalog + * @param executionTag + * @return + */ + public PlList plInternalEvents(Tag executionTag) { + List<Tag> internalEvents = jInternalEvents(executionTag); + return JavalogUtil.INSTANCE.createPlList(internalEvents); + } + + /** + * Get the list of internal event tags within the given execution tag + * @param executionTag the execution tag + * @return a list containing all the internal event tags + */ + protected abstract List<Tag> jInternalEvents(Tag executionTag); + + /** + * Get the exception that was thrown in the given execution tag + * @param executionTag the execution tag + * @return the object tag of the exception that was thrown (null if none) + */ + protected abstract Tag jExceptionThrown(Tag executionTag); + + /** + * Get a list of the exceptions that were caught in the given execution tag + * @param executionTag the execution tag + * @return + */ + protected abstract List<Tag> jExceptionCaught(Tag executionTag); + + /** + * This method handles javalog conversion for jIsMethodCall + * (just delegates because no conversion is necessary) + * @param tag + * @return + */ + public boolean plIsMethodCall(Tag tag) { + return jIsMethodCall(tag); + } + + /** + * Check whether the given tag represents a method call or not + * @param tag the tag + * @return true if the tag isn't null and represents a method call + */ + protected abstract boolean jIsMethodCall(Tag tag); + + /** + * Javalog converter for jIsExitError + * @param tag + * @return + */ + public boolean plIsExitError(Tag tag) { + return jIsExitError(tag); + } + + /** + * Check if the given behavior execution or method call tag + * indicates that an exception was thrown + * @param tag the behavior execution or method call tag + * @return true if the given tag isn't null and an exception was thrown + */ + protected abstract boolean jIsExitError(Tag tag); + + /** + * Javalog converter for jIsExitNull + * @param tag + * @return + */ + public boolean plIsExitNull(Tag tag) { + return jIsExitNull(tag); + } + + /** + * Check if the given behavior execution or method call tag + * doesn't have an exit event + * @param tag the tag + * @return true if the tag isn't null and indicates that the behavior execution + * never ended + */ + protected abstract boolean jIsExitNull(Tag tag); + + /** + * Javalog converter for jTargetBehavior + * @param tag + * @return + */ + public Tag plTargetBehavior(Tag tag) { + return jTargetBehavior(tag); + } + + public Tag plTargetInstance(Tag tag) { + return jTargetInstance(tag); + } + + /** + * Get the target behavior tag for the given method call tag + * @param tag the method call tag + * @return the target behavior tag + */ + protected abstract Tag jTargetBehavior(Tag tag); + + protected abstract Tag jTargetInstance(Tag tag); + + /** + * Javalog converter for jIsFieldRead + * @param tag + * @return + */ + public boolean plIsFieldRead(Tag tag) { + return jIsFieldRead(tag); + } + + /** + * Check if the given tag is a field read + * @param tag the tag + * @return true if the tag isn't null and represents a field read + */ + protected abstract boolean jIsFieldRead(Tag tag); + + /** + * Javalog converter for jIsFieldWrite + * @param tag + * @return + */ + public boolean plIsFieldWrite(Tag tag) { + return jIsFieldWrite(tag); + } + + /** + * Check if the given tag is a field write + * @param tag the tag + * @return true if the tag isn't null and represents a field write + */ + protected abstract boolean jIsFieldWrite(Tag tag); + + /** + * Javalog converter for jTargetField + * @param fieldEventTag + * @return + */ + public Tag plTargetField(Tag fieldEventTag) { + return jTargetField(fieldEventTag); + } + + /** + * Get the target field tag for the given field read or write tag + * @param fieldEventTag a field read or write tag + * @return the target field for the field event tag + */ + protected abstract Tag jTargetField(Tag fieldEventTag); + + + /** + * Javalog converter for jFieldDescriptor + * @param fieldTag + * @return + */ + public String plFieldDescriptor(Tag fieldTag) { + return jFieldDescriptor(fieldTag); + } + + /** + * Get the field descriptor string for the given field tag + * @param fieldTag the field tag + * @return the descriptor + */ + protected abstract String jFieldDescriptor(Tag fieldTag); + + /** + * Javalog converter for jExecutionThread + * @param executionTag + * @return + */ + public Tag plExecutionThread(Tag executionTag) { + return jExecutionThread(executionTag); + } + + /** + * Get the thread tag for the given execution tag + * @param executionTag the execution tag + * @return the thread tag for the thread where it executed + */ + protected abstract Tag jExecutionThread(Tag executionTag); + + /** + * Javalog converter for jTimestamp + * @param eventTag + * @return + */ + public PlNumber plTimestamp(Tag eventTag) { + long timestamp = jTimestamp(eventTag); + PlNumber plTimestamp = new PlReal(timestamp); + return plTimestamp; + } + + /** + * Get the (entry) timestamp for the given eventTag + * @param eventTag + * @return + */ + protected abstract long jTimestamp(Tag eventTag); + + /** + * Javalog converter for jInstance + * @param executionTag + * @return + */ + public Tag plExecutionInstanceSnapshot(Tag executionTag) { + return jExecutionInstanceSnapshot(executionTag); + } + + /** + * Get the object instance snapshot tag for the given execution tag + * @param executionTag the execution tag + * @return the object snapshot tag for the instance where it executed + */ + protected abstract Tag jExecutionInstanceSnapshot(Tag executionTag); + + /** + * Javalog converter for jSnapshotObject + * @param snapshotTag + * @return + */ + public Tag plSnapshotObject(Tag snapshotTag) { + return jSnapshotObject(snapshotTag); + } + + /** + * Get the object tag for the given snapshot tag + * @param snapshotTag the object snapshot tag + * @return the object for the given snapshot + */ + protected abstract Tag jSnapshotObject(Tag snapshotTag); + + /** + * Javalog converter for jObjectId + * @param objectTag + * @return + */ + public String plObjectId(Tag objectTag) { + return jObjectId(objectTag); + } + + /** + * Get the object id for the given object tag + * @param objectTag the object tag + * @return the given object's id + */ + protected abstract String jObjectId(Tag objectTag); + + /** + * Javalog converter for jObjectClass + * @param objectTag + * @return + */ + public Tag plObjectClass(Tag objectTag) { + return jObjectClass(objectTag); + } + + /** + * Get the class tag for the given object tag + * @param objectTag the object tag + * @return the given object's class tag + */ + protected abstract Tag jObjectClass(Tag objectTag); + + /** + * Javalog converter for jArguments + * @param executionTag + * @return + */ + public PlList plArguments(Tag executionTag) { + List<Tag> argumentsList = jArguments(executionTag); + PlList argumentsPlList = JavalogUtil.INSTANCE.createPlList(argumentsList); + return argumentsPlList; + } + + /** + * Get the list of the received arguments' snapshots for the + * given execution tag + * @param executionTag the execution tag + * @return the list of argument snapshots + */ + protected abstract List<Tag> jArguments(Tag executionTag); + + /** + * Javalog converter for jReturnValue + * @param executionTag + * @return + */ + public Tag plReturnValue(Tag executionTag) { + return jReturnValue(executionTag); + } + + public Tag plExceptionThrown(Tag executionTag) { + return jExceptionThrown(executionTag); + } + + /** + * Get the return value object snapshot tag for the given execution tag + * @param executionTag the execution tag + * @return the object snapshot tag for the execution's return value + */ + protected abstract Tag jReturnValue(Tag executionTag); + + /** + * Get the engine used by this instance of log query predicates + * @return + */ + public TraceInferenceJavalogEngine getEngine() { + return engine; + } + + /** + * Javalog converter for jScopeAcceptsSnapshotTag + * @param scope + * @param snapshotTag + * @return + */ + public boolean plScopeAcceptsSnapshotTag(Mapping scope, Tag snapshotTag) { + return jScopeAcceptsSnapshotTag(scope, snapshotTag); + } + + /** + * Check if the given class scope accepts the given snapshot tag + * @param scope the class scope + * @param snapshotTag an object snapshot tag + * @return whether the scope accepts the tag or not + */ + protected abstract boolean jScopeAcceptsSnapshotTag(Mapping scope, Tag snapshotTag); + + /** + * Javalog converter for jSnapshotToString + * @param snapshotTag + * @return + */ + public String plSnapshotToString(Tag snapshotTag) { + return jSnapshotToString(snapshotTag); + } + + /** + * Get the toString() value for the given snapshot tag + * @param snapshotTag the snapshot tag + * @return the toString() value for the object at the time the snapshot + * was taken + */ + protected abstract String jSnapshotToString(Tag snapshotTag); + + /** + * Javalog converter for jSnapshotFields. Converts the map of fields + * to a PlList of field(name,value) structs + * @param snapshotTag + * @return + */ + public PlList plSnapshotFields(Tag snapshotTag) { + Map<String, String> fieldsMap = jSnapshotFields(snapshotTag); + Set<Entry<String, String>> entries = fieldsMap.entrySet(); + PlStructArgs[] fields = new PlStructArgs[entries.size()]; + int i = 0; + for (Entry<String, String> entry: entries) { + fields[i] = new PlStructArgs(FIELD_FUNCTOR, + new PlAtom(entry.getKey()), + new PlAtom(entry.getValue()), + new PlUVar[]{}); + i++; + } + PlList fieldsPlList = PlList.arrayToPlList(fields, new PlUVar[]{}); + return fieldsPlList; + } + + protected abstract Map<String, String> jSnapshotFields(Tag snapshotTag); + + public boolean plSnapshotIsNull(Tag snapshotTag) { + return jSnapshotIsNull(snapshotTag); + } + + protected abstract boolean jSnapshotIsNull(Tag snapshotTag); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.java new file mode 100755 index 0000000..7dd3d0d --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngine.java @@ -0,0 +1,70 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import java.io.IOException; + +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.util.plugin.PluginUtils; + +import JavaLog.PlException; + +/** + * JavalogEngine that has a set of useful predefined predicates for trace inference + * @author mblech + * + */ +public class TraceInferenceJavalogEngine extends JavaLogEngine { + + /** + * Trace inference predicates prolog file path + */ + public static final String TRACE_INFERENCE_PREDICATES = PluginUtils.getPluginFolder(EnginePlugin.getDefault()) + "resource/TraceInferencePredicates.pl"; + + /** + * State logic module + */ + //LogicKnowledge lkState; + + /** + * Create a new instance of TraceInferenceJavalogEngine + * @throws IOException thrown when necessary files can't be opened + * @throws PlException thrown by the javalog brain during initialization + */ + public TraceInferenceJavalogEngine() + throws IOException, PlException { + super(); + this.reset(); + } + + @Override + public void reset() throws IOException, PlException { + System.out.println("Resetting engine..."); + super.reset(); + this.loadLogicModule(TRACE_INFERENCE_PREDICATES); + this.changeLogicModule(TRACE_INFERENCE_PREDICATES); + //lkState = new LogicKnowledge(getBrain(), ""); + //getBrain().addKnowledge(lkState); + //lkState.disable(); + System.out.println("Engine reset finished"); + } + + + /** + * Enable the state logic module + * + *//* + public void enableState() { + lkState.enable(); + }*/ + + /** + * Disable the state logic module + * + *//* + public void disableState() { + lkState.disable(); + }*/ +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.java new file mode 100755 index 0000000..4b6bd89 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/TraceInferenceJavalogEngineLocator.java @@ -0,0 +1,72 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace; + +import java.io.IOException; +import java.util.Map; +import java.util.WeakHashMap; + +import org.isistan.flabot.trace.log.TraceLog; +import org.isistan.flabot.util.locator.ComponentLocator; +import org.isistan.flabot.util.locator.ComponentLocatorException; + +import JavaLog.PlException; + +/** + * Component locator that handles javalog engine instance creation for + * trace inference + * @author usuario + * + */ +public class TraceInferenceJavalogEngineLocator implements ComponentLocator { + + /** + * Locator id for the flabot engine component locator + */ + public static final String LOCATOR_ID = "traceInferenceJavalogEngine"; + + /** + * Key for the "traceLog" parameter + */ + public static final String PARAMETER_TRACE_LOG = "traceLog"; + + private Map javalogEngines = new WeakHashMap(); + + public Object locate(Map parameters) throws ComponentLocatorException { + // parameter extraction + Object traceLogObject = parameters.get(PARAMETER_TRACE_LOG); + if (!parameters.containsKey(PARAMETER_TRACE_LOG)) { + throw new ComponentLocatorException( + "Can't locate a TraceInferenceJavalogEngine without the" + + "required 'traceLog' parameter"); + } + if (traceLogObject != null && !(traceLogObject instanceof TraceLog)) { + throw new ComponentLocatorException( + "The parameter 'traceLog' isn't an instance of TraceLog"); + } + TraceLog traceLog = (TraceLog)traceLogObject; + //parameter extracted + + TraceInferenceJavalogEngine engine = + (TraceInferenceJavalogEngine)javalogEngines.get(traceLog); + if (engine == null) { + //engine initialization + try { + engine = new TraceInferenceJavalogEngine(); + javalogEngines.put(traceLog, engine); + } catch (IOException e) { + throw new ComponentLocatorException( + "IOException initializing the TraceInferenceJavalogEngine", + e); + } catch (PlException e) { + throw new ComponentLocatorException( + "PlException initializing the TraceInferenceJavalogEngine", + e); + } + } + + return engine; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/DefaultJavalogCorrelatorBuilder.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/DefaultJavalogCorrelatorBuilder.java new file mode 100755 index 0000000..d2eac8e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/DefaultJavalogCorrelatorBuilder.java @@ -0,0 +1,131 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.correlatorbuilder; + +import java.util.LinkedList; +import java.util.List; + +import org.isistan.flabot.engine.executionstate.correlation.AndCompositeCorrelator; +import org.isistan.flabot.engine.executionstate.correlation.CallStackDistanceCorrelator; +import org.isistan.flabot.engine.executionstate.correlation.Correlator; +import org.isistan.flabot.engine.executionstate.correlation.LastExecutionCorrelator; +import org.isistan.flabot.engine.executionstate.correlation.SameInstanceCorrelator; +import org.isistan.flabot.engine.executionstate.correlation.SameThreadCorrelator; +import org.isistan.flabot.engine.executionstate.correlation.TimestampDeltaCorrelator; + +import JavaLog.PlList; +import JavaLog.PlNumber; + +/** + * Default implementation of JavalogCorrelatorBuilder + * @author mblech + * + */ +public class DefaultJavalogCorrelatorBuilder implements + JavalogCorrelatorBuilder { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.correlatorbuilder.JavalogCorrelatorBuilder#buildCorrelator(JavaLog.PlList) + */ + public Correlator buildCorrelator(PlList descriptor) { + if (descriptor == null) + throw new IllegalArgumentException("Descriptor PlList can't be null"); + if (descriptor.length() == 0) + throw new IllegalArgumentException("Descriptor PlList can't be empty"); + // extract id and parameters (head and tail) + String correlatorId = descriptor.car().toString(); + PlList parameters = (PlList) descriptor.cdr(); + // use the id to build the correct correlator + if (correlatorId.equals(AND_COMPOSITE)) { + return buildAnd(parameters); + } + else if (correlatorId.equals(TIMESTAMP_DELTA)) { + return buildTimestampDelta(parameters); + } + else if (correlatorId.equals(SAME_THREAD)) { + return buildSameThread(parameters); + } + else if (correlatorId.equals(CALL_STACK_DISTANCE)) { + return buildCallStackDistance(parameters); + } + else if (correlatorId.equals(SAME_INSTANCE)) { + return buildSameInstance(parameters); + } + else if (correlatorId.equals(LAST_EXECUTION)) { + return buildLastExecution(parameters); + } + // the id wasn't in the if-else-if chain, then it's a wrong id + throw new IllegalArgumentException("Wrong correlatorId: " + correlatorId); + } + + private Correlator buildLastExecution(PlList parameters) { + if (!parameters.isEmpty()) + throw new IllegalArgumentException("LastExecutionCorrelator doesn't take parameters: " + parameters); + LastExecutionCorrelator correlator = new LastExecutionCorrelator(); + return correlator; + } + + private Correlator buildSameInstance(PlList parameters) { + if (!parameters.isEmpty()) + throw new IllegalArgumentException("SameInstanceCorrelator doesn't take parameters: " + parameters); + SameInstanceCorrelator correlator = new SameInstanceCorrelator(); + return correlator; + } + + private Correlator buildCallStackDistance(PlList parameters) { + if (parameters.length() != 2) + throw new IllegalArgumentException("Wrong number of parameters for CallStackDistanceCorrelator: " + parameters); + int min = ((PlNumber) parameters.car()).intValue(); + parameters = (PlList) parameters.cdr(); + int max = ((PlNumber) parameters.car()).intValue(); + CallStackDistanceCorrelator correlator = new CallStackDistanceCorrelator(min, max); + return correlator; + } + + /** + * Build a same thread correlator + * @param parameters + * @return + */ + private Correlator buildSameThread(PlList parameters) { + if (!parameters.isEmpty()) + throw new IllegalArgumentException("SameThreadCorrelator doesn't take parameters: " + parameters); + SameThreadCorrelator correlator = new SameThreadCorrelator(); + return correlator; + } + + /** + * Build a timestamp delta correlator + * @param parameters + * @return + */ + private Correlator buildTimestampDelta(PlList parameters) { + if (parameters.length() != 2) + throw new IllegalArgumentException("Wrong number of parameters for TimestamDeltaCorrelator: " + parameters); + long minDt = (long) ((PlNumber) parameters.car()).intValue(); + parameters = (PlList) parameters.cdr(); + long maxDt = (long) ((PlNumber) parameters.car()).intValue(); + TimestampDeltaCorrelator correlator = new TimestampDeltaCorrelator(minDt, maxDt); + return correlator; + } + + /** + * Build an AND composite correlator + * @param parameters + * @return + */ + private Correlator buildAnd(PlList parameters) { + List<Correlator> composedCorrelators = new LinkedList<Correlator>(); + while (!parameters.isEmpty()) { + PlList descriptor = (PlList) parameters.car(); + Correlator composedCorrelator = buildCorrelator(descriptor); + composedCorrelators.add(composedCorrelator); + parameters = (PlList) parameters.cdr(); + } + AndCompositeCorrelator correlator = + new AndCompositeCorrelator(composedCorrelators); + return correlator; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.java new file mode 100755 index 0000000..efcc0f8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/correlatorbuilder/JavalogCorrelatorBuilder.java @@ -0,0 +1,37 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.correlatorbuilder; + +import org.isistan.flabot.engine.executionstate.correlation.Correlator; + +import JavaLog.PlList; + +/** + * Create a correlator using the given javalog descriptor PlList + * @author mblech + * + */ +public interface JavalogCorrelatorBuilder { + + public JavalogCorrelatorBuilder INSTANCE = new DefaultJavalogCorrelatorBuilder(); + + /** + * Correlator id constants + */ + public static final String AND_COMPOSITE = "and"; + public static final String TIMESTAMP_DELTA = "timestampDelta"; + public static final String SAME_THREAD = "sameThread"; + public static final String CALL_STACK_DISTANCE = "callStackDistance"; + public static final String SAME_INSTANCE = "sameInstance"; + public static final String LAST_EXECUTION = "lastExecution"; + + /** + * Build a correlator using the given descriptor PlList + * @param descriptor a PlList containing the correlator type id and + * its specific parameters + * @return a correlator + */ + public Correlator buildCorrelator(PlList descriptor); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl.java new file mode 100755 index 0000000..667051c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogTraceInferenceStrategyImpl.java @@ -0,0 +1,446 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogTraceInferenceStrategyImpl.java,v 1.17 2006/05/03 02:44:51 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.impl; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.swt.widgets.Shell; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.InterfaceContextInfo; +import org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.engine.executionstate.ExecutionstateFactory; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.StateDeterminationException; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceLogManagerException; +import org.isistan.flabot.engine.executionstate.impl.TraceInferenceStrategyImpl; +import org.isistan.flabot.engine.executionstate.javalogtrace.DefaultLogQueryPredicates; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; +import org.isistan.flabot.engine.executionstate.javalogtrace.LogQueryPredicates; +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngine; +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngineLocator; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.util.javalog.JavalogUtil; +import org.isistan.flabot.util.locator.ComponentLocatorException; + +import JavaLog.LogicKnowledge; +import JavaLog.PlClause; +import JavaLog.PlException; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Javalog Trace Inference Strategy</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogTraceInferenceStrategyImpl#getPrologCode <em>Prolog Code</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class JavalogTraceInferenceStrategyImpl extends TraceInferenceStrategyImpl implements JavalogTraceInferenceStrategy { + /** + * @author usuario + * + */ + public class AcceptAllMapping { + + } + + /** + * The default value of the '{@link #getPrologCode() <em>Prolog Code</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologCode() + * @generated NOT + * @ordered + */ + protected static final String PROLOG_CODE_EDEFAULT = + "executionState(\'Faulty\') :-\n\texecutionTag(T), isExitError(T).\n\n" + + "executionState(\'Executed\') :-\n\texecutionTag(_).\n\n" + + "executionState(\'NotExecuted\')."; + + /** + * The cached value of the '{@link #getPrologCode() <em>Prolog Code</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologCode() + * @generated + * @ordered + */ + protected String prologCode = PROLOG_CODE_EDEFAULT; + + private TraceInferenceJavalogEngine oldEngine; + + private LogicKnowledge knowledge; + + private LogQueryPredicates logQueryPredicates; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavalogTraceInferenceStrategyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return JavalogtracePackage.eINSTANCE.getJavalogTraceInferenceStrategy(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getPrologCode() { + return prologCode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPrologCode(String newPrologCode) { + String oldPrologCode = prologCode; + prologCode = newPrologCode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE, oldPrologCode, prologCode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); + } + } + if (eContainer != null) + msgs = eBasicRemoveFromContainer(msgs); + return eBasicSetContainer(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eBasicSetContainer(null, JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { + if (eContainerFeatureID >= 0) { + switch (eContainerFeatureID) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return eContainer.eInverseRemove(this, ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY__TRACE_INFERENCE_STRATEGY, TraceBasedStateDeterminationStrategy.class, msgs); + default: + return eDynamicBasicRemoveFromContainer(msgs); + } + } + return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy(); + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE: + return getPrologCode(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)newValue); + return; + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE: + setPrologCode((String)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + setStateDeterminationStrategy((TraceBasedStateDeterminationStrategy)null); + return; + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE: + setPrologCode(PROLOG_CODE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__STATE_DETERMINATION_STRATEGY: + return getStateDeterminationStrategy() != null; + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE: + return PROLOG_CODE_EDEFAULT == null ? prologCode != null : !PROLOG_CODE_EDEFAULT.equals(prologCode); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (prologCode: "); + result.append(prologCode); + result.append(')'); + return result.toString(); + } + + public Diagnostic getState(ResponsibilityNode node, Map engineContext) throws StateDeterminationException, TraceLogManagerException { + try { + // extract the responsibility id parameter + String responsibilityId = JavalogUtil.INSTANCE.escapePrologString(node.getID()); + if (responsibilityId == null) + responsibilityId = ""; + + // extract the previous responsibility id parameter + String preResponsibilityId = + (String) engineContext.get(InterfaceContextInfo.PRE_RESPONSIBILITY); + if (preResponsibilityId == null) + preResponsibilityId = ""; + + // extract the event parameter + String eventId = (String) engineContext.get(InterfaceContextInfo.EVENT); + + // show tags before state determination TODO remove this, it's for debugging purposes only + List<Tag> tagListBefore = getStateDeterminationStrategy().getAllTags(); + /* TagFilterDialogManager.INSTANCE.filterTags( + "Unfiltered tags for responsibility: " + node.getName(), + tagListBefore, Collections.<Tag>emptyList());*/ + + String stateString = queryState(node, responsibilityId, + preResponsibilityId, eventId); + + // show tags after state determination TODO remove this, it's for debugging purposes only + List<Tag> tagListAfter = getStateDeterminationStrategy().getLastTags(); +/* TagFilterDialogManager.INSTANCE.filterTags( + "Analyzed tags for responsibility: " + node.getName(), + tagListAfter, Collections.<Tag>emptyList());*/ + + if (stateString == null) + throw new StateDeterminationException( + "Couldn't determine state because the prolog query returned null"); + + ExecutionState state = ExecutionState.get(stateString); + if (state == null) + throw new StateDeterminationException( + "Couldn't determine state because the prolog query returned an " + + "unknown state string: \"" + stateString + "\""); + // execution state converted + + Diagnostic diagnostic = ExecutionstateFactory.eINSTANCE.createDiagnostic(); + diagnostic.setState(state); + diagnostic.setDiagnostician(this.getStateDeterminationStrategy()); + diagnostic.setDescription("State determined using the javalog-based trace inference strategy"); + + List<Tag> tags = getStateDeterminationStrategy().getLastTags(); + diagnostic.getAdditionalData().put(TraceBasedStateDeterminationStrategy.ANALYZED_TAGS_KEY, tags); + + ResponsibilityExecutionStateDialog dialog = new ResponsibilityExecutionStateDialog(new Shell()); + + dialog.setExecutionInfo(node, engineContext); + dialog.setDiagnosticInfo(diagnostic, tagListBefore, tagListAfter); + diagnostic.setState( dialog.run(diagnostic.getState()) ); + + return diagnostic; + + } catch (ComponentLocatorException e) { + throw new StateDeterminationException( + "Exception trying to locate the TraceInferenceJavalogEngine", + e); + } catch (PlException e) { + throw new StateDeterminationException( + "Exception querying the javalog engine for the execution state", + e); + } + } + + /** + * Execute the prolog query to obtain the execution state + * @param node the responsibility node + * @param responsibilityId the current responsibility id + * @param preResponsibilityId the previous responsibility id + * @param eventId the event id + * @return the result of the prolog state query (a String) + * @throws ComponentLocatorException + * @throws TraceLogManagerException + * @throws PlException + * @throws StateDeterminationException + */ + private String queryState(ResponsibilityNode node, String responsibilityId, String preResponsibilityId, String eventId) throws ComponentLocatorException, TraceLogManagerException, PlException{ + // get the javalog engine + TraceInferenceJavalogEngine engine = getEngine(); + + // enable this strategy's knowledge + knowledge.enable(); + + // retract the cached tags + engine.executeQuery("retract(cachedCorrelatedTags('" + responsibilityId + "', _))."); + + // overwrite the responsibility's current scope + engine.executeQuery("retract(scope('" + responsibilityId + "', _))."); + Mapping currentScope = getStateDeterminationStrategy().getCurrentScope(); + if (currentScope == null) { + engine.getBrain() + .answerQuery("assert(scope('" + responsibilityId + "', null))."); + } + else { + engine.getBrain() + .answerQuery("assert(scope('" + responsibilityId + "', $0)).", + new Object[]{currentScope}); + } + + // query the engine + Object stateAtom = + engine.executeQuery("executionState($0, $1, $2, $3, State).", + new Object[]{getLogQueryPredicates(engine), + responsibilityId, preResponsibilityId, eventId}, + "State"); + + // diable this strategy's knowledge + knowledge.disable(); + + // transform query result to an ExecutionState instance + if (stateAtom == null) + return null; + + return JavalogUtil.INSTANCE.escapePrologString(stateAtom.toString()); + } + + /** + * Get the log query predicates + * @return + */ + private LogQueryPredicates getLogQueryPredicates(TraceInferenceJavalogEngine engine) { + if (logQueryPredicates == null || logQueryPredicates.getEngine() != engine) { + logQueryPredicates = new DefaultLogQueryPredicates( + EnginePlugin.getDefault().getWorkbench().getDisplay(), + this, engine); + } + return logQueryPredicates; + } + + /** + * Locate the engine, initialize it and the logic knowledge, and then return it + * @return the engine + * @throws ComponentLocatorException + * @throws TraceLogManagerException + * @throws PlException + * @throws StateDeterminationException + */ + private TraceInferenceJavalogEngine getEngine() throws ComponentLocatorException, TraceLogManagerException, PlException { + // locate the engine + TraceInferenceJavalogEngine engine = (TraceInferenceJavalogEngine) + FlabotPlugin.getDefault().getComponentLocatorManager().getComponent( + TraceInferenceJavalogEngineLocator.LOCATOR_ID, + Collections.singletonMap( + TraceInferenceJavalogEngineLocator.PARAMETER_TRACE_LOG, + getStateDeterminationStrategy().getCurrentLog() + ) + ); + if (oldEngine == null) + oldEngine = engine; + + // add this strategy's prolog code as a logic knowledge + if (knowledge == null || oldEngine != engine) { + knowledge = new LogicKnowledge(engine.getBrain(), ""); + // add prolog code clause by clause + String prologCode = getPrologCode(); + List<String> prologClauses = JavalogUtil.INSTANCE.splitClauses(prologCode); + for (String prologClauseString: prologClauses) { + PlClause clause = JavalogUtil.INSTANCE.mkClause(engine.getBrain().parser().eQuery(prologClauseString)); + if (clause == null) + throw new PlException("Error parsing prolog clause:\n\"" + prologClauseString + "\""); + knowledge.add(clause); + } + + engine.getBrain().addKnowledge(knowledge); + oldEngine = engine; + } + return engine; + } + +} //JavalogTraceInferenceStrategyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtraceFactoryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtraceFactoryImpl.java new file mode 100755 index 0000000..01f4e33 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtraceFactoryImpl.java @@ -0,0 +1,78 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtraceFactoryImpl.java,v 1.10 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.isistan.flabot.engine.executionstate.javalogtrace.*; + +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtraceFactory; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class JavalogtraceFactoryImpl extends EFactoryImpl implements JavalogtraceFactory { + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogtraceFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY: return createJavalogTraceInferenceStrategy(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogTraceInferenceStrategy createJavalogTraceInferenceStrategy() { + JavalogTraceInferenceStrategyImpl javalogTraceInferenceStrategy = new JavalogTraceInferenceStrategyImpl(); + return javalogTraceInferenceStrategy; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogtracePackage getJavalogtracePackage() { + return (JavalogtracePackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static JavalogtracePackage getPackage() { + return JavalogtracePackage.eINSTANCE; + } + +} //JavalogtraceFactoryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtracePackageImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtracePackageImpl.java new file mode 100755 index 0000000..da0bfb1 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/impl/JavalogtracePackageImpl.java @@ -0,0 +1,224 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtracePackageImpl.java,v 1.6 2006/03/22 03:28:55 franco Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.isistan.flabot.coremodel.impl.CoremodelPackageImpl; +import org.isistan.flabot.edit.componentmodel.impl.ComponentmodelPackageImpl; +import org.isistan.flabot.edit.editormodel.impl.EditormodelPackageImpl; +import org.isistan.flabot.edit.ucmmodel.impl.UcmmodelPackageImpl; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtraceFactory; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; +import org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl; +import org.isistan.flabot.launcher.filter.filtermodel.impl.FiltermodelPackageImpl; +import org.isistan.flabot.mapping.mappingmodel.impl.MappingmodelPackageImpl; +import org.isistan.flabot.trace.config.impl.ConfigPackageImpl; +import org.isistan.flabot.trace.log.impl.LogPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class JavalogtracePackageImpl extends EPackageImpl implements JavalogtracePackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass javalogTraceInferenceStrategyEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage#eNS_URI + * @see #init() + * @generated + */ + private JavalogtracePackageImpl() { + super(eNS_URI, JavalogtraceFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this + * model, and for any others upon which it depends. Simple + * dependencies are satisfied by calling this method on all + * dependent packages before doing anything else. This method drives + * initialization for interdependent packages directly, in parallel + * with this package, itself. + * <p>Of this package and its interdependencies, all packages which + * have not yet been registered by their URI values are first created + * and registered. The packages are then initialized in two steps: + * meta-model objects for all of the packages are created before any + * are initialized, since one package's meta-model objects may refer to + * those of another. + * <p>Invocation of this method will not affect any packages that have + * already been initialized. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static JavalogtracePackage init() { + if (isInited) return (JavalogtracePackage)EPackage.Registry.INSTANCE.getEPackage(JavalogtracePackage.eNS_URI); + + // Obtain or create and register package + JavalogtracePackageImpl theJavalogtracePackage = (JavalogtracePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof JavalogtracePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new JavalogtracePackageImpl()); + + isInited = true; + + // Initialize simple dependencies + EditormodelPackageImpl.init(); + ComponentmodelPackageImpl.init(); + UcmmodelPackageImpl.init(); + CoremodelPackageImpl.init(); + ConfigPackageImpl.init(); + LogPackageImpl.init(); + MappingmodelPackageImpl.init(); + FiltermodelPackageImpl.init(); + EditormodelPackageImpl.init(); + ComponentmodelPackageImpl.init(); + UcmmodelPackageImpl.init(); + CoremodelPackageImpl.init(); + FiltermodelPackageImpl.init(); + ConfigPackageImpl.init(); + LogPackageImpl.init(); + MappingmodelPackageImpl.init(); + + // Obtain or create and register interdependencies + ExecutionmodelPackageImpl theExecutionmodelPackage = (ExecutionmodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExecutionmodelPackage.eNS_URI) instanceof ExecutionmodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExecutionmodelPackage.eNS_URI) : ExecutionmodelPackage.eINSTANCE); + ExecutionstatePackageImpl theExecutionstatePackage = (ExecutionstatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI) instanceof ExecutionstatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI) : ExecutionstatePackage.eINSTANCE); + + // Create package meta-data objects + theJavalogtracePackage.createPackageContents(); + theExecutionmodelPackage.createPackageContents(); + theExecutionstatePackage.createPackageContents(); + + // Initialize created meta-data + theJavalogtracePackage.initializePackageContents(); + theExecutionmodelPackage.initializePackageContents(); + theExecutionstatePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theJavalogtracePackage.freeze(); + + return theJavalogtracePackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getJavalogTraceInferenceStrategy() { + return javalogTraceInferenceStrategyEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getJavalogTraceInferenceStrategy_PrologCode() { + return (EAttribute)javalogTraceInferenceStrategyEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogtraceFactory getJavalogtraceFactory() { + return (JavalogtraceFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + javalogTraceInferenceStrategyEClass = createEClass(JAVALOG_TRACE_INFERENCE_STRATEGY); + createEAttribute(javalogTraceInferenceStrategyEClass, JAVALOG_TRACE_INFERENCE_STRATEGY__PROLOG_CODE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + ExecutionstatePackageImpl theExecutionstatePackage = (ExecutionstatePackageImpl)EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI); + + // Add supertypes to classes + javalogTraceInferenceStrategyEClass.getESuperTypes().add(theExecutionstatePackage.getTraceInferenceStrategy()); + + // Initialize classes and features; add operations and parameters + initEClass(javalogTraceInferenceStrategyEClass, JavalogTraceInferenceStrategy.class, "JavalogTraceInferenceStrategy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getJavalogTraceInferenceStrategy_PrologCode(), ecorePackage.getEString(), "prologCode", "executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted').", 0, 1, JavalogTraceInferenceStrategy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //JavalogtracePackageImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/DefaultJavalogTagFilterBuilder.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/DefaultJavalogTagFilterBuilder.java new file mode 100755 index 0000000..5aeff07 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/DefaultJavalogTagFilterBuilder.java @@ -0,0 +1,94 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.tagfilterbuilder; + +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngine; +import org.isistan.flabot.engine.executionstate.tagfilter.AcceptAllFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.AndCompositeFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.InstanceClassSubstringFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.JavalogFilter; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; +import org.isistan.flabot.util.javalog.JavalogUtil; + +import JavaLog.PlList; + +/** + * Default tag filter builder + * @author mblech + * + */ +public class DefaultJavalogTagFilterBuilder implements JavalogTagFilterBuilder { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.javalogtrace.scopebuilder.JavalogTagScopeBuilder#buildScope(JavaLog.PlList) + */ + public TagFilter buildFilter(PlList descriptor, TraceInferenceJavalogEngine engine) { + if (descriptor == null || descriptor.isEmpty()) + return new AcceptAllFilter(); + String filterKey = JavalogUtil.INSTANCE.escapePrologString( + descriptor.car().toString()); + PlList parameters = (PlList) descriptor.cdr(); + + if (filterKey.equals(JavalogTagFilterBuilder.FILTER_KEY_AND_COMPOSITE)) { + return buildAndComposite(parameters, engine); + } + if (filterKey.equals(JavalogTagFilterBuilder.FILTER_KEY_INSTANCE_CLASS_SUBSTRING)) { + return buildInstanceClassSubstringFilter(parameters); + } + if (filterKey.equals(JavalogTagFilterBuilder.FILTER_KEY_JAVALOG)) { + return buildJavalogFilter(parameters, engine); + } + + throw new IllegalArgumentException("Unknown tag filter key: " + filterKey); + } + + /** + * Build an and composite filter + * @param parameters + * @return + */ + private TagFilter buildAndComposite(PlList parameters, TraceInferenceJavalogEngine engine) { + List<TagFilter> composedFilters = new LinkedList<TagFilter>(); + while (parameters != null && !parameters.isEmpty()) { + PlList composedFilterDescriptor = (PlList) parameters.car(); + TagFilter composedFilter = buildFilter(composedFilterDescriptor, engine); + composedFilters.add(composedFilter); + parameters = (PlList) parameters.cdr(); + } + AndCompositeFilter filter = new AndCompositeFilter(composedFilters); + return filter; + } + + /** + * Build an instance class substring filter + * @param parameters + * @return + */ + private TagFilter buildInstanceClassSubstringFilter(PlList parameters) { + Set<String> prefixes = new HashSet<String>(); + while (parameters != null && !parameters.isEmpty()) { + String prefix = parameters.car().toString(); + prefix = JavalogUtil.INSTANCE.escapePrologString(prefix); + prefixes.add(prefix); + parameters = (PlList) parameters.cdr(); + } + return new InstanceClassSubstringFilter(prefixes); + } + + private TagFilter buildJavalogFilter(PlList parameters, TraceInferenceJavalogEngine engine) { + if (parameters == null || parameters.length() == 0) + throw new IllegalArgumentException("Javalog filter needs a query parameter"); + if (parameters.length() > 1) + throw new IllegalArgumentException("Javalog filter takes only 1 parameter"); + String query = JavalogUtil.INSTANCE.escapePrologString( + parameters.car().toString()); + JavalogFilter filter = new JavalogFilter(engine, query); + return filter; + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.java new file mode 100755 index 0000000..f24e599 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/tagfilterbuilder/JavalogTagFilterBuilder.java @@ -0,0 +1,35 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.tagfilterbuilder; + +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngine; +import org.isistan.flabot.engine.executionstate.tagfilter.TagFilter; + +import JavaLog.PlList; + +/** + * Builds a tag filter using a javalog descriptor + * @author mblech + * + */ +public interface JavalogTagFilterBuilder { + + /** + * The implementation instance for JavalogTagFilterBuilder + */ + public static final JavalogTagFilterBuilder INSTANCE = new DefaultJavalogTagFilterBuilder(); + + public static final String FILTER_KEY_AND_COMPOSITE = "and"; + public static final String FILTER_KEY_INSTANCE_CLASS_SUBSTRING = "instanceClassSubstring"; + public static final String FILTER_KEY_JAVALOG = "javalog"; + + /** + * Build a tag filter using the given PlList descriptor + * @param descriptor the PlList descriptor + * @param engine TODO + * @return the tag filter + */ + TagFilter buildFilter(PlList descriptor, TraceInferenceJavalogEngine engine); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.java new file mode 100755 index 0000000..d9dfff0 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceAdapterFactory.java @@ -0,0 +1,138 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtraceAdapterFactory.java,v 1.9 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.*; + +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage + * @generated + */ +public class JavalogtraceAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static JavalogtracePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogtraceAdapterFactory() { + if (modelPackage == null) { + modelPackage = JavalogtracePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch the delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected JavalogtraceSwitch modelSwitch = + new JavalogtraceSwitch() { + public Object caseJavalogTraceInferenceStrategy(JavalogTraceInferenceStrategy object) { + return createJavalogTraceInferenceStrategyAdapter(); + } + public Object caseTraceInferenceStrategy(TraceInferenceStrategy object) { + return createTraceInferenceStrategyAdapter(); + } + public Object defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + public Adapter createAdapter(Notifier target) { + return (Adapter)modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy <em>Javalog Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy + * @generated + */ + public Adapter createJavalogTraceInferenceStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.TraceInferenceStrategy <em>Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.TraceInferenceStrategy + * @generated + */ + public Adapter createTraceInferenceStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //JavalogtraceAdapterFactory diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.java new file mode 100755 index 0000000..3097b2e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/javalogtrace/util/JavalogtraceSwitch.java @@ -0,0 +1,149 @@ +/** + * <copyright> + * </copyright> + * + * $Id: JavalogtraceSwitch.java,v 1.9 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.javalogtrace.util; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.*; + +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage + * @generated + */ +public class JavalogtraceSwitch { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static JavalogtracePackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public JavalogtraceSwitch() { + if (modelPackage == null) { + modelPackage = JavalogtracePackage.eINSTANCE; + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + public Object doSwitch(EObject theEObject) { + return doSwitch(theEObject.eClass(), theEObject); + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(EClass theEClass, EObject theEObject) { + if (theEClass.eContainer() == modelPackage) { + return doSwitch(theEClass.getClassifierID(), theEObject); + } + else { + List eSuperTypes = theEClass.getESuperTypes(); + return + eSuperTypes.isEmpty() ? + defaultCase(theEObject) : + doSwitch((EClass)eSuperTypes.get(0), theEObject); + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case JavalogtracePackage.JAVALOG_TRACE_INFERENCE_STRATEGY: { + JavalogTraceInferenceStrategy javalogTraceInferenceStrategy = (JavalogTraceInferenceStrategy)theEObject; + Object result = caseJavalogTraceInferenceStrategy(javalogTraceInferenceStrategy); + if (result == null) result = caseTraceInferenceStrategy(javalogTraceInferenceStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Javalog Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Javalog Trace Inference Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseJavalogTraceInferenceStrategy(JavalogTraceInferenceStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Trace Inference Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTraceInferenceStrategy(TraceInferenceStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + public Object defaultCase(EObject object) { + return null; + } + +} //JavalogtraceSwitch diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.java new file mode 100755 index 0000000..7f6a745 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AcceptAllFilter.java @@ -0,0 +1,19 @@ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import org.isistan.flabot.trace.log.Tag; + +/** + * AllScope: accepts all tags + * @author mblech + * + */ +public class AcceptAllFilter implements TagFilter { + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.scope.TagScope#accepts(org.isistan.flabot.trace.log.Tag) + */ + public boolean accepts(Tag executionTag) { + return true; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.java new file mode 100755 index 0000000..dab4fb1 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/AndCompositeFilter.java @@ -0,0 +1,39 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import java.util.Collection; + +import org.isistan.flabot.trace.log.Tag; + +/** + * And composite tag filter. Accepts tags when all the composed tags accept it. + * @author mblech + * + */ +public class AndCompositeFilter implements TagFilter { + + private Collection<TagFilter> composedFilters; + + /** + * Create a new instance of the and composite filter that uses the given + * collection of composed filters + * @param composedFilters + */ + public AndCompositeFilter(Collection<TagFilter> composedFilters) { + this.composedFilters = composedFilters; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.tagfilter.TagFilter#accepts(org.isistan.flabot.trace.log.Tag) + */ + public boolean accepts(Tag executionTag) { + for (TagFilter filter: composedFilters) { + if (!filter.accepts(executionTag)) + return false; + } + return true; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ClassTagJClass.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ClassTagJClass.java new file mode 100755 index 0000000..351c84a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ClassTagJClass.java @@ -0,0 +1,615 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import org.isistan.flabot.javamodel.JAnnotation; +import org.isistan.flabot.javamodel.JArray; +import org.isistan.flabot.javamodel.JBehavior; +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.javamodel.JClassLoader; +import org.isistan.flabot.javamodel.JConstructor; +import org.isistan.flabot.javamodel.JEnum; +import org.isistan.flabot.javamodel.JField; +import org.isistan.flabot.javamodel.JMethod; +import org.isistan.flabot.javamodel.JObject; +import org.isistan.flabot.javamodel.JPackage; +import org.isistan.flabot.javamodel.JSourceLocation; +import org.isistan.flabot.javamodel.JType; +import org.isistan.flabot.javamodel.JTypeVariable; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * JClass implementation for class tags + * @author mblech + * + */ +public class ClassTagJClass implements JClass { + + private Tag classTag; + + public ClassTagJClass(Tag classTag) { + this.classTag = classTag; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#newInstance() + */ + public JObject newInstance() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isInstance(org.isistan.flabot.javamodel.JObject) + */ + public boolean isInstance(JObject obj) { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isAssignableFrom(org.isistan.flabot.javamodel.JClass) + */ + public boolean isAssignableFrom(JClass cls) { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isInterface() + */ + public boolean isInterface() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isArray() + */ + public boolean isArray() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isPrimitive() + */ + public boolean isPrimitive() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isAnnotation() + */ + public boolean isAnnotation() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isSynthetic() + */ + public boolean isSynthetic() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getName() + */ + public String getName() { + return TagQueryUtil.INSTANCE.getClassDescriptor(classTag); + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getJNIName() + */ + public String getJNIName() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getClassLoader() + */ + public JClassLoader getClassLoader() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getTypeParameters() + */ + public JArray<? extends JTypeVariable> getTypeParameters() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getSuperclass() + */ + public JClass getSuperclass() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getGenericSuperclass() + */ + public JType getGenericSuperclass() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getPackage() + */ + public JPackage getPackage() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getInterfaces() + */ + public JArray<? extends JClass> getInterfaces() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getGenericInterfaces() + */ + public JArray<? extends JType> getGenericInterfaces() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getComponentType() + */ + public JClass getComponentType() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getModifiers() + */ + public int getModifiers() { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getSigners() + */ + public JArray<? extends JObject> getSigners() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getEnclosingMethod() + */ + public JMethod getEnclosingMethod() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getEnclosingConstructor() + */ + public JConstructor getEnclosingConstructor() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getEnclosingBehavior() + */ + public JBehavior getEnclosingBehavior() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaringClass() + */ + public JClass getDeclaringClass() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getEnclosingClass() + */ + public JClass getEnclosingClass() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getSimpleName() + */ + public String getSimpleName() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getCanonicalName() + */ + public String getCanonicalName() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isAnonymousClass() + */ + public boolean isAnonymousClass() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isLocalClass() + */ + public boolean isLocalClass() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isMemberClass() + */ + public boolean isMemberClass() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getClasses() + */ + public JArray<? extends JClass> getClasses() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getFields() + */ + public JArray<? extends JField> getFields() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getMethods() + */ + public JArray<? extends JMethod> getMethods() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getConstructors() + */ + public JArray<? extends JConstructor> getConstructors() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getBehaviors() + */ + public JArray<? extends JBehavior> getBehaviors() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getField(java.lang.String) + */ + public JField getField(String name) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getMethod(java.lang.String, org.isistan.flabot.javamodel.JArray) + */ + public JMethod getMethod(String name, + JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getConstructor(org.isistan.flabot.javamodel.JArray) + */ + public JConstructor getConstructor(JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getBehavior(java.lang.String, org.isistan.flabot.javamodel.JArray) + */ + public JBehavior getBehavior(String name, + JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredClasses() + */ + public JArray<? extends JClass> getDeclaredClasses() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredFields() + */ + public JArray<? extends JField> getDeclaredFields() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredMethods() + */ + public JArray<? extends JMethod> getDeclaredMethods() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredConstructors() + */ + public JArray<? extends JConstructor> getDeclaredConstructors() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredBehaviors() + */ + public JArray<? extends JBehavior> getDeclaredBehaviors() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredField(java.lang.String) + */ + public JField getDeclaredField(String name) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredMethod(java.lang.String, org.isistan.flabot.javamodel.JArray) + */ + public JMethod getDeclaredMethod(String name, + JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredConstructor(org.isistan.flabot.javamodel.JArray) + */ + public JConstructor getDeclaredConstructor( + JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getDeclaredBehavior(java.lang.String, org.isistan.flabot.javamodel.JArray) + */ + public JBehavior getDeclaredBehavior(String name, + JArray<? extends JClass> parameterTypes) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getResourceAsStream(java.lang.String) + */ + public JObject getResourceAsStream(String name) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getResource(java.lang.String) + */ + public JObject getResource(String name) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getProtectionDomain() + */ + public JObject getProtectionDomain() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#desiredAssertionStatus() + */ + public boolean desiredAssertionStatus() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#isEnum() + */ + public boolean isEnum() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JClass#getEnumConstants() + */ + public JArray<? extends JEnum> getEnumConstants() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#isPrimitiveValue() + */ + public boolean isPrimitiveValue() { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#getId() + */ + public long getId() { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#getObjectClass() + */ + public JClass getObjectClass() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectHashCode() + */ + public int objectHashCode() { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#systemHashCode() + */ + public int systemHashCode() { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectEquals(org.isistan.flabot.javamodel.JObject) + */ + public boolean objectEquals(JObject other) { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectToString() + */ + public String objectToString() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectNotify() + */ + public void objectNotify() { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectNotifyAll() + */ + public void objectNotifyAll() { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectWait(long) + */ + public void objectWait(long timeout) throws InterruptedException { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectWait(long, int) + */ + public void objectWait(long timeout, int nanos) throws InterruptedException { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JObject#objectWait() + */ + public void objectWait() throws InterruptedException { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JAnnotatedElement#isAnnotationPresent(org.isistan.flabot.javamodel.JClass) + */ + public boolean isAnnotationPresent(JClass annotationType) { + // TODO Auto-generated method stub + return false; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JAnnotatedElement#getAnnotation(org.isistan.flabot.javamodel.JClass) + */ + public JAnnotation getAnnotation(JClass annotationType) { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JAnnotatedElement#getAnnotations() + */ + public JArray<? extends JAnnotation> getAnnotations() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.javamodel.JAnnotatedElement#getDeclaredAnnotations() + */ + public JArray<? extends JAnnotation> getDeclaredAnnotations() { + // TODO Auto-generated method stub + return null; + } + + public JArray<? extends JClass> getSubclasses(boolean onlyDirect) { + // TODO Auto-generated method stub + return null; + } + + public JSourceLocation getSourceLocation() { + // TODO Auto-generated method stub + return null; + } + + public String getDescriptor() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.java new file mode 100755 index 0000000..77185b8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/ComponentScopeTagFilter.java @@ -0,0 +1,44 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import org.isistan.flabot.javamodel.JClass; +import org.isistan.flabot.mapping.mappingmodel.Mapping; +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; +import org.isistan.flabot.util.TriState; + +/** + * Filters tags using a component's scope + * @author mblech + * + */ +public class ComponentScopeTagFilter implements TagFilter { + + private Mapping mapping; + + /** + * Create a new instance of ComponentScopeTagFilter for + * the given mapping + * @param component + */ + public ComponentScopeTagFilter(Mapping mapping) { + this.mapping = mapping; + } + + public boolean accepts(Tag executionTag) { + if (mapping == null) + return true; + Tag snapshot = TagQueryUtil.INSTANCE.getExecutionInstanceSnapshot(executionTag); + Tag object = TagQueryUtil.INSTANCE.getObject(snapshot); + Tag classTag = TagQueryUtil.INSTANCE.getObjectClass(object); + if (classTag == null) { + // the class is null, it was a static method or a constructor + return true; + } + JClass jClass = new ClassTagJClass(classTag); + return mapping.passes(jClass).equals(TriState.TRUE); + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/InstanceClassSubstringFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/InstanceClassSubstringFilter.java new file mode 100755 index 0000000..b72e8dc --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/InstanceClassSubstringFilter.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import java.util.Collection; + +import org.isistan.flabot.trace.log.Tag; +import org.isistan.flabot.trace.log.tagquery.TagQueryUtil; + +/** + * Scope that is specified with a collection of substrings. Accepts tags + * whose execution instance's class name contains any of the given + * substrings + * @author mblech + * + */ +public class InstanceClassSubstringFilter implements TagFilter { + + private Collection<String> substrings; + + /** + * Create an instance of PrefixTagScope for the given + * collection of prefixes + * @param substrings + */ + public InstanceClassSubstringFilter(Collection<String> substrings) { + this.substrings = substrings; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.scope.TagScope#accepts(org.isistan.flabot.trace.log.Tag) + */ + public boolean accepts(Tag executionTag) { + if (substrings.isEmpty()) + return true; + Tag snapshot = TagQueryUtil.INSTANCE.getExecutionInstanceSnapshot(executionTag); + Tag object = TagQueryUtil.INSTANCE.getObject(snapshot); + Tag clazz = TagQueryUtil.INSTANCE.getObjectClass(object); + String classDescriptor = TagQueryUtil.INSTANCE.getClassDescriptor(clazz); + if (classDescriptor == null) + return false; + for (String substring: substrings) { + if (substring.equals("*")) + return true; + if (classDescriptor.contains(substring)) + return true; + } + return false; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.java new file mode 100755 index 0000000..9d33b9a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/JavalogFilter.java @@ -0,0 +1,45 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import org.isistan.flabot.engine.executionstate.javalogtrace.TraceInferenceJavalogEngine; +import org.isistan.flabot.trace.log.Tag; + +/** + * Tag filter implemented as a javalog query + * @author mblech + * + */ +public class JavalogFilter implements TagFilter { + + private TraceInferenceJavalogEngine engine; + private String query; + + /** + * Create a new instance of javalog filter that uses the given engine + * and functor + * @param engine the javalog engine + * @param query the query + */ + public JavalogFilter(TraceInferenceJavalogEngine engine, String query) { + if (engine == null) + throw new IllegalArgumentException("Engine can't be null"); + if (query == null) + throw new IllegalArgumentException("Query can't be null"); + query = query.trim(); + if (query.length() == 0) + throw new IllegalArgumentException("Query can't be the empty string"); + this.engine = engine; + this.query = query + '.'; + } + + /* (non-Javadoc) + * @see org.isistan.flabot.engine.executionstate.scope.TagFilter#accepts(org.isistan.flabot.trace.log.Tag) + */ + public boolean accepts(Tag executionTag) { + boolean result = engine.getBrain().answerQuery(query, new Object[]{executionTag}); + return result; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.java new file mode 100755 index 0000000..2daf2d4 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/tagfilter/TagFilter.java @@ -0,0 +1,23 @@ +/** + * + */ +package org.isistan.flabot.engine.executionstate.tagfilter; + +import org.isistan.flabot.trace.log.Tag; + +/** + * Represents a scope that accepts or denies execution tags + * @author mblech + * + */ +public interface TagFilter { + + /** + * Check if this scope accepts the given execution tag or not + * @param executionTag the execution tag that must be checked + * against the scope + * @return true if the tag is accepted, false otherwise + */ + boolean accepts(Tag executionTag); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory.java new file mode 100755 index 0000000..03d0bf9 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateAdapterFactory.java @@ -0,0 +1,477 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionstateAdapterFactory.java,v 1.20 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.util; + +import java.util.Map; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.coremodel.Registrable; +import org.isistan.flabot.engine.executionstate.*; + +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.MappingBasedFilter; +import org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.gauge.GaugeFilter; +import org.isistan.flabot.trace.config.Filter; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage + * @generated + */ +public class ExecutionstateAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExecutionstatePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionstateAdapterFactory() { + if (modelPackage == null) { + modelPackage = ExecutionstatePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch the delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionstateSwitch modelSwitch = + new ExecutionstateSwitch() { + public Object caseBasicMappingBasedFilter(BasicMappingBasedFilter object) { + return createBasicMappingBasedFilterAdapter(); + } + public Object caseDiagnostic(Diagnostic object) { + return createDiagnosticAdapter(); + } + public Object caseManualStateDeterminationStrategy(ManualStateDeterminationStrategy object) { + return createManualStateDeterminationStrategyAdapter(); + } + public Object caseManualTraceInferenceStrategy(ManualTraceInferenceStrategy object) { + return createManualTraceInferenceStrategyAdapter(); + } + public Object caseMappingBasedFilter(MappingBasedFilter object) { + return createMappingBasedFilterAdapter(); + } + public Object caseSimpleTraceInferenceStrategy(SimpleTraceInferenceStrategy object) { + return createSimpleTraceInferenceStrategyAdapter(); + } + public Object caseStateDeterminationStrategy(StateDeterminationStrategy object) { + return createStateDeterminationStrategyAdapter(); + } + public Object caseStateDeterminationStrategyRegistry(StateDeterminationStrategyRegistry object) { + return createStateDeterminationStrategyRegistryAdapter(); + } + public Object caseTraceBasedStateDeterminationStrategy(TraceBasedStateDeterminationStrategy object) { + return createTraceBasedStateDeterminationStrategyAdapter(); + } + public Object caseTraceInferenceStrategy(TraceInferenceStrategy object) { + return createTraceInferenceStrategyAdapter(); + } + public Object caseResponsibilityToStateDeterminationStrategyMapEntry(Map.Entry object) { + return createResponsibilityToStateDeterminationStrategyMapEntryAdapter(); + } + public Object caseEStringToEJavaObjectMapEntry(Map.Entry object) { + return createEStringToEJavaObjectMapEntryAdapter(); + } + public Object caseStateFromMappingStateDeterminationStrategy(StateFromMappingStateDeterminationStrategy object) { + return createStateFromMappingStateDeterminationStrategyAdapter(); + } + public Object caseOrFilter(OrFilter object) { + return createOrFilterAdapter(); + } + public Object casePrologProviderStrategy(PrologProviderStrategy object) { + return createPrologProviderStrategyAdapter(); + } + public Object caseSimplePrologProviderStrategy(SimplePrologProviderStrategy object) { + return createSimplePrologProviderStrategyAdapter(); + } + public Object caseGeneralLogFilterStrategy(GeneralLogFilterStrategy object) { + return createGeneralLogFilterStrategyAdapter(); + } + public Object caseSimpleGeneralLogFilterStrategy(SimpleGeneralLogFilterStrategy object) { + return createSimpleGeneralLogFilterStrategyAdapter(); + } + public Object caseFilter_1(GaugeFilter object) { + return createFilter_1Adapter(); + } + public Object caseFilter(Filter object) { + return createFilterAdapter(); + } + public Object caseRegistrable(Registrable object) { + return createRegistrableAdapter(); + } + public Object defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return (Adapter)modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategy <em>State Determination Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategy + * @generated + */ + public Adapter createStateDeterminationStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Responsibility To State Determination Strategy Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createResponsibilityToStateDeterminationStrategyMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry <em>State Determination Strategy Registry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry + * @generated + */ + public Adapter createStateDeterminationStrategyRegistryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy <em>Manual State Determination Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy + * @generated + */ + public Adapter createManualStateDeterminationStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy <em>Trace Based State Determination Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy + * @generated + */ + public Adapter createTraceBasedStateDeterminationStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.TraceInferenceStrategy <em>Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.TraceInferenceStrategy + * @generated + */ + public Adapter createTraceInferenceStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy <em>Manual Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy + * @generated + */ + public Adapter createManualTraceInferenceStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy <em>Simple Trace Inference Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy + * @generated + */ + public Adapter createSimpleTraceInferenceStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.MappingBasedFilter <em>Mapping Based Filter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.MappingBasedFilter + * @generated + */ + public Adapter createMappingBasedFilterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.Diagnostic <em>Diagnostic</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.Diagnostic + * @generated + */ + public Adapter createDiagnosticAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>EString To EJava Object Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createEStringToEJavaObjectMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy <em>State From Mapping State Determination Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy + * @generated + */ + public Adapter createStateFromMappingStateDeterminationStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.OrFilter <em>Or Filter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.OrFilter + * @generated + */ + public Adapter createOrFilterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.PrologProviderStrategy <em>Prolog Provider Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.PrologProviderStrategy + * @generated + */ + public Adapter createPrologProviderStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy <em>Simple Prolog Provider Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.SimplePrologProviderStrategy + * @generated + */ + public Adapter createSimplePrologProviderStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy <em>General Log Filter Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.GeneralLogFilterStrategy + * @generated + */ + public Adapter createGeneralLogFilterStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy <em>Simple General Log Filter Strategy</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.SimpleGeneralLogFilterStrategy + * @generated + */ + public Adapter createSimpleGeneralLogFilterStrategyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter <em>Basic Mapping Based Filter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter + * @generated + */ + public Adapter createBasicMappingBasedFilterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.coremodel.Registrable <em>Registrable</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.coremodel.Registrable + * @generated + */ + public Adapter createRegistrableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.gauge.GaugeFilter <em>Filter 1</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.gauge.GaugeFilter + * @generated + */ + public Adapter createFilter_1Adapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.trace.config.Filter <em>Filter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.trace.config.Filter + * @generated + */ + public Adapter createFilterAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //ExecutionstateAdapterFactory diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateSwitch.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateSwitch.java new file mode 100755 index 0000000..67b33dd --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate/util/ExecutionstateSwitch.java @@ -0,0 +1,566 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionstateSwitch.java,v 1.20 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.engine.executionstate.util; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.coremodel.Registrable; +import org.isistan.flabot.engine.executionstate.*; + +import org.isistan.flabot.engine.executionstate.BasicMappingBasedFilter; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.ManualStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.ManualTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.MappingBasedFilter; +import org.isistan.flabot.engine.executionstate.SimpleTraceInferenceStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.StateDeterminationStrategyRegistry; +import org.isistan.flabot.engine.executionstate.StateFromMappingStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceBasedStateDeterminationStrategy; +import org.isistan.flabot.engine.executionstate.TraceInferenceStrategy; +import org.isistan.flabot.gauge.GaugeFilter; +import org.isistan.flabot.trace.config.Filter; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.isistan.flabot.engine.executionstate.ExecutionstatePackage + * @generated + */ +public class ExecutionstateSwitch { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExecutionstatePackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionstateSwitch() { + if (modelPackage == null) { + modelPackage = ExecutionstatePackage.eINSTANCE; + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + public Object doSwitch(EObject theEObject) { + return doSwitch(theEObject.eClass(), theEObject); + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(EClass theEClass, EObject theEObject) { + if (theEClass.eContainer() == modelPackage) { + return doSwitch(theEClass.getClassifierID(), theEObject); + } + else { + List eSuperTypes = theEClass.getESuperTypes(); + return + eSuperTypes.isEmpty() ? + defaultCase(theEObject) : + doSwitch((EClass)eSuperTypes.get(0), theEObject); + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case ExecutionstatePackage.BASIC_MAPPING_BASED_FILTER: { + BasicMappingBasedFilter basicMappingBasedFilter = (BasicMappingBasedFilter)theEObject; + Object result = caseBasicMappingBasedFilter(basicMappingBasedFilter); + if (result == null) result = caseMappingBasedFilter(basicMappingBasedFilter); + if (result == null) result = caseFilter(basicMappingBasedFilter); + if (result == null) result = caseFilter_1(basicMappingBasedFilter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.DIAGNOSTIC: { + Diagnostic diagnostic = (Diagnostic)theEObject; + Object result = caseDiagnostic(diagnostic); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.MANUAL_STATE_DETERMINATION_STRATEGY: { + ManualStateDeterminationStrategy manualStateDeterminationStrategy = (ManualStateDeterminationStrategy)theEObject; + Object result = caseManualStateDeterminationStrategy(manualStateDeterminationStrategy); + if (result == null) result = caseStateDeterminationStrategy(manualStateDeterminationStrategy); + if (result == null) result = caseRegistrable(manualStateDeterminationStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.MANUAL_TRACE_INFERENCE_STRATEGY: { + ManualTraceInferenceStrategy manualTraceInferenceStrategy = (ManualTraceInferenceStrategy)theEObject; + Object result = caseManualTraceInferenceStrategy(manualTraceInferenceStrategy); + if (result == null) result = caseTraceInferenceStrategy(manualTraceInferenceStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.MAPPING_BASED_FILTER: { + MappingBasedFilter mappingBasedFilter = (MappingBasedFilter)theEObject; + Object result = caseMappingBasedFilter(mappingBasedFilter); + if (result == null) result = caseFilter(mappingBasedFilter); + if (result == null) result = caseFilter_1(mappingBasedFilter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.SIMPLE_TRACE_INFERENCE_STRATEGY: { + SimpleTraceInferenceStrategy simpleTraceInferenceStrategy = (SimpleTraceInferenceStrategy)theEObject; + Object result = caseSimpleTraceInferenceStrategy(simpleTraceInferenceStrategy); + if (result == null) result = caseTraceInferenceStrategy(simpleTraceInferenceStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY: { + StateDeterminationStrategy stateDeterminationStrategy = (StateDeterminationStrategy)theEObject; + Object result = caseStateDeterminationStrategy(stateDeterminationStrategy); + if (result == null) result = caseRegistrable(stateDeterminationStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.STATE_DETERMINATION_STRATEGY_REGISTRY: { + StateDeterminationStrategyRegistry stateDeterminationStrategyRegistry = (StateDeterminationStrategyRegistry)theEObject; + Object result = caseStateDeterminationStrategyRegistry(stateDeterminationStrategyRegistry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.TRACE_BASED_STATE_DETERMINATION_STRATEGY: { + TraceBasedStateDeterminationStrategy traceBasedStateDeterminationStrategy = (TraceBasedStateDeterminationStrategy)theEObject; + Object result = caseTraceBasedStateDeterminationStrategy(traceBasedStateDeterminationStrategy); + if (result == null) result = caseStateDeterminationStrategy(traceBasedStateDeterminationStrategy); + if (result == null) result = caseRegistrable(traceBasedStateDeterminationStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.TRACE_INFERENCE_STRATEGY: { + TraceInferenceStrategy traceInferenceStrategy = (TraceInferenceStrategy)theEObject; + Object result = caseTraceInferenceStrategy(traceInferenceStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.RESPONSIBILITY_TO_STATE_DETERMINATION_STRATEGY_MAP_ENTRY: { + Map.Entry responsibilityToStateDeterminationStrategyMapEntry = (Map.Entry)theEObject; + Object result = caseResponsibilityToStateDeterminationStrategyMapEntry(responsibilityToStateDeterminationStrategyMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY: { + Map.Entry eStringToEJavaObjectMapEntry = (Map.Entry)theEObject; + Object result = caseEStringToEJavaObjectMapEntry(eStringToEJavaObjectMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.STATE_FROM_MAPPING_STATE_DETERMINATION_STRATEGY: { + StateFromMappingStateDeterminationStrategy stateFromMappingStateDeterminationStrategy = (StateFromMappingStateDeterminationStrategy)theEObject; + Object result = caseStateFromMappingStateDeterminationStrategy(stateFromMappingStateDeterminationStrategy); + if (result == null) result = caseStateDeterminationStrategy(stateFromMappingStateDeterminationStrategy); + if (result == null) result = caseRegistrable(stateFromMappingStateDeterminationStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.OR_FILTER: { + OrFilter orFilter = (OrFilter)theEObject; + Object result = caseOrFilter(orFilter); + if (result == null) result = caseFilter(orFilter); + if (result == null) result = caseFilter_1(orFilter); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.PROLOG_PROVIDER_STRATEGY: { + PrologProviderStrategy prologProviderStrategy = (PrologProviderStrategy)theEObject; + Object result = casePrologProviderStrategy(prologProviderStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.SIMPLE_PROLOG_PROVIDER_STRATEGY: { + SimplePrologProviderStrategy simplePrologProviderStrategy = (SimplePrologProviderStrategy)theEObject; + Object result = caseSimplePrologProviderStrategy(simplePrologProviderStrategy); + if (result == null) result = casePrologProviderStrategy(simplePrologProviderStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.GENERAL_LOG_FILTER_STRATEGY: { + GeneralLogFilterStrategy generalLogFilterStrategy = (GeneralLogFilterStrategy)theEObject; + Object result = caseGeneralLogFilterStrategy(generalLogFilterStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionstatePackage.SIMPLE_GENERAL_LOG_FILTER_STRATEGY: { + SimpleGeneralLogFilterStrategy simpleGeneralLogFilterStrategy = (SimpleGeneralLogFilterStrategy)theEObject; + Object result = caseSimpleGeneralLogFilterStrategy(simpleGeneralLogFilterStrategy); + if (result == null) result = caseGeneralLogFilterStrategy(simpleGeneralLogFilterStrategy); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpretting the object as an instance of '<em>State Determination Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>State Determination Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStateDeterminationStrategy(StateDeterminationStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Responsibility To State Determination Strategy Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Responsibility To State Determination Strategy Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseResponsibilityToStateDeterminationStrategyMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>State Determination Strategy Registry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>State Determination Strategy Registry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStateDeterminationStrategyRegistry(StateDeterminationStrategyRegistry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Manual State Determination Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Manual State Determination Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseManualStateDeterminationStrategy(ManualStateDeterminationStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Trace Based State Determination Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Trace Based State Determination Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTraceBasedStateDeterminationStrategy(TraceBasedStateDeterminationStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Trace Inference Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseTraceInferenceStrategy(TraceInferenceStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Manual Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Manual Trace Inference Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseManualTraceInferenceStrategy(ManualTraceInferenceStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Simple Trace Inference Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Simple Trace Inference Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSimpleTraceInferenceStrategy(SimpleTraceInferenceStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Mapping Based Filter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Mapping Based Filter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseMappingBasedFilter(MappingBasedFilter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Diagnostic</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Diagnostic</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDiagnostic(Diagnostic object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EString To EJava Object Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EString To EJava Object Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEStringToEJavaObjectMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>State From Mapping State Determination Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>State From Mapping State Determination Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseStateFromMappingStateDeterminationStrategy(StateFromMappingStateDeterminationStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Or Filter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Or Filter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseOrFilter(OrFilter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Prolog Provider Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Prolog Provider Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object casePrologProviderStrategy(PrologProviderStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Simple Prolog Provider Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Simple Prolog Provider Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSimplePrologProviderStrategy(SimplePrologProviderStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>General Log Filter Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>General Log Filter Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseGeneralLogFilterStrategy(GeneralLogFilterStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Simple General Log Filter Strategy</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Simple General Log Filter Strategy</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSimpleGeneralLogFilterStrategy(SimpleGeneralLogFilterStrategy object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Filter 1</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Filter 1</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFilter_1(GaugeFilter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Filter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Filter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseFilter(Filter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Basic Mapping Based Filter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Basic Mapping Based Filter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseBasicMappingBasedFilter(BasicMappingBasedFilter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Registrable</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Registrable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseRegistrable(Registrable object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + public Object defaultCase(EObject object) { + return null; + } + +} //ExecutionstateSwitch diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.java new file mode 100755 index 0000000..47ae032 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedAction.java @@ -0,0 +1,6 @@ +/** * $Id: FailureLocatedAction.java,v 1.3 2006/03/29 20:41:51 dacostae Exp $ * $Author: dacostae $ */ package org.isistan.flabot.engine.failurelocatedaction; + +import org.isistan.flabot.coremodel.ComponentRole; import org.isistan.flabot.coremodel.ResponsibilityNode; import org.isistan.flabot.util.problems.MessageAccumulator; /** * An action to be taken when the cause of a failure is found. * Implementors must provide a default constructor for the * FailureLocatedActionLocator to be able to instantiate it. * * @author $Author: dacostae $ * */ +public interface FailureLocatedAction { /** * Executes the action to be taken * @param responsibilityNode * @param messageAccumulator */ + public void execute(ResponsibilityNode responsibilityNode, ComponentRole role, MessageAccumulator messageAccumulator); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedActionLoader.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedActionLoader.java new file mode 100755 index 0000000..149e164 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/failurelocatedaction/FailureLocatedActionLoader.java @@ -0,0 +1,133 @@ +package org.isistan.flabot.engine.failurelocatedaction; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +import org.eclipse.swt.widgets.Shell; +import org.isistan.flabot.FlabotPlugin; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.ExtensionPointConstants; +import org.isistan.flabot.util.extension.ConfigurationElementHandler; +import org.isistan.flabot.util.extension.ExtensionPointHandler; +import org.isistan.flabot.util.extension.dialog.ExtensionSelectionDialog; +import org.isistan.flabot.util.extension.dialog.label.ConfigurationElementHandlerProvider; +import org.isistan.flabot.util.extension.dialog.label.DefaultConfigurationElementLabelProvider; +import org.isistan.flabot.util.problems.DefaultMessage; +import org.isistan.flabot.util.problems.MessageAccumulator; +import org.isistan.flabot.util.problems.MessageSeverity; +import org.isistan.flabot.util.resource.validator.SelectionSizeValidator; + +/** + * Loads contributed failure located actions + * @author $Author: dacostae $ + * + */ +public class FailureLocatedActionLoader { + + /** + * Returns failure located actions contributed in the given configuration elements + * @param messageAccumulator + * @return + */ + public static FailureLocatedAction[] getFailureLocatedActions( + ConfigurationElementHandler[] failureLocatedActionConfigurationElements, + MessageAccumulator messageAccumulator) { + + List<FailureLocatedAction> failureLocatedActions=new LinkedList<FailureLocatedAction>(); + + for (ConfigurationElementHandler configurationElement : failureLocatedActionConfigurationElements) { + + try { + Class<? extends FailureLocatedAction> clazz= + configurationElement.<FailureLocatedAction>getClass( + ExtensionPointConstants.FAILURE_LOCATED_ACTION__CLASS_ATTRIBUTE); + failureLocatedActions.add(clazz.newInstance()); + } catch (ClassNotFoundException e) { + handleError(messageAccumulator, configurationElement, + "Class " + configurationElement.getString(ExtensionPointConstants.FAILURE_LOCATED_ACTION__CLASS_ATTRIBUTE) + " not found.", + e); + + } catch (InstantiationException e) { + handleError(messageAccumulator, configurationElement, + "Cannot instantiate " + configurationElement.getString(ExtensionPointConstants.FAILURE_LOCATED_ACTION__CLASS_ATTRIBUTE) + ".", + e); + } catch (IllegalAccessException e) { + handleError(messageAccumulator, configurationElement, + "Cannot access constructor for " + configurationElement.getString(ExtensionPointConstants.FAILURE_LOCATED_ACTION__CLASS_ATTRIBUTE) + ".", + e); + } + } + return failureLocatedActions.toArray(new FailureLocatedAction[failureLocatedActions.size()]); + } + + /** + * Returns true if there are actions available + * @return + */ + public static boolean areFailureLocatedActions() { + ExtensionPointHandler extensionPoint=new ExtensionPointHandler( + ExtensionPointConstants.FAILURE_LOCATED_ACTION); + return extensionPoint.getExtensions().length!=0; + } + /** + * Returns all configuration elements for contributed failure located actions + * @param messageAccumulator + * @return + */ + public static ConfigurationElementHandler[] getFailureLocatedActionConfigurationElementHandlers( + MessageAccumulator messageAccumulator) { + ExtensionPointHandler extensionPoint=new ExtensionPointHandler( + ExtensionPointConstants.FAILURE_LOCATED_ACTION); + ConfigurationElementHandler[] configurationElements= + extensionPoint.getAllConfigurationElementHandlers( + ExtensionPointConstants.FAILURE_LOCATED_ACTION__ACTION_TAG); + return configurationElements; + } + + private static void handleError(MessageAccumulator messageAccumulator, ConfigurationElementHandler configurationElement, String description, Throwable e) { + messageAccumulator.addMessage(new DefaultMessage( + FlabotPlugin.getDefault(), + FlabotPlugin.SYMBOLIC_NAME, + MessageSeverity.ERROR, + "Error loading contributed responsibility edition tab item from " + configurationElement.getNamespace(), + description, + e)); + } + + + private static ExtensionSelectionDialog selectionDialog=null; + /** + * Shows a selecion dialog to let the user select some failure located actions + * @param shell + * @return + */ + public static FailureLocatedAction[] getUserSelectedFailureLocatedActions(Shell shell, MessageAccumulator messageAccumulator) { + ConfigurationElementHandler[] actionConfigurationElements= + FailureLocatedActionLoader.getFailureLocatedActionConfigurationElementHandlers( + messageAccumulator); + ConfigurationElementHandlerProvider labelProvider= + new DefaultConfigurationElementLabelProvider( + ExtensionPointConstants.FAILURE_LOCATED_ACTION__ICON_ATTRIBUTE, + ExtensionPointConstants.FAILURE_LOCATED_ACTION__NAME_ATTRIBUTE, + ExtensionPointConstants.FAILURE_LOCATED_ACTION__DESCRIPTION_ATTRIBUTE + ); + if(selectionDialog==null) { + selectionDialog=new ExtensionSelectionDialog(labelProvider, + new SelectionSizeValidator(EnginePlugin.SYMBOLIC_NAME, 1)); + } + + Collection<ConfigurationElementHandler> selectedActionConfigurationElements= + selectionDialog.openMultiple( + shell, "Failure Located Action Selection", + "Select one or more actions to be taken.", + actionConfigurationElements, + null); + if(selectedActionConfigurationElements==null) { + return new FailureLocatedAction[0]; + } + return FailureLocatedActionLoader.getFailureLocatedActions( + selectedActionConfigurationElements.toArray(new ConfigurationElementHandler[selectedActionConfigurationElements.size()]), + messageAccumulator); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_constraint.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_constraint.gif new file mode 100755 index 0000000000000000000000000000000000000000..503e9e81fc1d2545e1eed19054973e19c58582db GIT binary patch literal 87 zcmZ?wbhEHb)L`IeXkcXMZf^en|G(l-7Df&RMg|=QAOOiQFzNO5uRQ&he{oJi6x*x2 o%d+w^<t1w4#8RHmT9kEq-*Jzi;@GkZzxNUEqZyiA;u#sN0loJgv;Y7A literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_mapping.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_mapping.gif new file mode 100755 index 0000000000000000000000000000000000000000..7d1cae159fac84e36f595be5951327f679ac56ac GIT binary patch literal 85 zcmZ?wbhEHb)L`IeXkcLY_aB55f3h%gFfcOcFaQBahJi_^r+?+?xBQE95~A2%-CdTI kmnkn%8`rk%)u~M<Jc8I|l4E1pO!lSJ{Nv{0XJxPk08LCAn*aa+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_precondition.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_precondition.gif new file mode 100755 index 0000000000000000000000000000000000000000..6c22916517720a12dd257f4030a6e4a456eadf6f GIT binary patch literal 85 zcmZ?wbhEHb)L`IeXkY{q|A9d9CkrD710#bD0}y~@7?^Z=`d6NQ%fC1$A&TwQ-DO#M kneq~~aRtj>tlIXbsz*iid}{jrqQ19(9{uL5WM!}h0Chwk$^ZZW literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_previous.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/arrow_previous.gif new file mode 100755 index 0000000000000000000000000000000000000000..d5f5dff499d152d8dbfc6194e2e3824dec9e0f1a GIT binary patch literal 85 zcmZ?wbhEHb)L`IeXkcXce~{t-|Nn|VSr|DO7#VaJfB+=Jz@*dDzw-23{>3>7QEad7 nF3ZZxl$WTDYg_i})TR?2LF_Wgv9W9>`%-HDadYvrGFSruf36%~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dependency.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dependency.gif new file mode 100755 index 0000000000000000000000000000000000000000..27661f3f047520051c5a82f9371c50cd0dce2cd4 GIT binary patch literal 84 zcmZ?wbhEHb6ky<Hn8?8J|NnmmhBIMdXBZe56o0aCasX)^AZ7r`Gcc*P^sihkq&T5j kU4eVUM#J4d6aC!OuHAH8WyLfx?2wd(t!(piPeul70K!Zdod5s; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dot.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/dot.gif new file mode 100755 index 0000000000000000000000000000000000000000..e28525d541d15abab3361f7811761246901c41ba GIT binary patch literal 110 zcmZ?wbhEHbWM^P!*v!DN$wd4AyR#>=qvtX+{(W`o*`}G_ZtcD|uVbm0;Hy20E;Z%9 zKe6V+sdc}f9(}m1@5jCUia%KxKtKmXfXrZEkv2H-ZHbT5oLvVbI)pUtv-dnLFuGUH M;xbXwpM}9104c06EC2ui literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/ff.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/ff.gif new file mode 100755 index 0000000000000000000000000000000000000000..16f4e251756e92ed4c271c57c483629b824961e7 GIT binary patch literal 337 zcmZ?wbhEHb6krfwxXQqwS{k5R6JgdA=QuApVs&A}szTr8X}-%-eV3&su1`$dkdV7I zK6h)}<fHAAkG56pid%HLd-3V6HRt<&{CM%>!-gL(X6%@u@#8_qhX*V6&C$59BV)$| zg&#K>Ry0T~sF2vup>SY9!vFvO8E6I+f3h$#FeozUfNTKyiGeNez=Q%19jX2kDuI(X zMwlozGVGigVIJ6dWyivbjZ7RWn`G-WL{F)|$}pE|Z2ZvtFyR_gQ(U|Pi&IHiHX~ar zJ39w^eY$v-A_M0{E-r>5McFtJ*?w+r9tH*%*)ZYR4Ezh+6y(+@^e^<<xM{P8BZD;n Dt7&7~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/pause.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/pause.gif new file mode 100755 index 0000000000000000000000000000000000000000..161e3f594fa97bf3aa3c370e208ca2f38be9f6b8 GIT binary patch literal 338 zcmZ?wbhEHb6krfwxXQrr@86ey|GxkG`~L6un}5IE{P*+8zn@S4yxH>S?asfSPXGIM zbH^0by|dJJO;_7DN8{42%s-E(|9(8<@0+cE-)#E}Qgd#7r^2RQrEL?Hf8TBX^LXZ; z=PUlc-v0OXj(?xdEw7VV+bX}RN$$|H#6wFH|NsBbKy9G-lZBCiL4`pFWH8823~c!h zlL|a^r20=R`S>uy&ci4Dq96l<jLIre?-T|W2DX#jV#3m`jSC%}gs&ZSZG99u;Yml8 z;N{K|1C<)7dRK92NojGFwvH|rF<}82F_j6Erno3@vU4h^%o3XGs>roeQDw<8S7rIN QN-AsCd2QaJ;>chP02(!ZIRF3v literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/play.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/play.gif new file mode 100755 index 0000000000000000000000000000000000000000..57f410224cf0e125fefdfbfd424b34ca32650ac4 GIT binary patch literal 379 zcmZ?wbhEHb6krfwxXQqw(BP;BL>-Qf6T{<X<y&?58+Ul5tu5E>aP*iM?lCLeYNChZ zME|t4Kq*J#ax2FU508od{<Ffvm&EBd7#nw3InMI%nB{K;WK47nUlQ)o;E}c@t$c0y z+S6-yUD|c^!PU4~;T_u>@|VOltj+J(UOww!N5}U3iQCI3ZqHwGu%qFO+M$;f|G|KP zbfEZ?g^__lk3k2d733!dwiyo73p{kh9NV1~0xTMO)-@+?HCpL1C+*_|jkQs$L%3SK zWZD#%Uw+AK^#3sVq2$yax7_cq>g;#(C^lABHOjI%u}OEy<@M@F%Q8AK@K5dOm7mJO z;KV30f4Z*Rd;#G}fjokO)8$r)3o+Lza0p5E$no(>iVJg;1ab?@$%#scNeOe;IkR(c Y3G?y_b8(z@@nG_1@(Z}@>d0UX09ibCp#T5? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/property.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/property.gif new file mode 100755 index 0000000000000000000000000000000000000000..58c9ab746b2dfa19af2d4e5a5a402c742437db60 GIT binary patch literal 181 zcmZ?wbhEHb<Y(Y#IKsg29|ZpW|M&0z|G)qL{r&gv&%eKa{{8;(@%*+Ar`EmNv*_8T znfK;(Tx!ZcnH{~!M0=^2;9O=#2BLxDPZmxNplThE4v?J;tVRk7eJPpqGFGkA5#VT5 t<aoKjg0FbV31Qa>Y+4t7{FOVrNU)MirN;i4!G;5-9BbEzi83)*0|3M5K>q*$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/rr.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/rr.gif new file mode 100755 index 0000000000000000000000000000000000000000..d406c5a5537e48e41217c07ee90986b4cae7af1c GIT binary patch literal 335 zcmZ?wbhEHb6krfwxXQrr|Ns9VKVJO!u;Igl6+d3g`0=3Q$Bl+H=ld3&?p}PlYx2?d z$w%8R?8rE<AYtDejU6*Ic1%#%(4nxRK_YQOLgM<wh}DG=s|tOWr}-{V^<9?gI4`+k zS6uGa_}r~=W=(MmDkOAkB2-HQ7-$9*f3k3L08Q5c*#Pnr16z(mLxG2mRR4)3mmV`3 z$nmouK4D{`*r?NT!bd?Mys?7&LW4+G>n=$_0Tw}q6-g^^ynWM{D8Qa*Bq1T*tiT{x zRpTV3C@d_}uh_=KTHvCnC@Ui~Q7DN?$ZfjxoJht6?$a4~<=60ft>3WG*^$8-039n~ At^fc4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/source.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/source.gif new file mode 100755 index 0000000000000000000000000000000000000000..b9dced8ff5aea1f06413f84c246eec571b794934 GIT binary patch literal 179 zcmZ?wbhEHb<Y(Y#IKsg2|NsB*_x^vs{+)&450J;m@Q;b%FEhg*7KYzk4BxmJzVI-7 z4&X@e;z+Jy^Ni$(31^RCAO$G?WZ~ohYR~~`0@=yHYM`Ldmy$UzW7WDGZ5>ykDS|6S mj$XL1)#Fc_TZ)HFmjK)0#)HzF3jD`=u4G59zY)m6U=09oLM_?= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/step.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/step.gif new file mode 100755 index 0000000000000000000000000000000000000000..32c030de3099b783c36179c5bff4d4ef6b85c3e7 GIT binary patch literal 89 zcmZ?wbhEHb<Y(Y#n8?KNpMl{&7%(s}DE?$&WME)o&;hc6viv}{)|CF0vmgAAnlXim nC5QL>lb0cLKNc!>bUxRZ(m%CHRlHc*`aUm<;lK473=Gx)82TRl literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/stop.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/stop.gif new file mode 100755 index 0000000000000000000000000000000000000000..69c31f421c0b5f964407999e2c7f39b94f8ef966 GIT binary patch literal 217 zcmZ?wbhEHb6krfwIKsfN)7<KXf6#~WsvpZ%-k3J?g}&7bbEg;fUN78(UMLuSNH01l zpnOup>SBD+Nq?u4;a)%1tvqRO_5c5W2I7F?PZmZ71|bF=kaCcn46I=bRQggf=VfFG z`M=)f^3tIs*4jwqO^v~WB^)e{I!X!?gHj4ItoTm|IRvbT;%-vmT;Nf$pObaLkp*$9 jncOlN4R_pUJCVdIdE@;z%at2n{Qk?U)zmDc$Y2cs>J>(w literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/tag.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/tag.gif new file mode 100755 index 0000000000000000000000000000000000000000..84cd723e0ce50d1611f6ac08cb026d498f59ad54 GIT binary patch literal 313 zcmZ?wbhEHb<Y(Y#xXQrr|NsBLfB(LI{SpXn-@bk8)~!E(8vp!h*t&J==FOYeu3foc z!GiVcCoEn(eaqy&{{H^HzP>+yYF|DpfAO^N!I8wfcayGPPr1D#^1`C<B};<)`uuu( zeS3R7dV8I#tE-EPi?ah=BO`qxB7n#%D#{}w!o$+il7V_a@h1x>2hcbjkdYuiF|dU> zG!%H~NcEpsQgl)z!)$in6y{JK_L&{m4%lXRI`==>^tO(%zn}BT0+$_Z`7Co3bkro) qnH4=~V_;?A5G$yzWvh4Q5v_`9?{s41RZ>!&raVQ!XSSOogEau#*=x%H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/target.gif b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/icons/target.gif new file mode 100755 index 0000000000000000000000000000000000000000..66d4edb1427fe7582c80b12c9c690e1a51fca54a GIT binary patch literal 863 zcmb7@J&Ti35QPU+$QE%05!_(mHWC&a83T$o5^%MV*c(9>rb%U&R+O-QfXFsZXI8L` zYn@84Ffz8;KakcUl~|3>yz3wEHetAT&OGPLo89|&Z`^#cDVy?JPL7J0h>L_s3YDs; ziMnWrW?h<!nV5@(Sk_xtaT9m(5YK82l`sjH2#G{VQYB5&B}0+|ZKTnnnb%o!>X@pl zhHBPWDl;`#3$-i?F5T2!J=C+HcpIkS8ljOe(yD2it{Iw4g&HxSp#+ON2BVEMS~O=F zs+!|wVV32Ou~hEnVV-3d3NFJf!Xj}G6mKovGAyx29$?Z<9QX$UhfpI1G?YArgTZJc zjaF82bxq9)_pBiC$5^Tek0e*@LcyhHc#<PY698O1CurOfC3%2JH*vs(VH`q@7|?Wr z1qXxCMmlRn^_pvHPO>qA#2;g+BC{6QtiLFljn+P!B^6YYd#$&LvKX6mYTJ$BLT)_N z@*Avj&`d&_&w(uw9-f*}(r&jqoldvg?e%*7et$3+42Q$fXfz&=CzHv+!NGJooy}(R z`FychESJmGYPDXkPkR4-$p8Pd{pa*XOOEAgwbp+^TDRr%#-)2lAHF_so!@!%{b>7+ zoceg-{l%Y`W&ilfgX>R!9qzu}>g{~lf4KMT-I;5TUw``c;^nKedq3W6os(OC0XvF) A1^@s6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/javalogtrace.ecore b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/javalogtrace.ecore new file mode 100755 index 0000000..6fe7695 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/javalogtrace.ecore @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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="javalogtrace" + nsURI="http:///org/isistan/flabot/engine/executionstate/javalogtrace.ecore" nsPrefix="org.isistan.flabot.engine.executionstate.javalogtrace"> + <eClassifiers xsi:type="ecore:EClass" name="JavalogTraceInferenceStrategy" eSuperTypes="executionstate.ecore#//TraceInferenceStrategy"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="prologCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + defaultValueLiteral="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </eClassifiers> +</ecore:EPackage> diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/locator/FlabotEngineLocator.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/locator/FlabotEngineLocator.java new file mode 100755 index 0000000..c4d3356 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/locator/FlabotEngineLocator.java @@ -0,0 +1,105 @@ +/** + * $Id: FlabotEngineLocator.java,v 1.8 2006/03/22 03:28:54 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.engine.locator; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.engine.EnginePlugin; +import org.isistan.flabot.engine.JavaLogEngine; +import org.isistan.flabot.engine.Loader; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.engine.SystemFactory; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.util.locator.ComponentLocator; +import org.isistan.flabot.util.locator.ComponentLocatorException; + +import JavaLog.PlException; + +/** + * ComponentLocator implementation for the Flabot Engine + * @author $Author: franco $ + * + */ +public class FlabotEngineLocator implements ComponentLocator { + + /** + * Locator id for the flabot engine component locator + */ + public static final String LOCATOR_ID = "flabotEngine"; + + /** + * Key for the "flabotFileModel" parameter + */ + public static final String PARAMETER_FLABOT_FILE_MODEL = "flabotFileModel"; + + /** + * Key for the "executionInfoManager" parameter + */ + public static final String PARAMETER_EXECUTION_INFO_MANAGER = "executionInfoManager"; + + private Map runtimeManagers = new HashMap(); + + /** + * Locate an instance of the flabot engine + */ + public Object locate(Map parameters) throws ComponentLocatorException { + // try to extract the flabot file model parameter from the + // parameters hashtable + FlabotFileModel flabotFileModel = (FlabotFileModel) + parameters.get(PARAMETER_FLABOT_FILE_MODEL); + if (flabotFileModel == null) { + // the required parameter is null, throw an exception + throw new ComponentLocatorException("Can't locate or create a " + + "runtime manager without a flabot file model"); + } + + // try to get a previously created runtime manager for the given + // flabot file model + RuntimeManager runtimeManager = (RuntimeManager) + runtimeManagers.get(flabotFileModel); + + if (runtimeManager == null) { + ExecutionInfoManager executionInfoManager = (ExecutionInfoManager) + parameters.get(PARAMETER_EXECUTION_INFO_MANAGER); + if (executionInfoManager == null) { + // the required parameter is null, throw an exception + throw new ComponentLocatorException("Can't locate or create a " + + "runtime manager without a execution info manager"); + } + + // the runtime manager is null, create a new one and register it + // for the file model + try { + runtimeManager = createRuntimeManager(executionInfoManager); + runtimeManagers.put(flabotFileModel, runtimeManager); + } + catch (Exception e) { + // the runtime manager couldn't be created, log the exception + // and throw a new component locator exception with the original + // exception as a cause + EnginePlugin.getDefault().getLogger().error( + "Couldn't initialize the runtime manager", e); + throw new ComponentLocatorException("Couldn't initialize " + + "the runtime manager", e); + } + } + return runtimeManager; + } + + private RuntimeManager createRuntimeManager(ExecutionInfoManager executionInfoManager) + throws IOException, PlException { + JavaLogEngine javaLogEngine = new JavaLogEngine(); + Loader loader = new Loader(javaLogEngine); + SystemFactory systemFactory = new SystemFactory(loader, javaLogEngine); + RuntimeManager runtimeManager = new RuntimeManager(javaLogEngine, + loader, systemFactory, executionInfoManager); + systemFactory.setRuntimeManager(runtimeManager); + return runtimeManager; + } + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/Messages.java b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/Messages.java new file mode 100755 index 0000000..6a8076f --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/Messages.java @@ -0,0 +1,33 @@ +package org.isistan.flabot.engine.messages; + +import java.util.ResourceBundle; + +import org.isistan.flabot.util.messages.MessagesUtil; + +public class Messages { + private static final String BUNDLE_NAME = "org.isistan.flabot.engine.messages.messages"; //$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + + private Messages() { + } + + public static String getStringAsIs(String key) { + return MessagesUtil.getStringAsIs(RESOURCE_BUNDLE, key); + } + + public static String getString(String key) { + return MessagesUtil.getString(RESOURCE_BUNDLE, key); + } + + + public static String getStringAsIs(String key, Object... arguments) { + return MessagesUtil.getStringAsIs(RESOURCE_BUNDLE, key, arguments); + } + + + public static String getString(String key, Object... arguments) { + return MessagesUtil.getString(RESOURCE_BUNDLE, key, arguments); + } +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/messages.properties b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/messages.properties new file mode 100755 index 0000000..497c64c --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/engine/messages/messages.properties @@ -0,0 +1,186 @@ +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.tabName=Predefined condition edition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.group=Condition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.stateLabel=State +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.nullLabel=Null +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.predefinedConditionLabel=Predefined condition +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.descriptionGroup=Description +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.configurationConditionGroup=Condition configuration +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.previewGroup=Preview +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.returnValueGroup=Return value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.argumentsGroup=Arguments +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.instanceGroup=Instance +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.noConfigurationNeeded=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.evaluate=Evaluate +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.toStringLabel=To string +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.valueLabel=Value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.useFieldLabel=Fields +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldNameLabel=Name +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.fieldValueLabel=Value +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.objectLabel=Object +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.editButton=Edit +org.isistan.flabot.engine.executionstate.dialogs.prolog.RulesEditionDialog.classNameLabel=Class name +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingGroup=Matching +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchWithLabel=Match with +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.matchingTecnicGroup=Matching type +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.substringMatching=Substring +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.regularExpresionMatching=Regular expresion +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.negativeMatching=Negative matching +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.fullMatching=Full +org.isistan.flabot.engine.executionstate.dialogs.prolog.MatchingPredefinedPropertyDialog.tabName=Matching selection +org.isistan.flabot.engine.mapview.MapViewPage.noExecutionStepsMapView=No execution steps to show +org.isistan.flabot.engine.MapViewJumpEditPart.to=TO +org.isistan.flabot.engine.MapViewJumpEditPart.from=FROM +org.isistan.flabot.engine.RunEngineAction.runEngine=Run Engine +org.isistan.flabot.engine.RunEngineAction.runEngineAt=Run Engine at {0} +org.isistan.flabot.edit.editor.cancelButton=Cancel +org.isistan.flabot.engine.RunEngineAction.perspectiveQuestion=Do you want to switch to FLABot Engine perspective? +org.isistan.flabot.engine.SequenceDiagram.noExecutionStepsSequenceView=No execution steps to show +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.executionStateSelection=Select Execution State +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultEventName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.descriptionGroup=Description +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.tagColumn=Entry +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultConditionName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsBeforeButton=View Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.timestampColumn=TimeStamp +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.nameItem=Name +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.idItem=ID +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetComponentName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceComponentName=null +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.methodColumn=Method +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.instanceColumn=Instance +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultTargetInstanceName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceStub=Stub +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.defaultSourceInstanceName=null +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsBeforeDialogTitle=Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.threadColumn=Thread +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.showTagsAfterDialogTitle=Entries +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.viewTagsAfterButton=View Entries +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.clearSelectionButton=Clear Selection +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.TagFilterDialog.selectAllButton=Select All +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.methodPropertiesGroup=Method properties +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.declaringClassItem=Declaring Class +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.returnTypeIetm=Return type +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersLabel=Parameters +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.parametersColumn=Parameters +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.instancePropertiesGroup=Instance properties +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.classItem=Class +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.sourceResponsibilityNodeGroup=Source responsibility node +org.isistan.flabot.engine.executionstate.correlation.dialog.swt.ShowTagInformationDialog.instanceItem=Instance +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.evaluatingResponsibilityNodeGroup=Evaluating responsibility node... +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.stateSelection=State selection +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.states=States +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.instance=Instance +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.responsibilityName=Responsibility Name +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsBefore=Entries before +org.isistan.flabot.engine.dialogs.ResponsibilityExecutionStateDialog.tagsAfter=Entries after +org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.branchStatesGroup=Branch states +org.isistan.flabot.engine.RunEngineAction.exceptionTryingToLocateTheFlabotEngine=Exception while trying to locate the flabot engine. +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.componentType=Component Type +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.event=Event +org.isistan.flabot.edit.controlview.ControlViewLabelProvider.steps=Steps +org.isistan.flabot.edit.sequenceview.SequenceViewPage.dependencies=Dependencies +org.isistan.flabot.edit.sequenceview.SequenceViewPage.precondition=Precondition +org.isistan.flabot.edit.controlview.ControlView.actionRewindTooltipText=Back to step... +org.isistan.flabot.edit.componenteditor.dialog.EditPropertyDialog.title=Edit Property +org.isistan.flabot.edit.controlview.ControlView.actionFFTooltipText=Execute next step +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFEnabled=Deactivate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipTextFFDisabled=Activate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPauseTooltipText=Activate step by step execution +org.isistan.flabot.edit.controlview.ControlView.actionPlayTooltipText=Run execution +org.isistan.flabot.edit.controlview.ControlView.actionStopTooltipText=Stop execution +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.exceptionError=Exception while trying to reset the runtime manager. +org.isistan.flabot.edit.ucmeditor.actions.TreatFailureAction.text=Treat Failure +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.scenario=Scenario +org.isistan.flabot.engine.MapView.mapViewNotAvailable=Map View is not available. +org.isistan.flabot.engine.SequenceView.sequenceViewNotAvailable=Sequence View is not available. +org.isistan.flabot.engine.MapViewJumpEditPart.jumpMessage={0}: {1}\nat {4} UCM diagram +org.isistan.flabot.engine.RunEngineAction.switchPespective=Switch Pespective +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.instance=Instance +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.cancel=Cancel +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.treatFailure=Treat Failure(s) +org.isistan.flabot.engine.dialogs.JoinOrSetStateDialog.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchText=Branch {0} {1}: +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.branchComboText=Branch {0} {1} +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.responsibility=Responsibility +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.executionState=Execution State +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.faultLocatorEngine=Fault Locator Engine +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.componentLocatorError=Exception while trying to locate the flabot engine. +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogTitle=Run Engine Error +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.executionError=Error in the execution of Fault Locator: {}\n +org.isistan.flabot.edit.ucmeditor.actions.RunEngineAction.errorsFoundDialogDescription=The Engine cannot be run because there are some problems in the flabot file. +org.isistan.flabot.engine.ResultFaultLocatorEngineDialog.results=Results +org.isistan.flabot.edit.controlview.ControlViewLabelProvider.step=Step | +org.isistan.flabot.edit.mapview.MapViewPage.faultyStartConstraint=Faulty Start Constraint +org.isistan.flabot.edit.sequenceview.SequenceViewPage.constraint=Constraint +org.isistan.flabot.edit.controlview.ControlView.actionRewind=Rewind +org.isistan.flabot.edit.mapview.MapViewPage.faultyPrecondition=Faulty Precondition +org.isistan.flabot.edit.sequenceview.SequenceViewPage.previous=Previous +org.isistan.flabot.edit.mapview.MapViewPage.faultyConstraint=Faulty Constraint +org.isistan.flabot.edit.sequenceview.SequenceViewPage.mapping=Mapping +org.isistan.flabot.edit.controlview.ControlView.actionFF=FF +org.isistan.flabot.edit.mapview.MapViewPage.notExecuted=Not Executed +org.isistan.flabot.edit.controlview.ControlView.actionPause=Pause +org.isistan.flabot.edit.mapview.MapViewPage.faultyNextLevel=Faulty Next Level +org.isistan.flabot.edit.controlview.ControlView.actionPlay=Play +org.isistan.flabot.edit.controlview.ControlView.actionStop=Stop +org.isistan.flabot.edit.mapview.MapViewPage.faultyPrevious=Faulty Previous +org.isistan.flabot.edit.ucmeditor.actions.ResetAction.text=Reset Log +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.text=General Log Filter +org.isistan.flabot.edit.controlview.ControlView.step=Step | +org.isistan.flabot.edit.mapview.MapViewPage.states=States +org.isistan.flabot.edit.mapview.MapViewPage.faulty=Faulty +org.isistan.flabot.edit.editor.okButton=OK +org.isistan.flabot.edit.mapview.MapViewPage.executed=Executed +org.isistan.flabot.engine.SequenceView.controlViewNotAvailable=Control View is not available. +org.isistan.flabot.engine.ResponsibilityExecutionStateDialog.evaluatingDescription=Evaluating responsibility node with event '{0}' due to '{1}' dependency. +org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.noConfigurationRequired=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.tabName=State Determination Strategy +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.strategyName=State from architectural mapping +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.error=Can't set a state from mapping when the responsibility doesn't have a mapping: +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.errorInPrologCode=Error in prolog code: +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.null=null +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.responsibilityLabel=Responsibility +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.selectStrategyGroup=Select strategy +org.isistan.flabot.engine.executionstate.dialogs.StateFromMappingStrategyGUIFactory.noConfigurationRequired=No configuration required. +org.isistan.flabot.engine.executionstate.dialogs.StateDeterminationStrategyEditionItem.configureStrategyGroup=Configure strategy +org.isistan.flabot.engine.executionstate.dialogs.ManualStrategyGUIFactory.strategyName=Manual strategy (it asks the user) +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.faulty=Faulty +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.executed=Executed +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.notExecuted=NotExecuted +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.filtered=Filtered +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.wrongStrategy=Wrong strategy +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.prologCode=Prolog code +org.isistan.flabot.engine.executionstate.dialogs.TraceStrategyGUIFactory.strategyName=Trace-based state determination strategy +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.addConditionButton=Add condition... +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.checkPrologCodeButton=Check prolog code +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageTitle=Prolog code check +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckOKMessageDescription=Prolog code OK +org.isistan.flabot.engine.executionstate.dialogs.prolog.PrologEditComposite.prologCheckErrorMessageTitle=Prolog code check +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.tabName=State Determination Strategy +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.configureGroup=Configure strategy +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.eventMustHaveAName=This configuration will be available after the event is created. +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.prologCode=Prolog code +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.errorInPrologCode=Error in prolog code: +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.faulty=Faulty +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.executed=Executed +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.notExecuted=NotExecuted +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.filtered=Filtered +org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.name=No name +org.isistan.flabot.engine.executionstate.dialogs.conditions.DefaultPredefinedCondition.description=No description. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventObjectSnapshot.name=ObjectSnapshot +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.name=VariableStateOnAnyTag +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnAnyTag.description=It is considered as {0} if some event is logged during execution. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.name=VariableStateOnError +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnError.description=It is considered as {0} when some error happens in the code. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.name=VariableStateOnCustomTag +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.VariableStateOnCustomTag.description=It is considered as {0} upon the ocurrence of selected predetermined tags. +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityObjectSnapshot.name=ObjectSnapshot +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.ResponsibilityPreviousScope.name=PreviousScope +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.EventPreviousScope.name=PreviousScope +org.isistan.flabot.engine.executionstate.dialogs.conditions.predefined.FixedStateDefault.name=FixedStateDefault +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.tabName=General Log Filter +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.selectStrategyGroup=Select strategy +org.isistan.flabot.engine.executionstate.dialogs.generallog.GeneralLogFilterStrategyEditionItem.configureStrategyGroup=Configure strategy +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.title=Edit General Log Filter Strategy +org.isistan.flabot.edit.ucmeditor.actions.GeneralLogFilterAction.dialogCommandLabel=Edit General Log Filter Strategy \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/Dependency.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/Dependency.java new file mode 100755 index 0000000..41008d5 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/Dependency.java @@ -0,0 +1,42 @@ +/** * $Id: Dependency.java,v 1.3 2006/02/21 21:35:52 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.executionmodel; + +import org.eclipse.emf.ecore.EObject; /** + * @model + */ + +public interface Dependency extends EObject { + + /** + * + * @model + */ + + String getType(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.Dependency#getType <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Type</em>' attribute. + * @see #getType() + * @generated + */ + void setType(String value); + + /** + * + * @model + */ + + Object getEvent(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.Dependency#getEvent <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Event</em>' attribute. + * @see #getEvent() + * @generated + */ + void setEvent(Object value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/DependencyInfo.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/DependencyInfo.java new file mode 100755 index 0000000..2cc5f4e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/DependencyInfo.java @@ -0,0 +1,11 @@ +/** * $Id: DependencyInfo.java,v 1.1 2006/01/27 00:10:12 mblech Exp $ * $Author: mblech $ */ package org.isistan.flabot.executionmodel; + +public interface DependencyInfo { + + public static final String DEPENDENCY_PREVIOUS = "previous"; + public static final String DEPENDENCY_MAPPING = "nextLevels"; + public static final String DEPENDENCY_CONSTRAINT = "constraint"; + public static final String DEPENDENCY_PRECONDITION = "precondition"; + +} + diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/EvaluationStep.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/EvaluationStep.java new file mode 100755 index 0000000..1d39700 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/EvaluationStep.java @@ -0,0 +1,77 @@ +/** + * $Id: EvaluationStep.java,v 1.1 2006/03/17 00:28:33 franco Exp $ + * $Author: franco $ + */ +package org.isistan.flabot.executionmodel; + +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.coremodel.SimplePathNode; + +/** + * @model + */ +public interface EvaluationStep extends EObject{ + + /** + * + * @model + */ + SimplePathNode getSource(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.EvaluationStep#getSource <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source</em>' reference. + * @see #getSource() + * @generated + */ + void setSource(SimplePathNode value); + + /** + * + * @model + */ + SimplePathNode getTarget(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.EvaluationStep#getTarget <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target</em>' reference. + * @see #getTarget() + * @generated + */ + void setTarget(SimplePathNode value); + + /** + * + * @model + */ + String getCurrentFamily(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.EvaluationStep#getCurrentFamily <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Family</em>' attribute. + * @see #getCurrentFamily() + * @generated + */ + void setCurrentFamily(String value); + + /** + * + * @model + */ + String getCondition(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.EvaluationStep#getCondition <em>Condition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Condition</em>' attribute. + * @see #getCondition() + * @generated + */ + void setCondition(String value); + +} \ No newline at end of file diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionContext.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionContext.java new file mode 100755 index 0000000..307727a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionContext.java @@ -0,0 +1,389 @@ +/** * $Id: ExecutionContext.java,v 1.12 2006/04/11 04:21:27 apersson Exp $ * $Author: apersson $ */ package org.isistan.flabot.executionmodel; + +import org.eclipse.emf.common.util.EMap; import org.eclipse.emf.ecore.EObject; import org.isistan.flabot.coremodel.ComponentRole; import org.isistan.flabot.coremodel.SimplePathNode; /** + * @model + */ +public interface ExecutionContext extends EObject{ + public static final int enabled_Step = 1; public static final int not_enabled_Step = 0; + /** + * + * @model default="0" + */ + String getCurrentStep(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentStep <em>Current Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Step</em>' attribute. + * @see #getCurrentStep() + * @generated + */ + void setCurrentStep(String value); + + /** + * + * @model + */ + String getCurrentScenario(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentScenario <em>Current Scenario</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Scenario</em>' attribute. + * @see #getCurrentScenario() + * @generated + */ + void setCurrentScenario(String value); + + /** + * + * @model + */ + String getCurrentState(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentState <em>Current State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current State</em>' attribute. + * @see #getCurrentState() + * @generated + */ + void setCurrentState(String value); + + /** + * + * @model + */ + String getDependencies(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getDependencies <em>Dependencies</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Dependencies</em>' attribute. + * @see #getDependencies() + * @generated + */ + void setDependencies(String value); + + /** + * + * @model default="'Family'" + */ + String getCurrentFamily(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentFamily <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Family</em>' attribute. + * @see #getCurrentFamily() + * @generated + */ + void setCurrentFamily(String value); + + /** + * + * @model default="Family" + */ + String getFamily(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getFamily <em>Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family</em>' attribute. + * @see #getFamily() + * @generated + */ + void setFamily(String value); + + /** + * + * @model default="[]" + */ + String getCurrentTypeDependency(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentTypeDependency <em>Current Type Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Type Dependency</em>' attribute. + * @see #getCurrentTypeDependency() + * @generated + */ + void setCurrentTypeDependency(String value); + + /** + * + * @model + */ + SimplePathNode getCurrentResponsibility(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentResponsibility <em>Current Responsibility</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Responsibility</em>' reference. + * @see #getCurrentResponsibility() + * @generated + */ + void setCurrentResponsibility(SimplePathNode value); + + /** + * + * @model + */ + SimplePathNode getPreResponsibility(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibility <em>Pre Responsibility</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Pre Responsibility</em>' reference. + * @see #getPreResponsibility() + * @generated + */ + void setPreResponsibility(SimplePathNode value); + + /** + * + * @model default="[]" + */ + String getCurrentDependency(); + + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentDependency <em>Current Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Dependency</em>' attribute. + * @see #getCurrentDependency() + * @generated + */ + void setCurrentDependency(String value); + + /** + * + * @model default="DEFAULT_DEPENDENCY" + */ + String getCurrentAnalizeDependency(); + + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentAnalizeDependency <em>Current Analize Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Analize Dependency</em>' attribute. + * @see #getCurrentAnalizeDependency() + * @generated + */ + void setCurrentAnalizeDependency(String value); + + /** + * + * @model default="Event" + */ + String getEvent(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEvent <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Event</em>' attribute. + * @see #getEvent() + * @generated + */ + void setEvent(String value); + + void cloneExecutionContext(ExecutionContext context); + + /** + * + * @model default="" + */ + String getPrologKnowledge(); + + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPrologKnowledge <em>Prolog Knowledge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Prolog Knowledge</em>' attribute. + * @see #getPrologKnowledge() + * @generated + */ + void setPrologKnowledge(String value); + + /** * * @model */ String getCurrentLogicModule(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentLogicModule <em>Current Logic Module</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Logic Module</em>' attribute. + * @see #getCurrentLogicModule() + * @generated + */ + void setCurrentLogicModule(String value); + + /** * * @model */ SimplePathNode getResponsibilityToExecute(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToExecute <em>Responsibility To Execute</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Responsibility To Execute</em>' reference. + * @see #getResponsibilityToExecute() + * @generated + */ + void setResponsibilityToExecute(SimplePathNode value); + + /** * * @model */ String getMappingFamily(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getMappingFamily <em>Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mapping Family</em>' attribute. + * @see #getMappingFamily() + * @generated + */ + void setMappingFamily(String value); + + /** * * @model */ String getLastMappingFamily(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getLastMappingFamily <em>Last Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Mapping Family</em>' attribute. + * @see #getLastMappingFamily() + * @generated + */ + void setLastMappingFamily(String value); + + /** * * @model */ SimplePathNode getStubNode(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStubNode <em>Stub Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Stub Node</em>' reference. + * @see #getStubNode() + * @generated + */ + void setStubNode(SimplePathNode value); + + /** * * @model */ SimplePathNode getStartNodeToStub(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStartNodeToStub <em>Start Node To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Start Node To Stub</em>' reference. + * @see #getStartNodeToStub() + * @generated + */ + void setStartNodeToStub(SimplePathNode value); + + /** * * @model */ SimplePathNode getEndNodeToStub(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEndNodeToStub <em>End Node To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>End Node To Stub</em>' reference. + * @see #getEndNodeToStub() + * @generated + */ + void setEndNodeToStub(SimplePathNode value); + + /** * * @model */ SimplePathNode getResponsibilityToStub(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToStub <em>Responsibility To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Responsibility To Stub</em>' reference. + * @see #getResponsibilityToStub() + * @generated + */ + void setResponsibilityToStub(SimplePathNode value); + + /** * * @model */ SimplePathNode getPreResponsibilityToStub(); + /** * * @model */ SimplePathNode getResponsibilityToJoin(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToJoin <em>Responsibility To Join</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Responsibility To Join</em>' reference. + * @see #getResponsibilityToJoin() + * @generated + */ + void setResponsibilityToJoin(SimplePathNode value); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToStub <em>Pre Responsibility To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Pre Responsibility To Stub</em>' reference. + * @see #getPreResponsibilityToStub() + * @generated + */ + void setPreResponsibilityToStub(SimplePathNode value); + + /** * * @model */ SimplePathNode getPreResponsibilityToJoin(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToJoin <em>Pre Responsibility To Join</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Pre Responsibility To Join</em>' reference. + * @see #getPreResponsibilityToJoin() + * @generated + */ + void setPreResponsibilityToJoin(SimplePathNode value); + + /** * * @model */ String getStopStep(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStopStep <em>Stop Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Stop Step</em>' attribute. + * @see #getStopStep() + * @generated + */ + void setStopStep(String value); + + /** * * @model */ ComponentRole getInstanceComponentToSource(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToSource <em>Instance Component To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Instance Component To Source</em>' reference. + * @see #getInstanceComponentToSource() + * @generated + */ + void setInstanceComponentToSource(ComponentRole value); + + /** * * @model */ ComponentRole getInstanceComponentToTarget(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToTarget <em>Instance Component To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Instance Component To Target</em>' reference. + * @see #getInstanceComponentToTarget() + * @generated + */ + void setInstanceComponentToTarget(ComponentRole value); + + /** * @model keyType="String" valueType="String" * */ EMap getBranchJoin(); /** * * @model default=1 */ int getEnabled (); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEnabled <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Enabled</em>' attribute. + * @see #getEnabled() + * @generated + */ + void setEnabled(int value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfo.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfo.java new file mode 100755 index 0000000..696b9cc --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfo.java @@ -0,0 +1,17 @@ +/** * $Id: ExecutionInfo.java,v 1.8 2006/03/29 00:55:37 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.executionmodel; + + +import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.isistan.flabot.engine.executionstate.Diagnostic; /** + * @model + */ + +public interface ExecutionInfo extends EObject { + + /** + * @model type="ExecutionStep" containment="true" + * @deprecated + */ + @Deprecated EList getExecutionSteps(); + int getStepsCount(); + ExecutionStep addExecutionStep(ExecutionContext context, Diagnostic diagnosticToSource, Diagnostic DiagnosticToTarget); void backToStep(ExecutionStep step); void startEvaluatingNode(EvaluationStep step); void finishEvaluatingNode(EvaluationStep step); void resetExecutionInfo(); +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfoManager.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfoManager.java new file mode 100755 index 0000000..c453e4a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionInfoManager.java @@ -0,0 +1,50 @@ +/** * $Id: ExecutionInfoManager.java,v 1.2 2006/02/03 21:03:09 dacostae Exp $ * $Author: dacostae $ */ package org.isistan.flabot.executionmodel; + +import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.isistan.flabot.edit.editormodel.FlabotFileModel; /** + * @model + */ +public interface ExecutionInfoManager extends EObject, Adapter { + + /** + * Get the file for this execution state manager + * @return + * @model + */ + FlabotFileModel getFileModel(); + + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager#getFileModel <em>File Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>File Model</em>' reference. + * @see #getFileModel() + * @generated + */ + void setFileModel(FlabotFileModel value); + + /** + * @model type="ExecutionInfo" containment="true" + * @deprecated + */ + @Deprecated EList getExecutions(); + + /** + * + * @model containment="true" + */ + ExecutionInfo getCurrentExecution(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager#getCurrentExecution <em>Current Execution</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Current Execution</em>' containment reference. + * @see #getCurrentExecution() + * @generated + */ + void setCurrentExecution(ExecutionInfo value); + + void addExecution (); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionStep.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionStep.java new file mode 100755 index 0000000..c531628 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionStep.java @@ -0,0 +1,143 @@ +/** * $Id: ExecutionStep.java,v 1.8 2006/03/16 23:56:57 apersson Exp $ * $Author: apersson $ */ package org.isistan.flabot.executionmodel; + +import org.eclipse.emf.ecore.EObject; import org.isistan.flabot.coremodel.ComponentRole; import org.isistan.flabot.coremodel.SimplePathNode; import org.isistan.flabot.engine.executionstate.Diagnostic; import org.isistan.flabot.engine.executionstate.ExecutionState; /** + * @model + */ + +public interface ExecutionStep extends EObject{ + + /** + * + * @model containment="true" + */ + + ExecutionContext getExecutionContext(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getExecutionContext <em>Execution Context</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Execution Context</em>' containment reference. + * @see #getExecutionContext() + * @generated + */ + void setExecutionContext(ExecutionContext value); + + /** + * + * @model containment="true" + */ + Dependency getDependency(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDependency <em>Dependency</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Dependency</em>' containment reference. + * @see #getDependency() + * @generated + */ + void setDependency(Dependency value); + + /** + * + * @model + */ + SimplePathNode getSource(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getSource <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source</em>' reference. + * @see #getSource() + * @generated + */ + void setSource(SimplePathNode value); + + /** + * + * @model + */ + SimplePathNode getTarget(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getTarget <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target</em>' reference. + * @see #getTarget() + * @generated + */ + void setTarget(SimplePathNode value); + + /** * * @model */ ComponentRole getInstanceComponentToSource(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToSource <em>Instance Component To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Instance Component To Source</em>' reference. + * @see #getInstanceComponentToSource() + * @generated + */ + void setInstanceComponentToSource(ComponentRole value); + + /** * * @model */ ComponentRole getInstanceComponentToTarget(); + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToTarget <em>Instance Component To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Instance Component To Target</em>' reference. + * @see #getInstanceComponentToTarget() + * @generated + */ + void setInstanceComponentToTarget(ComponentRole value); + + /** * * @model */ Diagnostic getDiagnosticToSource(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToSource <em>Diagnostic To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Diagnostic To Source</em>' reference. + * @see #getDiagnosticToSource() + * @generated + */ + void setDiagnosticToSource(Diagnostic value); + + /** * * @model */ Diagnostic getDiagnosticToTarget(); /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToTarget <em>Diagnostic To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Diagnostic To Target</em>' reference. + * @see #getDiagnosticToTarget() + * @generated + */ + void setDiagnosticToTarget(Diagnostic value); + + /** * * @model */ ExecutionState getFinalState(); + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getFinalState <em>Final State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Final State</em>' attribute. + * @see org.isistan.flabot.engine.executionstate.ExecutionState + * @see #getFinalState() + * @generated + */ + void setFinalState(ExecutionState value); + + /** * * @model */ + int getEnabled (); + + + /** + * Sets the value of the '{@link org.isistan.flabot.executionmodel.ExecutionStep#getEnabled <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Enabled</em>' attribute. + * @see #getEnabled() + * @generated + */ + void setEnabled(int value); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelFactory.java new file mode 100755 index 0000000..4ab11ce --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelFactory.java @@ -0,0 +1,77 @@ +/** * $Id: ExecutionmodelFactory.java,v 1.3 2006/03/17 00:28:33 franco Exp $ * $Author: franco $ */ package org.isistan.flabot.executionmodel; + + +import org.eclipse.emf.ecore.EFactory; public interface ExecutionmodelFactory extends EFactory{ + + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ExecutionmodelFactory eINSTANCE = new org.isistan.flabot.executionmodel.impl.ExecutionmodelFactoryImpl(); + + /** + * Returns a new object of class '<em>Execution Info</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Execution Info</em>'. + * @generated + */ + ExecutionInfo createExecutionInfo(); + + /** + * Returns a new object of class '<em>Execution Info Manager</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Execution Info Manager</em>'. + * @generated + */ + ExecutionInfoManager createExecutionInfoManager(); + + /** + * Returns a new object of class '<em>Execution Step</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Execution Step</em>'. + * @generated + */ + ExecutionStep createExecutionStep(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + ExecutionmodelPackage getExecutionmodelPackage(); + + /** + * Returns a new object of class '<em>Dependency</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Dependency</em>'. + * @generated + */ + Dependency createDependency(); + + /** + * Returns a new object of class '<em>Execution Context</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Execution Context</em>'. + * @generated + */ + ExecutionContext createExecutionContext(); + + /** + * Returns a new object of class '<em>Evaluation Step</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Evaluation Step</em>'. + * @generated + */ + EvaluationStep createEvaluationStep(); + +} diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelPackage.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelPackage.java new file mode 100755 index 0000000..3f7b753 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/ExecutionmodelPackage.java @@ -0,0 +1,1583 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionmodelPackage.java,v 1.14 2006/03/29 20:42:16 franco Exp $ + */ +package org.isistan.flabot.executionmodel; + + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.ExecutionmodelFactory + * @model kind="package" + * @generated + */ +public interface ExecutionmodelPackage extends EPackage{ + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "executionmodel"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http:///org/isistan/flabot/executionmodel.ecore"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "org.isistan.flabot.executionmodel"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + ExecutionmodelPackage eINSTANCE = org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl.init(); + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoImpl <em>Execution Info</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.ExecutionInfoImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getExecutionInfo() + * @generated + */ + int EXECUTION_INFO = 0; + + /** + * The feature id for the '<em><b>Execution Steps</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO__EXECUTION_STEPS = 0; + + /** + * The number of structural features of the the '<em>Execution Info</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO_FEATURE_COUNT = 1; + + /** + * The number of structural features of the the '<em>Execution Info</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + * @ordered + */ + int EXECUTION_INFO__BACK_TO_STEP = EXECUTION_INFO__EXECUTION_STEPS + 5; + + + /** + * The number of structural features of the the '<em>Execution Info</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + * @ordered + */ + int EXECUTION_INFO__START_EVALUATING_NODE = EXECUTION_INFO__EXECUTION_STEPS + 6; + + /** + * The number of structural features of the the '<em>Execution Info</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + * @ordered + */ + int EXECUTION_INFO__FINISH_EVALUATING_NODE = EXECUTION_INFO__EXECUTION_STEPS + 7; + + /** + * The number of structural features of the the '<em>Execution Info</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + * @ordered + */ + int EXECUTION_INFO__RESET = EXECUTION_INFO__EXECUTION_STEPS + 8; + + /** + * The meta object id for the '{@link org.eclipse.emf.common.notify.Adapter <em>Adapter</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.common.notify.Adapter + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getAdapter() + * @generated + */ + int ADAPTER = 5; + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoManagerImpl <em>Execution Info Manager</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.ExecutionInfoManagerImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getExecutionInfoManager() + * @generated + */ + int EXECUTION_INFO_MANAGER = 1; + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl <em>Execution Step</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.ExecutionStepImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getExecutionStep() + * @generated + */ + int EXECUTION_STEP = 2; + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.ResponsibilityNodeToExecutionStateMapEntryImpl <em>Responsibility Node To Execution State Map Entry</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.ResponsibilityNodeToExecutionStateMapEntryImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getResponsibilityNodeToExecutionStateMapEntry() + * @generated + */ + int RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY = 3; + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.DependencyImpl <em>Dependency</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.DependencyImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getDependency() + * @generated + */ + int DEPENDENCY = 4; + + /** + * The number of structural features of the the '<em>Adapter</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ADAPTER_FEATURE_COUNT = 0; + + /** + * The feature id for the '<em><b>Executions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO_MANAGER__EXECUTIONS = ADAPTER_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Current Execution</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO_MANAGER__CURRENT_EXECUTION = ADAPTER_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>File Model</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO_MANAGER__FILE_MODEL = ADAPTER_FEATURE_COUNT + 2; + + /** + * The number of structural features of the the '<em>Execution Info Manager</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_INFO_MANAGER_FEATURE_COUNT = ADAPTER_FEATURE_COUNT + 3; + + /** + * The feature id for the '<em><b>Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__SOURCE = 0; + + /** + * The feature id for the '<em><b>Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__TARGET = 1; + + /** + * The feature id for the '<em><b>Dependency</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__DEPENDENCY = 2; + + /** + * The feature id for the '<em><b>Instance Component To Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE = 3; + + /** + * The feature id for the '<em><b>Instance Component To Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET = 4; + + /** + * The feature id for the '<em><b>Diagnostic To Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE = 5; + + /** + * The feature id for the '<em><b>Diagnostic To Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__DIAGNOSTIC_TO_TARGET = 6; + + /** + * The feature id for the '<em><b>Final State</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__FINAL_STATE = 7; + + /** + * The feature id for the '<em><b>Execution Context</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__EXECUTION_CONTEXT = 8; + + /** + * The feature id for the '<em><b>Enabled</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP__ENABLED = 9; + + /** + * The number of structural features of the the '<em>Execution Step</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_STEP_FEATURE_COUNT = 10; + + /** + * The feature id for the '<em><b>Key</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the '<em>Responsibility Node To Execution State Map Entry</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY_FEATURE_COUNT = 2; + + + /** + * The feature id for the '<em><b>Event</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEPENDENCY__EVENT = 0; + + /** + * The feature id for the '<em><b>Type</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEPENDENCY__TYPE = 1; + + /** + * The number of structural features of the the '<em>Dependency</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DEPENDENCY_FEATURE_COUNT = 2; + + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl <em>Execution Context</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.ExecutionContextImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getExecutionContext() + * @generated + */ + int EXECUTION_CONTEXT = 6; + + /** + * The feature id for the '<em><b>Current Responsibility</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY = 0; + + /** + * The feature id for the '<em><b>Pre Responsibility</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__PRE_RESPONSIBILITY = 1; + + /** + * The feature id for the '<em><b>Current Step</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_STEP = 2; + + /** + * The feature id for the '<em><b>Current Scenario</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_SCENARIO = 3; + + /** + * The feature id for the '<em><b>Current State</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_STATE = 4; + + /** + * The feature id for the '<em><b>Dependencies</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__DEPENDENCIES = 5; + + /** + * The feature id for the '<em><b>Current Family</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_FAMILY = 6; + + /** + * The feature id for the '<em><b>Family</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__FAMILY = 7; + + /** + * The feature id for the '<em><b>Current Type Dependency</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY = 8; + + /** + * The feature id for the '<em><b>Current Dependency</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_DEPENDENCY = 9; + + /** + * The feature id for the '<em><b>Current Analize Dependency</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY = 10; + + /** + * The feature id for the '<em><b>Event</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__EVENT = 11; + + /** + * The feature id for the '<em><b>Prolog Knowledge</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__PROLOG_KNOWLEDGE = 12; + + /** + * The feature id for the '<em><b>Current Logic Module</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE = 13; + + /** + * The feature id for the '<em><b>Responsibility To Execute</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE = 14; + + /** + * The feature id for the '<em><b>Mapping Family</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__MAPPING_FAMILY = 15; + + /** + * The feature id for the '<em><b>Last Mapping Family</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__LAST_MAPPING_FAMILY = 16; + + /** + * The feature id for the '<em><b>Stub Node</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__STUB_NODE = 17; + + /** + * The feature id for the '<em><b>Start Node To Stub</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__START_NODE_TO_STUB = 18; + + /** + * The feature id for the '<em><b>End Node To Stub</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__END_NODE_TO_STUB = 19; + + /** + * The feature id for the '<em><b>Responsibility To Stub</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB = 20; + + /** + * The feature id for the '<em><b>Pre Responsibility To Stub</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB = 21; + + /** + * The feature id for the '<em><b>Stop Step</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__STOP_STEP = 22; + + /** + * The feature id for the '<em><b>Instance Component To Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE = 23; + + /** + * The feature id for the '<em><b>Instance Component To Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET = 24; + + /** + * The feature id for the '<em><b>Responsibility To Join</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN = 25; + + /** + * The feature id for the '<em><b>Pre Responsibility To Join</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN = 26; + + /** + * The feature id for the '<em><b>Branch Join</b></em>' map. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__BRANCH_JOIN = 27; + + /** + * The feature id for the '<em><b>Enabled</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT__ENABLED = 28; + + /** + * The number of structural features of the the '<em>Execution Context</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EXECUTION_CONTEXT_FEATURE_COUNT = 29; + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.EStringToEObjectMapEntryImpl <em>EString To EObject Map Entry</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.EStringToEObjectMapEntryImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getEStringToEObjectMapEntry() + * @generated + */ + int ESTRING_TO_EOBJECT_MAP_ENTRY = 7; + + /** + * The feature id for the '<em><b>Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EOBJECT_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the '<em><b>Value</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the '<em>EString To EObject Map Entry</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EOBJECT_MAP_ENTRY_FEATURE_COUNT = 2; + + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.EStringToEJavaObjectMapEntryImpl <em>EString To EJava Object Map Entry</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.EStringToEJavaObjectMapEntryImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getEStringToEJavaObjectMapEntry() + * @generated + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY = 8; + + /** + * The feature id for the '<em><b>Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the '<em>EString To EJava Object Map Entry</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY_FEATURE_COUNT = 2; + + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.SimplePathNodeToExecutionStateMapEntryImpl <em>Simple Path Node To Execution State Map Entry</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.SimplePathNodeToExecutionStateMapEntryImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getSimplePathNodeToExecutionStateMapEntry() + * @generated + */ + int SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY = 9; + + /** + * The feature id for the '<em><b>Key</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY = 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE = 1; + + /** + * The number of structural features of the the '<em>Simple Path Node To Execution State Map Entry</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY_FEATURE_COUNT = 2; + + + /** + * The meta object id for the '{@link org.isistan.flabot.executionmodel.impl.EvaluationStepImpl <em>Evaluation Step</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.impl.EvaluationStepImpl + * @see org.isistan.flabot.executionmodel.impl.ExecutionmodelPackageImpl#getEvaluationStep() + * @generated + */ + int EVALUATION_STEP = 10; + + /** + * The feature id for the '<em><b>Source</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_STEP__SOURCE = 0; + + /** + * The feature id for the '<em><b>Target</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_STEP__TARGET = 1; + + /** + * The feature id for the '<em><b>Current Family</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_STEP__CURRENT_FAMILY = 2; + + /** + * The feature id for the '<em><b>Condition</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_STEP__CONDITION = 3; + + /** + * The number of structural features of the the '<em>Evaluation Step</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EVALUATION_STEP_FEATURE_COUNT = 4; + + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.ExecutionInfo <em>Execution Info</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Execution Info</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfo + * @generated + */ + EClass getExecutionInfo(); + + /** + * Returns the meta object for the containment reference list '{@link org.isistan.flabot.executionmodel.ExecutionInfo#getExecutionSteps <em>Execution Steps</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Execution Steps</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfo#getExecutionSteps() + * @see #getExecutionInfo() + * @generated + */ + @SuppressWarnings("deprecation") EReference getExecutionInfo_ExecutionSteps(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager <em>Execution Info Manager</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Execution Info Manager</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfoManager + * @generated + */ + EClass getExecutionInfoManager(); + + /** + * Returns the meta object for the containment reference list '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager#getExecutions <em>Executions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Executions</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfoManager#getExecutions() + * @see #getExecutionInfoManager() + * @generated + */ + @SuppressWarnings("deprecation") EReference getExecutionInfoManager_Executions(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager#getCurrentExecution <em>Current Execution</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Current Execution</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfoManager#getCurrentExecution() + * @see #getExecutionInfoManager() + * @generated + */ + EReference getExecutionInfoManager_CurrentExecution(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager#getFileModel <em>File Model</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>File Model</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionInfoManager#getFileModel() + * @see #getExecutionInfoManager() + * @generated + */ + EReference getExecutionInfoManager_FileModel(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.ExecutionStep <em>Execution Step</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Execution Step</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep + * @generated + */ + EClass getExecutionStep(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getSource <em>Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Source</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getSource() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_Source(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getTarget <em>Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Target</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getTarget() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_Target(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDependency <em>Dependency</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Dependency</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getDependency() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_Dependency(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToSource <em>Instance Component To Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Instance Component To Source</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToSource() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_InstanceComponentToSource(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToTarget <em>Instance Component To Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Instance Component To Target</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getInstanceComponentToTarget() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_InstanceComponentToTarget(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToSource <em>Diagnostic To Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Diagnostic To Source</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToSource() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_DiagnosticToSource(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToTarget <em>Diagnostic To Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Diagnostic To Target</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getDiagnosticToTarget() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_DiagnosticToTarget(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionStep#getFinalState <em>Final State</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Final State</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getFinalState() + * @see #getExecutionStep() + * @generated + */ + EAttribute getExecutionStep_FinalState(); + + /** + * Returns the meta object for the containment reference '{@link org.isistan.flabot.executionmodel.ExecutionStep#getExecutionContext <em>Execution Context</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Execution Context</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getExecutionContext() + * @see #getExecutionStep() + * @generated + */ + EReference getExecutionStep_ExecutionContext(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionStep#getEnabled <em>Enabled</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Enabled</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionStep#getEnabled() + * @see #getExecutionStep() + * @generated + */ + EAttribute getExecutionStep_Enabled(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry <em>Responsibility Node To Execution State Map Entry</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Responsibility Node To Execution State Map Entry</em>'. + * @see java.util.Map.Entry + * @model keyType="org.isistan.flabot.coremodel.ResponsibilityNode" + * valueType="org.isistan.flabot.engine.executionstate.ExecutionState" + * @generated + */ + EClass getResponsibilityNodeToExecutionStateMapEntry(); + + /** + * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Key</em>'. + * @see java.util.Map.Entry + * @see #getResponsibilityNodeToExecutionStateMapEntry() + * @generated + */ + EReference getResponsibilityNodeToExecutionStateMapEntry_Key(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see java.util.Map.Entry + * @see #getResponsibilityNodeToExecutionStateMapEntry() + * @generated + */ + EAttribute getResponsibilityNodeToExecutionStateMapEntry_Value(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.Dependency <em>Dependency</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Dependency</em>'. + * @see org.isistan.flabot.executionmodel.Dependency + * @generated + */ + EClass getDependency(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.Dependency#getEvent <em>Event</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Event</em>'. + * @see org.isistan.flabot.executionmodel.Dependency#getEvent() + * @see #getDependency() + * @generated + */ + EAttribute getDependency_Event(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.Dependency#getType <em>Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Type</em>'. + * @see org.isistan.flabot.executionmodel.Dependency#getType() + * @see #getDependency() + * @generated + */ + EAttribute getDependency_Type(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.common.notify.Adapter <em>Adapter</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Adapter</em>'. + * @see org.eclipse.emf.common.notify.Adapter + * @model instanceClass="org.eclipse.emf.common.notify.Adapter" + * @generated + */ + EClass getAdapter(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.ExecutionContext <em>Execution Context</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Execution Context</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext + * @generated + */ + EClass getExecutionContext(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentResponsibility <em>Current Responsibility</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Current Responsibility</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentResponsibility() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_CurrentResponsibility(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibility <em>Pre Responsibility</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Pre Responsibility</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibility() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_PreResponsibility(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentStep <em>Current Step</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Step</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentStep() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentStep(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentScenario <em>Current Scenario</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Scenario</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentScenario() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentScenario(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentState <em>Current State</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current State</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentState() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentState(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getDependencies <em>Dependencies</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Dependencies</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getDependencies() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_Dependencies(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentFamily <em>Current Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Family</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentFamily() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentFamily(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getFamily <em>Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Family</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getFamily() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_Family(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentTypeDependency <em>Current Type Dependency</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Type Dependency</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentTypeDependency() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentTypeDependency(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentDependency <em>Current Dependency</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Dependency</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentDependency() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentDependency(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentAnalizeDependency <em>Current Analize Dependency</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Analize Dependency</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentAnalizeDependency() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentAnalizeDependency(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEvent <em>Event</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Event</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getEvent() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_Event(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPrologKnowledge <em>Prolog Knowledge</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Prolog Knowledge</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getPrologKnowledge() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_PrologKnowledge(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getCurrentLogicModule <em>Current Logic Module</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Logic Module</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getCurrentLogicModule() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_CurrentLogicModule(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToExecute <em>Responsibility To Execute</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Responsibility To Execute</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToExecute() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_ResponsibilityToExecute(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getMappingFamily <em>Mapping Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Mapping Family</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getMappingFamily() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_MappingFamily(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getLastMappingFamily <em>Last Mapping Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Mapping Family</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getLastMappingFamily() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_LastMappingFamily(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStubNode <em>Stub Node</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Stub Node</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getStubNode() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_StubNode(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStartNodeToStub <em>Start Node To Stub</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Start Node To Stub</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getStartNodeToStub() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_StartNodeToStub(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEndNodeToStub <em>End Node To Stub</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>End Node To Stub</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getEndNodeToStub() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_EndNodeToStub(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToStub <em>Responsibility To Stub</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Responsibility To Stub</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToStub() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_ResponsibilityToStub(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToStub <em>Pre Responsibility To Stub</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Pre Responsibility To Stub</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToStub() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_PreResponsibilityToStub(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getStopStep <em>Stop Step</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Stop Step</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getStopStep() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_StopStep(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToSource <em>Instance Component To Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Instance Component To Source</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToSource() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_InstanceComponentToSource(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToTarget <em>Instance Component To Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Instance Component To Target</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getInstanceComponentToTarget() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_InstanceComponentToTarget(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToJoin <em>Responsibility To Join</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Responsibility To Join</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getResponsibilityToJoin() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_ResponsibilityToJoin(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToJoin <em>Pre Responsibility To Join</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Pre Responsibility To Join</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getPreResponsibilityToJoin() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_PreResponsibilityToJoin(); + + /** + * Returns the meta object for the map '{@link org.isistan.flabot.executionmodel.ExecutionContext#getBranchJoin <em>Branch Join</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the map '<em>Branch Join</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getBranchJoin() + * @see #getExecutionContext() + * @generated + */ + EReference getExecutionContext_BranchJoin(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.ExecutionContext#getEnabled <em>Enabled</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Enabled</em>'. + * @see org.isistan.flabot.executionmodel.ExecutionContext#getEnabled() + * @see #getExecutionContext() + * @generated + */ + EAttribute getExecutionContext_Enabled(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry <em>EString To EObject Map Entry</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>EString To EObject Map Entry</em>'. + * @see java.util.Map.Entry + * @model keyType="java.lang.String" + * valueType="org.eclipse.emf.ecore.EObject" + * @generated + */ + EClass getEStringToEObjectMapEntry(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Key</em>'. + * @see java.util.Map.Entry + * @see #getEStringToEObjectMapEntry() + * @generated + */ + EAttribute getEStringToEObjectMapEntry_Key(); + + /** + * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Value</em>'. + * @see java.util.Map.Entry + * @see #getEStringToEObjectMapEntry() + * @generated + */ + EReference getEStringToEObjectMapEntry_Value(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry <em>EString To EJava Object Map Entry</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>EString To EJava Object Map Entry</em>'. + * @see java.util.Map.Entry + * @model keyType="java.lang.String" + * valueType="java.lang.Object" + * @generated + */ + EClass getEStringToEJavaObjectMapEntry(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Key</em>'. + * @see java.util.Map.Entry + * @see #getEStringToEJavaObjectMapEntry() + * @generated + */ + EAttribute getEStringToEJavaObjectMapEntry_Key(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see java.util.Map.Entry + * @see #getEStringToEJavaObjectMapEntry() + * @generated + */ + EAttribute getEStringToEJavaObjectMapEntry_Value(); + + /** + * Returns the meta object for class '{@link java.util.Map.Entry <em>Simple Path Node To Execution State Map Entry</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Simple Path Node To Execution State Map Entry</em>'. + * @see java.util.Map.Entry + * @model keyType="org.isistan.flabot.coremodel.SimplePathNode" + * valueType="org.isistan.flabot.engine.executionstate.ExecutionState" + * @generated + */ + EClass getSimplePathNodeToExecutionStateMapEntry(); + + /** + * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Key</em>'. + * @see java.util.Map.Entry + * @see #getSimplePathNodeToExecutionStateMapEntry() + * @generated + */ + EReference getSimplePathNodeToExecutionStateMapEntry_Key(); + + /** + * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see java.util.Map.Entry + * @see #getSimplePathNodeToExecutionStateMapEntry() + * @generated + */ + EAttribute getSimplePathNodeToExecutionStateMapEntry_Value(); + + /** + * Returns the meta object for class '{@link org.isistan.flabot.executionmodel.EvaluationStep <em>Evaluation Step</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Evaluation Step</em>'. + * @see org.isistan.flabot.executionmodel.EvaluationStep + * @generated + */ + EClass getEvaluationStep(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.EvaluationStep#getSource <em>Source</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Source</em>'. + * @see org.isistan.flabot.executionmodel.EvaluationStep#getSource() + * @see #getEvaluationStep() + * @generated + */ + EReference getEvaluationStep_Source(); + + /** + * Returns the meta object for the reference '{@link org.isistan.flabot.executionmodel.EvaluationStep#getTarget <em>Target</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Target</em>'. + * @see org.isistan.flabot.executionmodel.EvaluationStep#getTarget() + * @see #getEvaluationStep() + * @generated + */ + EReference getEvaluationStep_Target(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.EvaluationStep#getCurrentFamily <em>Current Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Current Family</em>'. + * @see org.isistan.flabot.executionmodel.EvaluationStep#getCurrentFamily() + * @see #getEvaluationStep() + * @generated + */ + EAttribute getEvaluationStep_CurrentFamily(); + + /** + * Returns the meta object for the attribute '{@link org.isistan.flabot.executionmodel.EvaluationStep#getCondition <em>Condition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Condition</em>'. + * @see org.isistan.flabot.executionmodel.EvaluationStep#getCondition() + * @see #getEvaluationStep() + * @generated + */ + EAttribute getEvaluationStep_Condition(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + ExecutionmodelFactory getExecutionmodelFactory(); + +} //ExecutionmodelPackage diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/DependencyImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/DependencyImpl.java new file mode 100755 index 0000000..2707d45 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/DependencyImpl.java @@ -0,0 +1,220 @@ +/** + * <copyright> + * </copyright> + * + * $Id: DependencyImpl.java,v 1.3 2006/02/21 21:35:51 franco Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.Condition; +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Dependency</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.DependencyImpl#getEvent <em>Event</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.DependencyImpl#getType <em>Type</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class DependencyImpl extends EObjectImpl implements Dependency { + /** + * The default value of the '{@link #getEvent() <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEvent() + * @generated + * @ordered + */ + protected static final Object EVENT_EDEFAULT = null; + + /** + * The cached value of the '{@link #getEvent() <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEvent() + * @generated + * @ordered + */ + protected Object event = EVENT_EDEFAULT; + + /** + * The default value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated NOT + * @ordered + */ + protected static final String TYPE_EDEFAULT = Condition.previous; + + /** + * The cached value of the '{@link #getType() <em>Type</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getType() + * @generated + * @ordered + */ + protected String type = TYPE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected DependencyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getDependency(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getEvent() { + return event; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEvent(Object newEvent) { + Object oldEvent = event; + event = newEvent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.DEPENDENCY__EVENT, oldEvent, event)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getType() { + return type; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setType(String newType) { + String oldType = type; + type = newType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.DEPENDENCY__TYPE, oldType, type)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.DEPENDENCY__EVENT: + return getEvent(); + case ExecutionmodelPackage.DEPENDENCY__TYPE: + return getType(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.DEPENDENCY__EVENT: + setEvent((Object)newValue); + return; + case ExecutionmodelPackage.DEPENDENCY__TYPE: + setType((String)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.DEPENDENCY__EVENT: + setEvent(EVENT_EDEFAULT); + return; + case ExecutionmodelPackage.DEPENDENCY__TYPE: + setType(TYPE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.DEPENDENCY__EVENT: + return EVENT_EDEFAULT == null ? event != null : !EVENT_EDEFAULT.equals(event); + case ExecutionmodelPackage.DEPENDENCY__TYPE: + return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (event: "); + result.append(event); + result.append(", type: "); + result.append(type); + result.append(')'); + return result.toString(); + } + +} //DependencyImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEJavaObjectMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEJavaObjectMapEntryImpl.java new file mode 100755 index 0000000..1f353e2 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEJavaObjectMapEntryImpl.java @@ -0,0 +1,298 @@ +/** + * <copyright> + * </copyright> + * + * $Id: EStringToEJavaObjectMapEntryImpl.java,v 1.2 2006/02/03 21:03:06 dacostae Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>EString To EJava Object Map Entry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.EStringToEJavaObjectMapEntryImpl#getTypedKey <em>Key</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.EStringToEJavaObjectMapEntryImpl#getTypedValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EStringToEJavaObjectMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected static final String KEY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected String key = KEY_EDEFAULT; + + /** + * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected static final Object VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected Object value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EStringToEJavaObjectMapEntryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getEStringToEJavaObjectMapEntry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTypedKey() { + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedKey(String newKey) { + String oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getTypedValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedValue(Object newValue) { + Object oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + return getTypedKey(); + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + return getTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + setTypedKey((String)newValue); + return; + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + setTypedValue((Object)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + setTypedKey(KEY_EDEFAULT); + return; + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + setTypedValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY: + return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (key: "); + result.append(key); + result.append(", value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int hash = -1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setKey(Object key) { + setTypedKey((String)key); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((Object)value); + return oldValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //EStringToEJavaObjectMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.java new file mode 100755 index 0000000..8ef8b0e --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EStringToEObjectMapEntryImpl.java @@ -0,0 +1,305 @@ +/** + * <copyright> + * </copyright> + * + * $Id: EStringToEObjectMapEntryImpl.java,v 1.2 2006/02/03 21:03:07 dacostae Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>EString To EObject Map Entry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.EStringToEObjectMapEntryImpl#getTypedKey <em>Key</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.EStringToEObjectMapEntryImpl#getTypedValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EStringToEObjectMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected static final String KEY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected String key = KEY_EDEFAULT; + + /** + * The cached value of the '{@link #getTypedValue() <em>Value</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected EObject value = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EStringToEObjectMapEntryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getEStringToEObjectMapEntry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTypedKey() { + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedKey(String newKey) { + String oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject getTypedValue() { + if (value != null && value.eIsProxy()) { + EObject oldValue = value; + value = (EObject)eResolveProxy((InternalEObject)value); + if (value != oldValue) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE, oldValue, value)); + } + } + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EObject basicGetTypedValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedValue(EObject newValue) { + EObject oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__KEY: + return getTypedKey(); + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE: + if (resolve) return getTypedValue(); + return basicGetTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__KEY: + setTypedKey((String)newValue); + return; + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE: + setTypedValue((EObject)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__KEY: + setTypedKey(KEY_EDEFAULT); + return; + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE: + setTypedValue((EObject)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__KEY: + return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE: + return value != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (key: "); + result.append(key); + result.append(')'); + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int hash = -1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setKey(Object key) { + setTypedKey((String)key); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((EObject)value); + return oldValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //EStringToEObjectMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.java new file mode 100755 index 0000000..7ee3d07 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/EvaluationStepImpl.java @@ -0,0 +1,335 @@ +/** + * <copyright> + * </copyright> + * + * $Id: EvaluationStepImpl.java,v 1.2 2006/03/22 03:28:55 franco Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Evaluation Step</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.EvaluationStepImpl#getSource <em>Source</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.EvaluationStepImpl#getTarget <em>Target</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.EvaluationStepImpl#getCurrentFamily <em>Current Family</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.EvaluationStepImpl#getCondition <em>Condition</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EvaluationStepImpl extends EObjectImpl implements EvaluationStep { + /** + * The cached value of the '{@link #getSource() <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected SimplePathNode source = null; + + /** + * The cached value of the '{@link #getTarget() <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTarget() + * @generated + * @ordered + */ + protected SimplePathNode target = null; + + /** + * The default value of the '{@link #getCurrentFamily() <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentFamily() + * @generated + * @ordered + */ + protected static final String CURRENT_FAMILY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCurrentFamily() <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentFamily() + * @generated + * @ordered + */ + protected String currentFamily = CURRENT_FAMILY_EDEFAULT; + + /** + * The default value of the '{@link #getCondition() <em>Condition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCondition() + * @generated + * @ordered + */ + protected static final String CONDITION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCondition() <em>Condition</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCondition() + * @generated + * @ordered + */ + protected String condition = CONDITION_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EvaluationStepImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getEvaluationStep(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getSource() { + if (source != null && source.eIsProxy()) { + SimplePathNode oldSource = source; + source = (SimplePathNode)eResolveProxy((InternalEObject)source); + if (source != oldSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EVALUATION_STEP__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetSource() { + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSource(SimplePathNode newSource) { + SimplePathNode oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EVALUATION_STEP__SOURCE, oldSource, source)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getTarget() { + if (target != null && target.eIsProxy()) { + SimplePathNode oldTarget = target; + target = (SimplePathNode)eResolveProxy((InternalEObject)target); + if (target != oldTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EVALUATION_STEP__TARGET, oldTarget, target)); + } + } + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetTarget() { + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTarget(SimplePathNode newTarget) { + SimplePathNode oldTarget = target; + target = newTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EVALUATION_STEP__TARGET, oldTarget, target)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentFamily() { + return currentFamily; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentFamily(String newCurrentFamily) { + String oldCurrentFamily = currentFamily; + currentFamily = newCurrentFamily; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EVALUATION_STEP__CURRENT_FAMILY, oldCurrentFamily, currentFamily)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCondition() { + return condition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCondition(String newCondition) { + String oldCondition = condition; + condition = newCondition; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EVALUATION_STEP__CONDITION, oldCondition, condition)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EVALUATION_STEP__SOURCE: + if (resolve) return getSource(); + return basicGetSource(); + case ExecutionmodelPackage.EVALUATION_STEP__TARGET: + if (resolve) return getTarget(); + return basicGetTarget(); + case ExecutionmodelPackage.EVALUATION_STEP__CURRENT_FAMILY: + return getCurrentFamily(); + case ExecutionmodelPackage.EVALUATION_STEP__CONDITION: + return getCondition(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EVALUATION_STEP__SOURCE: + setSource((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EVALUATION_STEP__TARGET: + setTarget((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EVALUATION_STEP__CURRENT_FAMILY: + setCurrentFamily((String)newValue); + return; + case ExecutionmodelPackage.EVALUATION_STEP__CONDITION: + setCondition((String)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EVALUATION_STEP__SOURCE: + setSource((SimplePathNode)null); + return; + case ExecutionmodelPackage.EVALUATION_STEP__TARGET: + setTarget((SimplePathNode)null); + return; + case ExecutionmodelPackage.EVALUATION_STEP__CURRENT_FAMILY: + setCurrentFamily(CURRENT_FAMILY_EDEFAULT); + return; + case ExecutionmodelPackage.EVALUATION_STEP__CONDITION: + setCondition(CONDITION_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EVALUATION_STEP__SOURCE: + return source != null; + case ExecutionmodelPackage.EVALUATION_STEP__TARGET: + return target != null; + case ExecutionmodelPackage.EVALUATION_STEP__CURRENT_FAMILY: + return CURRENT_FAMILY_EDEFAULT == null ? currentFamily != null : !CURRENT_FAMILY_EDEFAULT.equals(currentFamily); + case ExecutionmodelPackage.EVALUATION_STEP__CONDITION: + return CONDITION_EDEFAULT == null ? condition != null : !CONDITION_EDEFAULT.equals(condition); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (currentFamily: "); + result.append(currentFamily); + result.append(", condition: "); + result.append(condition); + result.append(')'); + return result.toString(); + } + +} //EvaluationStepImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.java new file mode 100755 index 0000000..a023351 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionContextImpl.java @@ -0,0 +1,1778 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionContextImpl.java,v 1.16 2006/04/11 04:21:27 apersson Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl; +import org.eclipse.emf.ecore.util.EcoreEMap; +import org.eclipse.emf.ecore.util.InternalEList; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.RuntimeManager; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Execution Context</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentResponsibility <em>Current Responsibility</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getPreResponsibility <em>Pre Responsibility</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentStep <em>Current Step</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentScenario <em>Current Scenario</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentState <em>Current State</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getDependencies <em>Dependencies</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentFamily <em>Current Family</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getFamily <em>Family</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentTypeDependency <em>Current Type Dependency</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentDependency <em>Current Dependency</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentAnalizeDependency <em>Current Analize Dependency</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getEvent <em>Event</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getPrologKnowledge <em>Prolog Knowledge</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getCurrentLogicModule <em>Current Logic Module</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getResponsibilityToExecute <em>Responsibility To Execute</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getMappingFamily <em>Mapping Family</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getLastMappingFamily <em>Last Mapping Family</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getStubNode <em>Stub Node</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getStartNodeToStub <em>Start Node To Stub</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getEndNodeToStub <em>End Node To Stub</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getResponsibilityToStub <em>Responsibility To Stub</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getPreResponsibilityToStub <em>Pre Responsibility To Stub</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getStopStep <em>Stop Step</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getInstanceComponentToSource <em>Instance Component To Source</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getInstanceComponentToTarget <em>Instance Component To Target</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getResponsibilityToJoin <em>Responsibility To Join</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getPreResponsibilityToJoin <em>Pre Responsibility To Join</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getBranchJoin <em>Branch Join</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionContextImpl#getEnabled <em>Enabled</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExecutionContextImpl extends EObjectImpl implements ExecutionContext { + /** + * The cached value of the '{@link #getCurrentResponsibility() <em>Current Responsibility</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentResponsibility() + * @generated + * @ordered + */ + protected SimplePathNode currentResponsibility = null; + + /** + * The cached value of the '{@link #getPreResponsibility() <em>Pre Responsibility</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreResponsibility() + * @generated + * @ordered + */ + protected SimplePathNode preResponsibility = null; + + /** + * The default value of the '{@link #getCurrentStep() <em>Current Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentStep() + * @generated + * @ordered + */ + protected static final String CURRENT_STEP_EDEFAULT = "0"; + + /** + * The cached value of the '{@link #getCurrentStep() <em>Current Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentStep() + * @generated + * @ordered + */ + protected String currentStep = CURRENT_STEP_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentScenario() <em>Current Scenario</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentScenario() + * @generated + * @ordered + */ + protected static final String CURRENT_SCENARIO_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCurrentScenario() <em>Current Scenario</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentScenario() + * @generated + * @ordered + */ + protected String currentScenario = CURRENT_SCENARIO_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentState() <em>Current State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentState() + * @generated + * @ordered + */ + protected static final String CURRENT_STATE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCurrentState() <em>Current State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentState() + * @generated + * @ordered + */ + protected String currentState = CURRENT_STATE_EDEFAULT; + + /** + * The default value of the '{@link #getDependencies() <em>Dependencies</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDependencies() + * @generated + * @ordered + */ + protected static final String DEPENDENCIES_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDependencies() <em>Dependencies</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDependencies() + * @generated + * @ordered + */ + protected String dependencies = DEPENDENCIES_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentFamily() <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentFamily() + * @generated NOT + * @ordered + */ + public static final String CURRENT_FAMILY_EDEFAULT = "'Family'"; + + /** + * The cached value of the '{@link #getCurrentFamily() <em>Current Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentFamily() + * @generated + * @ordered + */ + protected String currentFamily = CURRENT_FAMILY_EDEFAULT; + + /** + * The default value of the '{@link #getFamily() <em>Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFamily() + * @generated + * @ordered + */ + protected static final String FAMILY_EDEFAULT = "Family"; + + /** + * The cached value of the '{@link #getFamily() <em>Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFamily() + * @generated + * @ordered + */ + protected String family = FAMILY_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentTypeDependency() <em>Current Type Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentTypeDependency() + * @generated + * @ordered + */ + protected static final String CURRENT_TYPE_DEPENDENCY_EDEFAULT = "[]"; + + /** + * The cached value of the '{@link #getCurrentTypeDependency() <em>Current Type Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentTypeDependency() + * @generated + * @ordered + */ + protected String currentTypeDependency = CURRENT_TYPE_DEPENDENCY_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentDependency() <em>Current Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentDependency() + * @generated + * @ordered + */ + protected static final String CURRENT_DEPENDENCY_EDEFAULT = "[]"; + + /** + * The cached value of the '{@link #getCurrentDependency() <em>Current Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentDependency() + * @generated + * @ordered + */ + protected String currentDependency = CURRENT_DEPENDENCY_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentAnalizeDependency() <em>Current Analize Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentAnalizeDependency() + * @generated + * @ordered + */ + protected static final String CURRENT_ANALIZE_DEPENDENCY_EDEFAULT = "DEFAULT_DEPENDENCY"; + + /** + * The cached value of the '{@link #getCurrentAnalizeDependency() <em>Current Analize Dependency</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentAnalizeDependency() + * @generated + * @ordered + */ + protected String currentAnalizeDependency = CURRENT_ANALIZE_DEPENDENCY_EDEFAULT; + + /** + * The default value of the '{@link #getEvent() <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEvent() + * @generated + * @ordered + */ + protected static final String EVENT_EDEFAULT = "Event"; + + /** + * The cached value of the '{@link #getEvent() <em>Event</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEvent() + * @generated + * @ordered + */ + protected String event = EVENT_EDEFAULT; + + /** + * The default value of the '{@link #getPrologKnowledge() <em>Prolog Knowledge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologKnowledge() + * @generated + * @ordered + */ + protected static final String PROLOG_KNOWLEDGE_EDEFAULT = ""; + + /** + * The cached value of the '{@link #getPrologKnowledge() <em>Prolog Knowledge</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPrologKnowledge() + * @generated + * @ordered + */ + protected String prologKnowledge = PROLOG_KNOWLEDGE_EDEFAULT; + + /** + * The default value of the '{@link #getCurrentLogicModule() <em>Current Logic Module</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentLogicModule() + * @generated NOT + * @ordered + */ + protected static final String CURRENT_LOGIC_MODULE_EDEFAULT = RuntimeManager.LogicModuleGeneral; + + /** + * The cached value of the '{@link #getCurrentLogicModule() <em>Current Logic Module</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentLogicModule() + * @generated + * @ordered + */ + protected String currentLogicModule = CURRENT_LOGIC_MODULE_EDEFAULT; + + /** + * The cached value of the '{@link #getResponsibilityToExecute() <em>Responsibility To Execute</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getResponsibilityToExecute() + * @generated NOT + * @ordered + */ + protected SimplePathNode responsibilityToExecute = preResponsibility; + + /** + * The default value of the '{@link #getMappingFamily() <em>Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingFamily() + * @generated + * @ordered + */ + protected static final String MAPPING_FAMILY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMappingFamily() <em>Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMappingFamily() + * @generated + * @ordered + */ + protected String mappingFamily = MAPPING_FAMILY_EDEFAULT; + + /** + * The default value of the '{@link #getLastMappingFamily() <em>Last Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastMappingFamily() + * @generated + * @ordered + */ + protected static final String LAST_MAPPING_FAMILY_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLastMappingFamily() <em>Last Mapping Family</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastMappingFamily() + * @generated + * @ordered + */ + protected String lastMappingFamily = LAST_MAPPING_FAMILY_EDEFAULT; + + /** + * The cached value of the '{@link #getStubNode() <em>Stub Node</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStubNode() + * @generated + * @ordered + */ + protected SimplePathNode stubNode = null; + + /** + * The cached value of the '{@link #getStartNodeToStub() <em>Start Node To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStartNodeToStub() + * @generated + * @ordered + */ + protected SimplePathNode startNodeToStub = null; + + /** + * The cached value of the '{@link #getEndNodeToStub() <em>End Node To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEndNodeToStub() + * @generated + * @ordered + */ + protected SimplePathNode endNodeToStub = null; + + /** + * The cached value of the '{@link #getResponsibilityToStub() <em>Responsibility To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getResponsibilityToStub() + * @generated + * @ordered + */ + protected SimplePathNode responsibilityToStub = null; + + /** + * The cached value of the '{@link #getPreResponsibilityToStub() <em>Pre Responsibility To Stub</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreResponsibilityToStub() + * @generated + * @ordered + */ + protected SimplePathNode preResponsibilityToStub = null; + + /** + * The default value of the '{@link #getStopStep() <em>Stop Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStopStep() + * @generated NOT + * @ordered + */ + protected static final String STOP_STEP_EDEFAULT = "RUN"; + + /** + * The cached value of the '{@link #getStopStep() <em>Stop Step</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getStopStep() + * @generated + * @ordered + */ + protected String stopStep = STOP_STEP_EDEFAULT; + + /** + * The cached value of the '{@link #getInstanceComponentToSource() <em>Instance Component To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstanceComponentToSource() + * @generated + * @ordered + */ + protected ComponentRole instanceComponentToSource = null; + + /** + * The cached value of the '{@link #getInstanceComponentToTarget() <em>Instance Component To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstanceComponentToTarget() + * @generated + * @ordered + */ + protected ComponentRole instanceComponentToTarget = null; + + /** + * The cached value of the '{@link #getResponsibilityToJoin() <em>Responsibility To Join</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getResponsibilityToJoin() + * @generated + * @ordered + */ + protected SimplePathNode responsibilityToJoin = null; + + /** + * The cached value of the '{@link #getPreResponsibilityToJoin() <em>Pre Responsibility To Join</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPreResponsibilityToJoin() + * @generated + * @ordered + */ + protected SimplePathNode preResponsibilityToJoin = null; + + /** + * The cached value of the '{@link #getBranchJoin() <em>Branch Join</em>}' map. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBranchJoin() + * @generated + * @ordered + */ + protected EMap branchJoin = null; + + /** + * The default value of the '{@link #getEnabled() <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEnabled() + * @generated NOT + * @ordered + */ + protected static final int ENABLED_EDEFAULT = ExecutionContext.enabled_Step; + + /** + * The cached value of the '{@link #getEnabled() <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEnabled() + * @generated + * @ordered + */ + protected int enabled = ENABLED_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionContextImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getExecutionContext(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getCurrentResponsibility() { + if (currentResponsibility != null && currentResponsibility.eIsProxy()) { + SimplePathNode oldCurrentResponsibility = currentResponsibility; + currentResponsibility = (SimplePathNode)eResolveProxy((InternalEObject)currentResponsibility); + if (currentResponsibility != oldCurrentResponsibility) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY, oldCurrentResponsibility, currentResponsibility)); + } + } + return currentResponsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetCurrentResponsibility() { + return currentResponsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentResponsibility(SimplePathNode newCurrentResponsibility) { + SimplePathNode oldCurrentResponsibility = currentResponsibility; + currentResponsibility = newCurrentResponsibility; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY, oldCurrentResponsibility, currentResponsibility)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getPreResponsibility() { + if (preResponsibility != null && preResponsibility.eIsProxy()) { + SimplePathNode oldPreResponsibility = preResponsibility; + preResponsibility = (SimplePathNode)eResolveProxy((InternalEObject)preResponsibility); + if (preResponsibility != oldPreResponsibility) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY, oldPreResponsibility, preResponsibility)); + } + } + return preResponsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetPreResponsibility() { + return preResponsibility; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreResponsibility(SimplePathNode newPreResponsibility) { + SimplePathNode oldPreResponsibility = preResponsibility; + preResponsibility = newPreResponsibility; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY, oldPreResponsibility, preResponsibility)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentStep() { + return currentStep; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentStep(String newCurrentStep) { + String oldCurrentStep = currentStep; + currentStep = newCurrentStep; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STEP, oldCurrentStep, currentStep)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentScenario() { + return currentScenario; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentScenario(String newCurrentScenario) { + String oldCurrentScenario = currentScenario; + currentScenario = newCurrentScenario; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_SCENARIO, oldCurrentScenario, currentScenario)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentState() { + return currentState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentState(String newCurrentState) { + String oldCurrentState = currentState; + currentState = newCurrentState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STATE, oldCurrentState, currentState)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getDependencies() { + return dependencies; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDependencies(String newDependencies) { + String oldDependencies = dependencies; + dependencies = newDependencies; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__DEPENDENCIES, oldDependencies, dependencies)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentFamily() { + return currentFamily; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentFamily(String newCurrentFamily) { + String oldCurrentFamily = currentFamily; + currentFamily = newCurrentFamily; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_FAMILY, oldCurrentFamily, currentFamily)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getFamily() { + return family; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFamily(String newFamily) { + String oldFamily = family; + family = newFamily; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__FAMILY, oldFamily, family)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentTypeDependency() { + return currentTypeDependency; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentTypeDependency(String newCurrentTypeDependency) { + String oldCurrentTypeDependency = currentTypeDependency; + currentTypeDependency = newCurrentTypeDependency; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY, oldCurrentTypeDependency, currentTypeDependency)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentDependency() { + return currentDependency; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentDependency(String newCurrentDependency) { + String oldCurrentDependency = currentDependency; + currentDependency = newCurrentDependency; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_DEPENDENCY, oldCurrentDependency, currentDependency)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentAnalizeDependency() { + return currentAnalizeDependency; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentAnalizeDependency(String newCurrentAnalizeDependency) { + String oldCurrentAnalizeDependency = currentAnalizeDependency; + currentAnalizeDependency = newCurrentAnalizeDependency; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY, oldCurrentAnalizeDependency, currentAnalizeDependency)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getEvent() { + return event; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEvent(String newEvent) { + String oldEvent = event; + event = newEvent; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__EVENT, oldEvent, event)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getPrologKnowledge() { + return prologKnowledge; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPrologKnowledge(String newPrologKnowledge) { + String oldPrologKnowledge = prologKnowledge; + prologKnowledge = newPrologKnowledge; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__PROLOG_KNOWLEDGE, oldPrologKnowledge, prologKnowledge)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCurrentLogicModule() { + return currentLogicModule; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentLogicModule(String newCurrentLogicModule) { + String oldCurrentLogicModule = currentLogicModule; + currentLogicModule = newCurrentLogicModule; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE, oldCurrentLogicModule, currentLogicModule)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public SimplePathNode getResponsibilityToExecute() { + if (responsibilityToExecute != null && responsibilityToExecute.eIsProxy()) { + SimplePathNode oldResponsibilityToExecute = responsibilityToExecute; + responsibilityToExecute = (SimplePathNode)eResolveProxy((InternalEObject)responsibilityToExecute); + if (responsibilityToExecute != oldResponsibilityToExecute) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE, oldResponsibilityToExecute, responsibilityToExecute)); + } + } + if (responsibilityToExecute!=null) + return responsibilityToExecute; + else return getPreResponsibility(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetResponsibilityToExecute() { + return responsibilityToExecute; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setResponsibilityToExecute(SimplePathNode newResponsibilityToExecute) { + SimplePathNode oldResponsibilityToExecute = responsibilityToExecute; + responsibilityToExecute = newResponsibilityToExecute; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE, oldResponsibilityToExecute, responsibilityToExecute)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMappingFamily() { + return mappingFamily; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMappingFamily(String newMappingFamily) { + String oldMappingFamily = mappingFamily; + mappingFamily = newMappingFamily; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__MAPPING_FAMILY, oldMappingFamily, mappingFamily)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLastMappingFamily() { + return lastMappingFamily; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setLastMappingFamily(String newLastMappingFamily) { + String oldLastMappingFamily = lastMappingFamily; + lastMappingFamily = newLastMappingFamily; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__LAST_MAPPING_FAMILY, oldLastMappingFamily, lastMappingFamily)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getStubNode() { + if (stubNode != null && stubNode.eIsProxy()) { + SimplePathNode oldStubNode = stubNode; + stubNode = (SimplePathNode)eResolveProxy((InternalEObject)stubNode); + if (stubNode != oldStubNode) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE, oldStubNode, stubNode)); + } + } + return stubNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetStubNode() { + return stubNode; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStubNode(SimplePathNode newStubNode) { + SimplePathNode oldStubNode = stubNode; + stubNode = newStubNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE, oldStubNode, stubNode)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getStartNodeToStub() { + if (startNodeToStub != null && startNodeToStub.eIsProxy()) { + SimplePathNode oldStartNodeToStub = startNodeToStub; + startNodeToStub = (SimplePathNode)eResolveProxy((InternalEObject)startNodeToStub); + if (startNodeToStub != oldStartNodeToStub) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB, oldStartNodeToStub, startNodeToStub)); + } + } + return startNodeToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetStartNodeToStub() { + return startNodeToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStartNodeToStub(SimplePathNode newStartNodeToStub) { + SimplePathNode oldStartNodeToStub = startNodeToStub; + startNodeToStub = newStartNodeToStub; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB, oldStartNodeToStub, startNodeToStub)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getEndNodeToStub() { + if (endNodeToStub != null && endNodeToStub.eIsProxy()) { + SimplePathNode oldEndNodeToStub = endNodeToStub; + endNodeToStub = (SimplePathNode)eResolveProxy((InternalEObject)endNodeToStub); + if (endNodeToStub != oldEndNodeToStub) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB, oldEndNodeToStub, endNodeToStub)); + } + } + return endNodeToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetEndNodeToStub() { + return endNodeToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEndNodeToStub(SimplePathNode newEndNodeToStub) { + SimplePathNode oldEndNodeToStub = endNodeToStub; + endNodeToStub = newEndNodeToStub; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB, oldEndNodeToStub, endNodeToStub)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getResponsibilityToStub() { + if (responsibilityToStub != null && responsibilityToStub.eIsProxy()) { + SimplePathNode oldResponsibilityToStub = responsibilityToStub; + responsibilityToStub = (SimplePathNode)eResolveProxy((InternalEObject)responsibilityToStub); + if (responsibilityToStub != oldResponsibilityToStub) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB, oldResponsibilityToStub, responsibilityToStub)); + } + } + return responsibilityToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetResponsibilityToStub() { + return responsibilityToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setResponsibilityToStub(SimplePathNode newResponsibilityToStub) { + SimplePathNode oldResponsibilityToStub = responsibilityToStub; + responsibilityToStub = newResponsibilityToStub; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB, oldResponsibilityToStub, responsibilityToStub)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getPreResponsibilityToStub() { + if (preResponsibilityToStub != null && preResponsibilityToStub.eIsProxy()) { + SimplePathNode oldPreResponsibilityToStub = preResponsibilityToStub; + preResponsibilityToStub = (SimplePathNode)eResolveProxy((InternalEObject)preResponsibilityToStub); + if (preResponsibilityToStub != oldPreResponsibilityToStub) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB, oldPreResponsibilityToStub, preResponsibilityToStub)); + } + } + return preResponsibilityToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetPreResponsibilityToStub() { + return preResponsibilityToStub; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreResponsibilityToStub(SimplePathNode newPreResponsibilityToStub) { + SimplePathNode oldPreResponsibilityToStub = preResponsibilityToStub; + preResponsibilityToStub = newPreResponsibilityToStub; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB, oldPreResponsibilityToStub, preResponsibilityToStub)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getStopStep() { + return stopStep; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setStopStep(String newStopStep) { + String oldStopStep = stopStep; + stopStep = newStopStep; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__STOP_STEP, oldStopStep, stopStep)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole getInstanceComponentToSource() { + if (instanceComponentToSource != null && instanceComponentToSource.eIsProxy()) { + ComponentRole oldInstanceComponentToSource = instanceComponentToSource; + instanceComponentToSource = (ComponentRole)eResolveProxy((InternalEObject)instanceComponentToSource); + if (instanceComponentToSource != oldInstanceComponentToSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE, oldInstanceComponentToSource, instanceComponentToSource)); + } + } + return instanceComponentToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole basicGetInstanceComponentToSource() { + return instanceComponentToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInstanceComponentToSource(ComponentRole newInstanceComponentToSource) { + ComponentRole oldInstanceComponentToSource = instanceComponentToSource; + instanceComponentToSource = newInstanceComponentToSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE, oldInstanceComponentToSource, instanceComponentToSource)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole getInstanceComponentToTarget() { + if (instanceComponentToTarget != null && instanceComponentToTarget.eIsProxy()) { + ComponentRole oldInstanceComponentToTarget = instanceComponentToTarget; + instanceComponentToTarget = (ComponentRole)eResolveProxy((InternalEObject)instanceComponentToTarget); + if (instanceComponentToTarget != oldInstanceComponentToTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET, oldInstanceComponentToTarget, instanceComponentToTarget)); + } + } + return instanceComponentToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole basicGetInstanceComponentToTarget() { + return instanceComponentToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInstanceComponentToTarget(ComponentRole newInstanceComponentToTarget) { + ComponentRole oldInstanceComponentToTarget = instanceComponentToTarget; + instanceComponentToTarget = newInstanceComponentToTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET, oldInstanceComponentToTarget, instanceComponentToTarget)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getResponsibilityToJoin() { + if (responsibilityToJoin != null && responsibilityToJoin.eIsProxy()) { + SimplePathNode oldResponsibilityToJoin = responsibilityToJoin; + responsibilityToJoin = (SimplePathNode)eResolveProxy((InternalEObject)responsibilityToJoin); + if (responsibilityToJoin != oldResponsibilityToJoin) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN, oldResponsibilityToJoin, responsibilityToJoin)); + } + } + return responsibilityToJoin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetResponsibilityToJoin() { + return responsibilityToJoin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setResponsibilityToJoin(SimplePathNode newResponsibilityToJoin) { + SimplePathNode oldResponsibilityToJoin = responsibilityToJoin; + responsibilityToJoin = newResponsibilityToJoin; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN, oldResponsibilityToJoin, responsibilityToJoin)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getPreResponsibilityToJoin() { + if (preResponsibilityToJoin != null && preResponsibilityToJoin.eIsProxy()) { + SimplePathNode oldPreResponsibilityToJoin = preResponsibilityToJoin; + preResponsibilityToJoin = (SimplePathNode)eResolveProxy((InternalEObject)preResponsibilityToJoin); + if (preResponsibilityToJoin != oldPreResponsibilityToJoin) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN, oldPreResponsibilityToJoin, preResponsibilityToJoin)); + } + } + return preResponsibilityToJoin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetPreResponsibilityToJoin() { + return preResponsibilityToJoin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPreResponsibilityToJoin(SimplePathNode newPreResponsibilityToJoin) { + SimplePathNode oldPreResponsibilityToJoin = preResponsibilityToJoin; + preResponsibilityToJoin = newPreResponsibilityToJoin; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN, oldPreResponsibilityToJoin, preResponsibilityToJoin)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getBranchJoin() { + if (branchJoin == null) { + branchJoin = new EcoreEMap(EcorePackage.eINSTANCE.getEStringToStringMapEntry(), EStringToStringMapEntryImpl.class, this, ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN); + } + return branchJoin; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getEnabled() { + return enabled; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEnabled(int newEnabled) { + int oldEnabled = enabled; + enabled = newEnabled; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_CONTEXT__ENABLED, oldEnabled, enabled)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN: + return ((InternalEList)getBranchJoin()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY: + if (resolve) return getCurrentResponsibility(); + return basicGetCurrentResponsibility(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY: + if (resolve) return getPreResponsibility(); + return basicGetPreResponsibility(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STEP: + return getCurrentStep(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_SCENARIO: + return getCurrentScenario(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STATE: + return getCurrentState(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__DEPENDENCIES: + return getDependencies(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_FAMILY: + return getCurrentFamily(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__FAMILY: + return getFamily(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY: + return getCurrentTypeDependency(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_DEPENDENCY: + return getCurrentDependency(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY: + return getCurrentAnalizeDependency(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__EVENT: + return getEvent(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__PROLOG_KNOWLEDGE: + return getPrologKnowledge(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE: + return getCurrentLogicModule(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE: + if (resolve) return getResponsibilityToExecute(); + return basicGetResponsibilityToExecute(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__MAPPING_FAMILY: + return getMappingFamily(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__LAST_MAPPING_FAMILY: + return getLastMappingFamily(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE: + if (resolve) return getStubNode(); + return basicGetStubNode(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB: + if (resolve) return getStartNodeToStub(); + return basicGetStartNodeToStub(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB: + if (resolve) return getEndNodeToStub(); + return basicGetEndNodeToStub(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB: + if (resolve) return getResponsibilityToStub(); + return basicGetResponsibilityToStub(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB: + if (resolve) return getPreResponsibilityToStub(); + return basicGetPreResponsibilityToStub(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__STOP_STEP: + return getStopStep(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE: + if (resolve) return getInstanceComponentToSource(); + return basicGetInstanceComponentToSource(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET: + if (resolve) return getInstanceComponentToTarget(); + return basicGetInstanceComponentToTarget(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN: + if (resolve) return getResponsibilityToJoin(); + return basicGetResponsibilityToJoin(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN: + if (resolve) return getPreResponsibilityToJoin(); + return basicGetPreResponsibilityToJoin(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN: + return getBranchJoin(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__ENABLED: + return new Integer(getEnabled()); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY: + setCurrentResponsibility((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY: + setPreResponsibility((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STEP: + setCurrentStep((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_SCENARIO: + setCurrentScenario((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STATE: + setCurrentState((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__DEPENDENCIES: + setDependencies((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_FAMILY: + setCurrentFamily((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__FAMILY: + setFamily((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY: + setCurrentTypeDependency((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_DEPENDENCY: + setCurrentDependency((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY: + setCurrentAnalizeDependency((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__EVENT: + setEvent((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PROLOG_KNOWLEDGE: + setPrologKnowledge((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE: + setCurrentLogicModule((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE: + setResponsibilityToExecute((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__MAPPING_FAMILY: + setMappingFamily((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__LAST_MAPPING_FAMILY: + setLastMappingFamily((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE: + setStubNode((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB: + setStartNodeToStub((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB: + setEndNodeToStub((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB: + setResponsibilityToStub((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB: + setPreResponsibilityToStub((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__STOP_STEP: + setStopStep((String)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE: + setInstanceComponentToSource((ComponentRole)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET: + setInstanceComponentToTarget((ComponentRole)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN: + setResponsibilityToJoin((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN: + setPreResponsibilityToJoin((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN: + getBranchJoin().clear(); + getBranchJoin().addAll((Collection)newValue); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__ENABLED: + setEnabled(((Integer)newValue).intValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY: + setCurrentResponsibility((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY: + setPreResponsibility((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STEP: + setCurrentStep(CURRENT_STEP_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_SCENARIO: + setCurrentScenario(CURRENT_SCENARIO_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STATE: + setCurrentState(CURRENT_STATE_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__DEPENDENCIES: + setDependencies(DEPENDENCIES_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_FAMILY: + setCurrentFamily(CURRENT_FAMILY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__FAMILY: + setFamily(FAMILY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY: + setCurrentTypeDependency(CURRENT_TYPE_DEPENDENCY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_DEPENDENCY: + setCurrentDependency(CURRENT_DEPENDENCY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY: + setCurrentAnalizeDependency(CURRENT_ANALIZE_DEPENDENCY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__EVENT: + setEvent(EVENT_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PROLOG_KNOWLEDGE: + setPrologKnowledge(PROLOG_KNOWLEDGE_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE: + setCurrentLogicModule(CURRENT_LOGIC_MODULE_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE: + setResponsibilityToExecute((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__MAPPING_FAMILY: + setMappingFamily(MAPPING_FAMILY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__LAST_MAPPING_FAMILY: + setLastMappingFamily(LAST_MAPPING_FAMILY_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE: + setStubNode((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB: + setStartNodeToStub((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB: + setEndNodeToStub((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB: + setResponsibilityToStub((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB: + setPreResponsibilityToStub((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__STOP_STEP: + setStopStep(STOP_STEP_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE: + setInstanceComponentToSource((ComponentRole)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET: + setInstanceComponentToTarget((ComponentRole)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN: + setResponsibilityToJoin((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN: + setPreResponsibilityToJoin((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN: + getBranchJoin().clear(); + return; + case ExecutionmodelPackage.EXECUTION_CONTEXT__ENABLED: + setEnabled(ENABLED_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY: + return currentResponsibility != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY: + return preResponsibility != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STEP: + return CURRENT_STEP_EDEFAULT == null ? currentStep != null : !CURRENT_STEP_EDEFAULT.equals(currentStep); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_SCENARIO: + return CURRENT_SCENARIO_EDEFAULT == null ? currentScenario != null : !CURRENT_SCENARIO_EDEFAULT.equals(currentScenario); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_STATE: + return CURRENT_STATE_EDEFAULT == null ? currentState != null : !CURRENT_STATE_EDEFAULT.equals(currentState); + case ExecutionmodelPackage.EXECUTION_CONTEXT__DEPENDENCIES: + return DEPENDENCIES_EDEFAULT == null ? dependencies != null : !DEPENDENCIES_EDEFAULT.equals(dependencies); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_FAMILY: + return CURRENT_FAMILY_EDEFAULT == null ? currentFamily != null : !CURRENT_FAMILY_EDEFAULT.equals(currentFamily); + case ExecutionmodelPackage.EXECUTION_CONTEXT__FAMILY: + return FAMILY_EDEFAULT == null ? family != null : !FAMILY_EDEFAULT.equals(family); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY: + return CURRENT_TYPE_DEPENDENCY_EDEFAULT == null ? currentTypeDependency != null : !CURRENT_TYPE_DEPENDENCY_EDEFAULT.equals(currentTypeDependency); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_DEPENDENCY: + return CURRENT_DEPENDENCY_EDEFAULT == null ? currentDependency != null : !CURRENT_DEPENDENCY_EDEFAULT.equals(currentDependency); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY: + return CURRENT_ANALIZE_DEPENDENCY_EDEFAULT == null ? currentAnalizeDependency != null : !CURRENT_ANALIZE_DEPENDENCY_EDEFAULT.equals(currentAnalizeDependency); + case ExecutionmodelPackage.EXECUTION_CONTEXT__EVENT: + return EVENT_EDEFAULT == null ? event != null : !EVENT_EDEFAULT.equals(event); + case ExecutionmodelPackage.EXECUTION_CONTEXT__PROLOG_KNOWLEDGE: + return PROLOG_KNOWLEDGE_EDEFAULT == null ? prologKnowledge != null : !PROLOG_KNOWLEDGE_EDEFAULT.equals(prologKnowledge); + case ExecutionmodelPackage.EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE: + return CURRENT_LOGIC_MODULE_EDEFAULT == null ? currentLogicModule != null : !CURRENT_LOGIC_MODULE_EDEFAULT.equals(currentLogicModule); + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE: + return responsibilityToExecute != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__MAPPING_FAMILY: + return MAPPING_FAMILY_EDEFAULT == null ? mappingFamily != null : !MAPPING_FAMILY_EDEFAULT.equals(mappingFamily); + case ExecutionmodelPackage.EXECUTION_CONTEXT__LAST_MAPPING_FAMILY: + return LAST_MAPPING_FAMILY_EDEFAULT == null ? lastMappingFamily != null : !LAST_MAPPING_FAMILY_EDEFAULT.equals(lastMappingFamily); + case ExecutionmodelPackage.EXECUTION_CONTEXT__STUB_NODE: + return stubNode != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__START_NODE_TO_STUB: + return startNodeToStub != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__END_NODE_TO_STUB: + return endNodeToStub != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB: + return responsibilityToStub != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB: + return preResponsibilityToStub != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__STOP_STEP: + return STOP_STEP_EDEFAULT == null ? stopStep != null : !STOP_STEP_EDEFAULT.equals(stopStep); + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE: + return instanceComponentToSource != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET: + return instanceComponentToTarget != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN: + return responsibilityToJoin != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN: + return preResponsibilityToJoin != null; + case ExecutionmodelPackage.EXECUTION_CONTEXT__BRANCH_JOIN: + return branchJoin != null && !branchJoin.isEmpty(); + case ExecutionmodelPackage.EXECUTION_CONTEXT__ENABLED: + return enabled != ENABLED_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (currentStep: "); + result.append(currentStep); + result.append(", currentScenario: "); + result.append(currentScenario); + result.append(", currentState: "); + result.append(currentState); + result.append(", dependencies: "); + result.append(dependencies); + result.append(", currentFamily: "); + result.append(currentFamily); + result.append(", family: "); + result.append(family); + result.append(", currentTypeDependency: "); + result.append(currentTypeDependency); + result.append(", currentDependency: "); + result.append(currentDependency); + result.append(", currentAnalizeDependency: "); + result.append(currentAnalizeDependency); + result.append(", event: "); + result.append(event); + result.append(", prologKnowledge: "); + result.append(prologKnowledge); + result.append(", currentLogicModule: "); + result.append(currentLogicModule); + result.append(", mappingFamily: "); + result.append(mappingFamily); + result.append(", lastMappingFamily: "); + result.append(lastMappingFamily); + result.append(", stopStep: "); + result.append(stopStep); + result.append(", enabled: "); + result.append(enabled); + result.append(')'); + return result.toString(); + } + + public void cloneExecutionContext(ExecutionContext context) { + setCurrentAnalizeDependency(context.getCurrentAnalizeDependency()); + setCurrentDependency(context.getCurrentDependency()); + setCurrentFamily(context.getCurrentFamily()); + setCurrentResponsibility(context.getCurrentResponsibility()); + setCurrentScenario(context.getCurrentScenario()); + setCurrentState(context.getCurrentState()); + setCurrentStep(context.getCurrentStep()); + setCurrentTypeDependency(context.getCurrentTypeDependency()); + setDependencies(context.getDependencies()); + setEvent(context.getEvent()); + setFamily(context.getFamily()); + setCurrentLogicModule(context.getCurrentLogicModule()); + setPreResponsibility(context.getPreResponsibility()); + setEnabled(context.getEnabled()); + branchJoin = context.getBranchJoin(); + } + +} //ExecutionContextImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoImpl.java new file mode 100755 index 0000000..2390bf8 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoImpl.java @@ -0,0 +1,222 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionInfoImpl.java,v 1.12 2006/03/29 00:55:37 franco Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Execution Info</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoImpl#getExecutionSteps <em>Execution Steps</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExecutionInfoImpl extends EObjectImpl implements ExecutionInfo { + /** + * The cached value of the '{@link #getExecutionSteps() <em>Execution Steps</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExecutionSteps() + * @generated + * @ordered + */ + protected EList executionSteps = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionInfoImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getExecutionInfo(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList getExecutionSteps() { + if (executionSteps == null) { + executionSteps = new EObjectContainmentEList(ExecutionStep.class, this, ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS); + } + return executionSteps; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + return ((InternalEList)getExecutionSteps()).basicRemove(otherEnd, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + return getExecutionSteps(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + getExecutionSteps().clear(); + getExecutionSteps().addAll((Collection)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + getExecutionSteps().clear(); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS: + return executionSteps != null && !executionSteps.isEmpty(); + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public ExecutionStep addExecutionStep(ExecutionContext context, Diagnostic diagnosticToSource, Diagnostic diagnosticToTarget) { + ExecutionStep step = ExecutionmodelFactory.eINSTANCE.createExecutionStep(); + Dependency dependency = ExecutionmodelFactory.eINSTANCE.createDependency(); + if (context.getCurrentTypeDependency()!=null){ + dependency.setEvent(context.getEvent()); + dependency.setType(context.getCurrentTypeDependency()); + step.setDependency(dependency); + step.setSource(context.getCurrentResponsibility()); + step.setTarget(context.getPreResponsibility()); + step.setDiagnosticToSource(diagnosticToSource); + step.setDiagnosticToTarget(diagnosticToTarget); + step.setInstanceComponentToSource(context.getInstanceComponentToSource()); + step.setInstanceComponentToTarget(context.getInstanceComponentToTarget()); + step.setEnabled(context.getEnabled()); + } + if (executionSteps == null) { + executionSteps = new EObjectContainmentEList(ExecutionStep.class, this, ExecutionmodelPackage.EXECUTION_INFO__EXECUTION_STEPS); + } + ExecutionContext currentContext = ExecutionmodelFactory.eINSTANCE.createExecutionContext(); + currentContext.cloneExecutionContext(context); + currentContext.setCurrentStep(String.valueOf(Integer.parseInt(context.getCurrentStep())+1)); + step.setExecutionContext(currentContext); + this.executionSteps.add(step); + return step; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public int getStepsCount() { + return getExecutionSteps().size(); + } + + public void backToStep(ExecutionStep step) { + int index = executionSteps.indexOf(step); + for (int i=executionSteps.size()-1; i > index; i--){ + executionSteps.remove(i); + } + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO__BACK_TO_STEP, null, step)); + } + + public void startEvaluatingNode(EvaluationStep step) { + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO__START_EVALUATING_NODE, null, step)); + } + + public void finishEvaluatingNode(EvaluationStep step) { + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO__FINISH_EVALUATING_NODE, step, null)); + } + + public void resetExecutionInfo() { + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO__RESET, null, null)); + } + +} //ExecutionInfoImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoManagerImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoManagerImpl.java new file mode 100755 index 0000000..78d84c4 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionInfoManagerImpl.java @@ -0,0 +1,337 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionInfoManagerImpl.java,v 1.2 2006/02/03 21:03:06 dacostae Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.isistan.flabot.edit.editormodel.FlabotFileModel; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Execution Info Manager</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoManagerImpl#getExecutions <em>Executions</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoManagerImpl#getCurrentExecution <em>Current Execution</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionInfoManagerImpl#getFileModel <em>File Model</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExecutionInfoManagerImpl extends EObjectImpl implements ExecutionInfoManager { + /** + * The cached value of the '{@link #getExecutions() <em>Executions</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExecutions() + * @generated + * @ordered + */ + protected EList executions = null; + + /** + * The cached value of the '{@link #getCurrentExecution() <em>Current Execution</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCurrentExecution() + * @generated + * @ordered + */ + protected ExecutionInfo currentExecution = null; + + /** + * The cached value of the '{@link #getFileModel() <em>File Model</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFileModel() + * @generated + * @ordered + */ + protected FlabotFileModel fileModel = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionInfoManagerImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getExecutionInfoManager(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList getExecutions() { + if (executions == null) { + executions = new EObjectContainmentEList(ExecutionInfo.class, this, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS); + } + return executions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionInfo getCurrentExecution() { + return currentExecution; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetCurrentExecution(ExecutionInfo newCurrentExecution, NotificationChain msgs) { + ExecutionInfo oldCurrentExecution = currentExecution; + currentExecution = newCurrentExecution; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION, oldCurrentExecution, newCurrentExecution); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCurrentExecutionGen(ExecutionInfo newCurrentExecution) { + if (newCurrentExecution != currentExecution) { + NotificationChain msgs = null; + if (currentExecution != null) + msgs = ((InternalEObject)currentExecution).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION, null, msgs); + if (newCurrentExecution != null) + msgs = ((InternalEObject)newCurrentExecution).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION, null, msgs); + msgs = basicSetCurrentExecution(newCurrentExecution, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION, newCurrentExecution, newCurrentExecution)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void setCurrentExecution(ExecutionInfo newCurrentExecution) { + EObject oldCurrentExecution = currentExecution; + setCurrentExecutionGen(newCurrentExecution); + if (oldCurrentExecution != null) + oldCurrentExecution.eAdapters().remove(this); + if (newCurrentExecution != null) + newCurrentExecution.eAdapters().add(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FlabotFileModel getFileModel() { + if (fileModel != null && fileModel.eIsProxy()) { + FlabotFileModel oldFileModel = fileModel; + fileModel = (FlabotFileModel)eResolveProxy((InternalEObject)fileModel); + if (fileModel != oldFileModel) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL, oldFileModel, fileModel)); + } + } + return fileModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FlabotFileModel basicGetFileModel() { + return fileModel; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFileModel(FlabotFileModel newFileModel) { + FlabotFileModel oldFileModel = fileModel; + fileModel = newFileModel; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL, oldFileModel, fileModel)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS: + return ((InternalEList)getExecutions()).basicRemove(otherEnd, msgs); + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + return basicSetCurrentExecution(null, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS: + return getExecutions(); + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + return getCurrentExecution(); + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL: + if (resolve) return getFileModel(); + return basicGetFileModel(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS: + getExecutions().clear(); + getExecutions().addAll((Collection)newValue); + return; + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + setCurrentExecution((ExecutionInfo)newValue); + return; + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL: + setFileModel((FlabotFileModel)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS: + getExecutions().clear(); + return; + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + setCurrentExecution((ExecutionInfo)null); + return; + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL: + setFileModel((FlabotFileModel)null); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS: + return executions != null && !executions.isEmpty(); + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__CURRENT_EXECUTION: + return currentExecution != null; + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER__FILE_MODEL: + return fileModel != null; + } + return eDynamicIsSet(eFeature); + } + + /** + * Adapter implementation + */ + + public void notifyChanged(Notification notification) { + if (eNotificationRequired()) + eNotify(notification); + } + + public org.eclipse.emf.common.notify.Notifier getTarget() { + return getCurrentExecution(); + } + + public void setTarget(Notifier newTarget) { + // do nothing + } + + public boolean isAdapterForType(Object type) { + return Notifier.class.isAssignableFrom((Class)type); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + + public void addExecution() { + ExecutionInfo executionInfo = ExecutionmodelFactory.eINSTANCE.createExecutionInfo(); + if (executions == null) { + executions = new EObjectContainmentEList(ExecutionInfo.class, this, ExecutionmodelPackage.EXECUTION_INFO_MANAGER__EXECUTIONS); + } + this.executions.add(executionInfo); + setCurrentExecution(executionInfo); + } + +} //ExecutionInfoManagerImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.java new file mode 100755 index 0000000..9e4cf13 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionStepImpl.java @@ -0,0 +1,740 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionStepImpl.java,v 1.11 2006/03/22 03:28:55 franco Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.ComponentRole; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.executionstate.Diagnostic; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Execution Step</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getSource <em>Source</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getTarget <em>Target</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getDependency <em>Dependency</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getInstanceComponentToSource <em>Instance Component To Source</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getInstanceComponentToTarget <em>Instance Component To Target</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getDiagnosticToSource <em>Diagnostic To Source</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getDiagnosticToTarget <em>Diagnostic To Target</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getFinalState <em>Final State</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getExecutionContext <em>Execution Context</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ExecutionStepImpl#getEnabled <em>Enabled</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ExecutionStepImpl extends EObjectImpl implements ExecutionStep { + /** + * The cached value of the '{@link #getSource() <em>Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSource() + * @generated + * @ordered + */ + protected SimplePathNode source = null; + + /** + * The cached value of the '{@link #getTarget() <em>Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTarget() + * @generated + * @ordered + */ + protected SimplePathNode target = null; + + /** + * The cached value of the '{@link #getDependency() <em>Dependency</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDependency() + * @generated + * @ordered + */ + protected Dependency dependency = null; + + /** + * The cached value of the '{@link #getInstanceComponentToSource() <em>Instance Component To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstanceComponentToSource() + * @generated + * @ordered + */ + protected ComponentRole instanceComponentToSource = null; + + /** + * The cached value of the '{@link #getInstanceComponentToTarget() <em>Instance Component To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstanceComponentToTarget() + * @generated + * @ordered + */ + protected ComponentRole instanceComponentToTarget = null; + + /** + * The cached value of the '{@link #getDiagnosticToSource() <em>Diagnostic To Source</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDiagnosticToSource() + * @generated + * @ordered + */ + protected Diagnostic diagnosticToSource = null; + + /** + * The cached value of the '{@link #getDiagnosticToTarget() <em>Diagnostic To Target</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDiagnosticToTarget() + * @generated + * @ordered + */ + protected Diagnostic diagnosticToTarget = null; + + /** + * The default value of the '{@link #getFinalState() <em>Final State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFinalState() + * @generated + * @ordered + */ + protected static final ExecutionState FINAL_STATE_EDEFAULT = ExecutionState.EXECUTED_LITERAL; + + /** + * The cached value of the '{@link #getFinalState() <em>Final State</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFinalState() + * @generated + * @ordered + */ + protected ExecutionState finalState = FINAL_STATE_EDEFAULT; + + /** + * The cached value of the '{@link #getExecutionContext() <em>Execution Context</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExecutionContext() + * @generated + * @ordered + */ + protected ExecutionContext executionContext = null; + + /** + * The default value of the '{@link #getEnabled() <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEnabled() + * @generated + * @ordered + */ + protected static final int ENABLED_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getEnabled() <em>Enabled</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getEnabled() + * @generated + * @ordered + */ + protected int enabled = ENABLED_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionStepImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getExecutionStep(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getSource() { + if (source != null && source.eIsProxy()) { + SimplePathNode oldSource = source; + source = (SimplePathNode)eResolveProxy((InternalEObject)source); + if (source != oldSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__SOURCE, oldSource, source)); + } + } + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetSource() { + return source; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSource(SimplePathNode newSource) { + SimplePathNode oldSource = source; + source = newSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__SOURCE, oldSource, source)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getTarget() { + if (target != null && target.eIsProxy()) { + SimplePathNode oldTarget = target; + target = (SimplePathNode)eResolveProxy((InternalEObject)target); + if (target != oldTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__TARGET, oldTarget, target)); + } + } + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetTarget() { + return target; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTarget(SimplePathNode newTarget) { + SimplePathNode oldTarget = target; + target = newTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__TARGET, oldTarget, target)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Dependency getDependency() { + return dependency; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetDependency(Dependency newDependency, NotificationChain msgs) { + Dependency oldDependency = dependency; + dependency = newDependency; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY, oldDependency, newDependency); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDependency(Dependency newDependency) { + if (newDependency != dependency) { + NotificationChain msgs = null; + if (dependency != null) + msgs = ((InternalEObject)dependency).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY, null, msgs); + if (newDependency != null) + msgs = ((InternalEObject)newDependency).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY, null, msgs); + msgs = basicSetDependency(newDependency, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY, newDependency, newDependency)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole getInstanceComponentToSource() { + if (instanceComponentToSource != null && instanceComponentToSource.eIsProxy()) { + ComponentRole oldInstanceComponentToSource = instanceComponentToSource; + instanceComponentToSource = (ComponentRole)eResolveProxy((InternalEObject)instanceComponentToSource); + if (instanceComponentToSource != oldInstanceComponentToSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE, oldInstanceComponentToSource, instanceComponentToSource)); + } + } + return instanceComponentToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole basicGetInstanceComponentToSource() { + return instanceComponentToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInstanceComponentToSource(ComponentRole newInstanceComponentToSource) { + ComponentRole oldInstanceComponentToSource = instanceComponentToSource; + instanceComponentToSource = newInstanceComponentToSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE, oldInstanceComponentToSource, instanceComponentToSource)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole getInstanceComponentToTarget() { + if (instanceComponentToTarget != null && instanceComponentToTarget.eIsProxy()) { + ComponentRole oldInstanceComponentToTarget = instanceComponentToTarget; + instanceComponentToTarget = (ComponentRole)eResolveProxy((InternalEObject)instanceComponentToTarget); + if (instanceComponentToTarget != oldInstanceComponentToTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET, oldInstanceComponentToTarget, instanceComponentToTarget)); + } + } + return instanceComponentToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComponentRole basicGetInstanceComponentToTarget() { + return instanceComponentToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setInstanceComponentToTarget(ComponentRole newInstanceComponentToTarget) { + ComponentRole oldInstanceComponentToTarget = instanceComponentToTarget; + instanceComponentToTarget = newInstanceComponentToTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET, oldInstanceComponentToTarget, instanceComponentToTarget)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic getDiagnosticToSource() { + if (diagnosticToSource != null && diagnosticToSource.eIsProxy()) { + Diagnostic oldDiagnosticToSource = diagnosticToSource; + diagnosticToSource = (Diagnostic)eResolveProxy((InternalEObject)diagnosticToSource); + if (diagnosticToSource != oldDiagnosticToSource) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE, oldDiagnosticToSource, diagnosticToSource)); + } + } + return diagnosticToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic basicGetDiagnosticToSource() { + return diagnosticToSource; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDiagnosticToSource(Diagnostic newDiagnosticToSource) { + Diagnostic oldDiagnosticToSource = diagnosticToSource; + diagnosticToSource = newDiagnosticToSource; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE, oldDiagnosticToSource, diagnosticToSource)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic getDiagnosticToTarget() { + if (diagnosticToTarget != null && diagnosticToTarget.eIsProxy()) { + Diagnostic oldDiagnosticToTarget = diagnosticToTarget; + diagnosticToTarget = (Diagnostic)eResolveProxy((InternalEObject)diagnosticToTarget); + if (diagnosticToTarget != oldDiagnosticToTarget) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET, oldDiagnosticToTarget, diagnosticToTarget)); + } + } + return diagnosticToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Diagnostic basicGetDiagnosticToTarget() { + return diagnosticToTarget; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDiagnosticToTarget(Diagnostic newDiagnosticToTarget) { + Diagnostic oldDiagnosticToTarget = diagnosticToTarget; + diagnosticToTarget = newDiagnosticToTarget; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET, oldDiagnosticToTarget, diagnosticToTarget)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionState getFinalState() { + return finalState; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setFinalState(ExecutionState newFinalState) { + ExecutionState oldFinalState = finalState; + finalState = newFinalState == null ? FINAL_STATE_EDEFAULT : newFinalState; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE, oldFinalState, finalState)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionContext getExecutionContext() { + return executionContext; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetExecutionContext(ExecutionContext newExecutionContext, NotificationChain msgs) { + ExecutionContext oldExecutionContext = executionContext; + executionContext = newExecutionContext; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT, oldExecutionContext, newExecutionContext); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExecutionContext(ExecutionContext newExecutionContext) { + if (newExecutionContext != executionContext) { + NotificationChain msgs = null; + if (executionContext != null) + msgs = ((InternalEObject)executionContext).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT, null, msgs); + if (newExecutionContext != null) + msgs = ((InternalEObject)newExecutionContext).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT, null, msgs); + msgs = basicSetExecutionContext(newExecutionContext, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT, newExecutionContext, newExecutionContext)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getEnabled() { + return enabled; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setEnabled(int newEnabled) { + int oldEnabled = enabled; + enabled = newEnabled; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.EXECUTION_STEP__ENABLED, oldEnabled, enabled)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { + if (featureID >= 0) { + switch (eDerivedStructuralFeatureID(featureID, baseClass)) { + case ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY: + return basicSetDependency(null, msgs); + case ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT: + return basicSetExecutionContext(null, msgs); + default: + return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); + } + } + return eBasicSetContainer(null, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_STEP__SOURCE: + if (resolve) return getSource(); + return basicGetSource(); + case ExecutionmodelPackage.EXECUTION_STEP__TARGET: + if (resolve) return getTarget(); + return basicGetTarget(); + case ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY: + return getDependency(); + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE: + if (resolve) return getInstanceComponentToSource(); + return basicGetInstanceComponentToSource(); + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET: + if (resolve) return getInstanceComponentToTarget(); + return basicGetInstanceComponentToTarget(); + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE: + if (resolve) return getDiagnosticToSource(); + return basicGetDiagnosticToSource(); + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET: + if (resolve) return getDiagnosticToTarget(); + return basicGetDiagnosticToTarget(); + case ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE: + return getFinalState(); + case ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT: + return getExecutionContext(); + case ExecutionmodelPackage.EXECUTION_STEP__ENABLED: + return new Integer(getEnabled()); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_STEP__SOURCE: + setSource((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__TARGET: + setTarget((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY: + setDependency((Dependency)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE: + setInstanceComponentToSource((ComponentRole)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET: + setInstanceComponentToTarget((ComponentRole)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE: + setDiagnosticToSource((Diagnostic)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET: + setDiagnosticToTarget((Diagnostic)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE: + setFinalState((ExecutionState)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT: + setExecutionContext((ExecutionContext)newValue); + return; + case ExecutionmodelPackage.EXECUTION_STEP__ENABLED: + setEnabled(((Integer)newValue).intValue()); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_STEP__SOURCE: + setSource((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__TARGET: + setTarget((SimplePathNode)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY: + setDependency((Dependency)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE: + setInstanceComponentToSource((ComponentRole)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET: + setInstanceComponentToTarget((ComponentRole)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE: + setDiagnosticToSource((Diagnostic)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET: + setDiagnosticToTarget((Diagnostic)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE: + setFinalState(FINAL_STATE_EDEFAULT); + return; + case ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT: + setExecutionContext((ExecutionContext)null); + return; + case ExecutionmodelPackage.EXECUTION_STEP__ENABLED: + setEnabled(ENABLED_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.EXECUTION_STEP__SOURCE: + return source != null; + case ExecutionmodelPackage.EXECUTION_STEP__TARGET: + return target != null; + case ExecutionmodelPackage.EXECUTION_STEP__DEPENDENCY: + return dependency != null; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE: + return instanceComponentToSource != null; + case ExecutionmodelPackage.EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET: + return instanceComponentToTarget != null; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE: + return diagnosticToSource != null; + case ExecutionmodelPackage.EXECUTION_STEP__DIAGNOSTIC_TO_TARGET: + return diagnosticToTarget != null; + case ExecutionmodelPackage.EXECUTION_STEP__FINAL_STATE: + return finalState != FINAL_STATE_EDEFAULT; + case ExecutionmodelPackage.EXECUTION_STEP__EXECUTION_CONTEXT: + return executionContext != null; + case ExecutionmodelPackage.EXECUTION_STEP__ENABLED: + return enabled != ENABLED_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (finalState: "); + result.append(finalState); + result.append(", enabled: "); + result.append(enabled); + result.append(')'); + return result.toString(); + } + + public void setDependency(Object value) { + // TODO Auto-generated method stub + + } + + +} //ExecutionStepImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.java new file mode 100755 index 0000000..779aa79 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelFactoryImpl.java @@ -0,0 +1,185 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionmodelFactoryImpl.java,v 1.19 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import java.util.Map; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.isistan.flabot.executionmodel.*; + +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ExecutionmodelFactoryImpl extends EFactoryImpl implements ExecutionmodelFactory { + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionmodelFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case ExecutionmodelPackage.EXECUTION_INFO: return createExecutionInfo(); + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER: return createExecutionInfoManager(); + case ExecutionmodelPackage.EXECUTION_STEP: return createExecutionStep(); + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY: return (EObject)createResponsibilityNodeToExecutionStateMapEntry(); + case ExecutionmodelPackage.DEPENDENCY: return createDependency(); + case ExecutionmodelPackage.EXECUTION_CONTEXT: return createExecutionContext(); + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY: return (EObject)createEStringToEObjectMapEntry(); + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY: return (EObject)createEStringToEJavaObjectMapEntry(); + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY: return (EObject)createSimplePathNodeToExecutionStateMapEntry(); + case ExecutionmodelPackage.EVALUATION_STEP: return createEvaluationStep(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionInfo createExecutionInfo() { + ExecutionInfoImpl executionInfo = new ExecutionInfoImpl(); + return executionInfo; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionInfoManager createExecutionInfoManager() { + ExecutionInfoManagerImpl executionInfoManager = new ExecutionInfoManagerImpl(); + return executionInfoManager; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionStep createExecutionStep() { + ExecutionStepImpl executionStep = new ExecutionStepImpl(); + return executionStep; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Map.Entry createResponsibilityNodeToExecutionStateMapEntry() { + ResponsibilityNodeToExecutionStateMapEntryImpl responsibilityNodeToExecutionStateMapEntry = new ResponsibilityNodeToExecutionStateMapEntryImpl(); + return responsibilityNodeToExecutionStateMapEntry; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Dependency createDependency() { + DependencyImpl dependency = new DependencyImpl(); + return dependency; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionContext createExecutionContext() { + ExecutionContextImpl executionContext = new ExecutionContextImpl(); + return executionContext; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Map.Entry createEStringToEObjectMapEntry() { + EStringToEObjectMapEntryImpl eStringToEObjectMapEntry = new EStringToEObjectMapEntryImpl(); + return eStringToEObjectMapEntry; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Map.Entry createEStringToEJavaObjectMapEntry() { + EStringToEJavaObjectMapEntryImpl eStringToEJavaObjectMapEntry = new EStringToEJavaObjectMapEntryImpl(); + return eStringToEJavaObjectMapEntry; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Map.Entry createSimplePathNodeToExecutionStateMapEntry() { + SimplePathNodeToExecutionStateMapEntryImpl simplePathNodeToExecutionStateMapEntry = new SimplePathNodeToExecutionStateMapEntryImpl(); + return simplePathNodeToExecutionStateMapEntry; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EvaluationStep createEvaluationStep() { + EvaluationStepImpl evaluationStep = new EvaluationStepImpl(); + return evaluationStep; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionmodelPackage getExecutionmodelPackage() { + return (ExecutionmodelPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static ExecutionmodelPackage getPackage() { + return ExecutionmodelPackage.eINSTANCE; + } + +} //ExecutionmodelFactoryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.java new file mode 100755 index 0000000..eb76369 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ExecutionmodelPackageImpl.java @@ -0,0 +1,1053 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionmodelPackageImpl.java,v 1.24 2006/04/11 04:21:27 apersson Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import java.util.Map; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.isistan.flabot.coremodel.CoremodelPackage; +import org.isistan.flabot.coremodel.impl.CoremodelPackageImpl; +import org.isistan.flabot.edit.componentmodel.impl.ComponentmodelPackageImpl; +import org.isistan.flabot.edit.editormodel.EditormodelPackage; +import org.isistan.flabot.edit.editormodel.impl.EditormodelPackageImpl; +import org.isistan.flabot.edit.ucmmodel.impl.UcmmodelPackageImpl; +import org.isistan.flabot.engine.executionstate.ExecutionstatePackage; +import org.isistan.flabot.engine.executionstate.impl.ExecutionstatePackageImpl; +import org.isistan.flabot.engine.executionstate.javalogtrace.JavalogtracePackage; +import org.isistan.flabot.engine.executionstate.javalogtrace.impl.JavalogtracePackageImpl; +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelFactory; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; +import org.isistan.flabot.launcher.filter.filtermodel.impl.FiltermodelPackageImpl; +import org.isistan.flabot.mapping.mappingmodel.impl.MappingmodelPackageImpl; +import org.isistan.flabot.trace.config.impl.ConfigPackageImpl; +import org.isistan.flabot.trace.log.impl.LogPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class ExecutionmodelPackageImpl extends EPackageImpl implements ExecutionmodelPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass executionInfoEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass executionInfoManagerEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass executionStepEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass responsibilityNodeToExecutionStateMapEntryEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass dependencyEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass adapterEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass executionContextEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eStringToEObjectMapEntryEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eStringToEJavaObjectMapEntryEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass simplePathNodeToExecutionStateMapEntryEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass evaluationStepEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.isistan.flabot.executionmodel.ExecutionmodelPackage#eNS_URI + * @see #init() + * @generated + */ + private ExecutionmodelPackageImpl() { + super(eNS_URI, ExecutionmodelFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this + * model, and for any others upon which it depends. Simple + * dependencies are satisfied by calling this method on all + * dependent packages before doing anything else. This method drives + * initialization for interdependent packages directly, in parallel + * with this package, itself. + * <p>Of this package and its interdependencies, all packages which + * have not yet been registered by their URI values are first created + * and registered. The packages are then initialized in two steps: + * meta-model objects for all of the packages are created before any + * are initialized, since one package's meta-model objects may refer to + * those of another. + * <p>Invocation of this method will not affect any packages that have + * already been initialized. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ExecutionmodelPackage init() { + if (isInited) return (ExecutionmodelPackage)EPackage.Registry.INSTANCE.getEPackage(ExecutionmodelPackage.eNS_URI); + + // Obtain or create and register package + ExecutionmodelPackageImpl theExecutionmodelPackage = (ExecutionmodelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ExecutionmodelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ExecutionmodelPackageImpl()); + + isInited = true; + + // Initialize simple dependencies + EditormodelPackageImpl.init(); + ComponentmodelPackageImpl.init(); + UcmmodelPackageImpl.init(); + CoremodelPackageImpl.init(); + ConfigPackageImpl.init(); + LogPackageImpl.init(); + MappingmodelPackageImpl.init(); + FiltermodelPackageImpl.init(); + EditormodelPackageImpl.init(); + ComponentmodelPackageImpl.init(); + UcmmodelPackageImpl.init(); + CoremodelPackageImpl.init(); + FiltermodelPackageImpl.init(); + ConfigPackageImpl.init(); + LogPackageImpl.init(); + MappingmodelPackageImpl.init(); + + // Obtain or create and register interdependencies + JavalogtracePackageImpl theJavalogtracePackage = (JavalogtracePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(JavalogtracePackage.eNS_URI) instanceof JavalogtracePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(JavalogtracePackage.eNS_URI) : JavalogtracePackage.eINSTANCE); + ExecutionstatePackageImpl theExecutionstatePackage = (ExecutionstatePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI) instanceof ExecutionstatePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI) : ExecutionstatePackage.eINSTANCE); + + // Create package meta-data objects + theExecutionmodelPackage.createPackageContents(); + theJavalogtracePackage.createPackageContents(); + theExecutionstatePackage.createPackageContents(); + + // Initialize created meta-data + theExecutionmodelPackage.initializePackageContents(); + theJavalogtracePackage.initializePackageContents(); + theExecutionstatePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theExecutionmodelPackage.freeze(); + + return theExecutionmodelPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExecutionInfo() { + return executionInfoEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionInfo_ExecutionSteps() { + return (EReference)executionInfoEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExecutionInfoManager() { + return executionInfoManagerEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionInfoManager_Executions() { + return (EReference)executionInfoManagerEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionInfoManager_CurrentExecution() { + return (EReference)executionInfoManagerEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionInfoManager_FileModel() { + return (EReference)executionInfoManagerEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExecutionStep() { + return executionStepEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_Source() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_Target() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_Dependency() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_InstanceComponentToSource() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_InstanceComponentToTarget() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_DiagnosticToSource() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_DiagnosticToTarget() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionStep_FinalState() { + return (EAttribute)executionStepEClass.getEStructuralFeatures().get(7); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionStep_ExecutionContext() { + return (EReference)executionStepEClass.getEStructuralFeatures().get(8); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionStep_Enabled() { + return (EAttribute)executionStepEClass.getEStructuralFeatures().get(9); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getResponsibilityNodeToExecutionStateMapEntry() { + return responsibilityNodeToExecutionStateMapEntryEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getResponsibilityNodeToExecutionStateMapEntry_Key() { + return (EReference)responsibilityNodeToExecutionStateMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getResponsibilityNodeToExecutionStateMapEntry_Value() { + return (EAttribute)responsibilityNodeToExecutionStateMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getDependency() { + return dependencyEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getDependency_Event() { + return (EAttribute)dependencyEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getDependency_Type() { + return (EAttribute)dependencyEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAdapter() { + return adapterEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getExecutionContext() { + return executionContextEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_CurrentResponsibility() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_PreResponsibility() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentStep() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentScenario() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentState() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_Dependencies() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentFamily() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(6); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_Family() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(7); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentTypeDependency() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(8); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentDependency() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(9); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentAnalizeDependency() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(10); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_Event() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(11); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_PrologKnowledge() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(12); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_CurrentLogicModule() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(13); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_ResponsibilityToExecute() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(14); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_MappingFamily() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(15); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_LastMappingFamily() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(16); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_StubNode() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(17); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_StartNodeToStub() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(18); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_EndNodeToStub() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(19); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_ResponsibilityToStub() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(20); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_PreResponsibilityToStub() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(21); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_StopStep() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(22); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_InstanceComponentToSource() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(23); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_InstanceComponentToTarget() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(24); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_ResponsibilityToJoin() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(25); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_PreResponsibilityToJoin() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(26); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getExecutionContext_BranchJoin() { + return (EReference)executionContextEClass.getEStructuralFeatures().get(27); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getExecutionContext_Enabled() { + return (EAttribute)executionContextEClass.getEStructuralFeatures().get(28); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEStringToEObjectMapEntry() { + return eStringToEObjectMapEntryEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEStringToEObjectMapEntry_Key() { + return (EAttribute)eStringToEObjectMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getEStringToEObjectMapEntry_Value() { + return (EReference)eStringToEObjectMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEStringToEJavaObjectMapEntry() { + return eStringToEJavaObjectMapEntryEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEStringToEJavaObjectMapEntry_Key() { + return (EAttribute)eStringToEJavaObjectMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEStringToEJavaObjectMapEntry_Value() { + return (EAttribute)eStringToEJavaObjectMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSimplePathNodeToExecutionStateMapEntry() { + return simplePathNodeToExecutionStateMapEntryEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getSimplePathNodeToExecutionStateMapEntry_Key() { + return (EReference)simplePathNodeToExecutionStateMapEntryEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getSimplePathNodeToExecutionStateMapEntry_Value() { + return (EAttribute)simplePathNodeToExecutionStateMapEntryEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEvaluationStep() { + return evaluationStepEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getEvaluationStep_Source() { + return (EReference)evaluationStepEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getEvaluationStep_Target() { + return (EReference)evaluationStepEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEvaluationStep_CurrentFamily() { + return (EAttribute)evaluationStepEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEvaluationStep_Condition() { + return (EAttribute)evaluationStepEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionmodelFactory getExecutionmodelFactory() { + return (ExecutionmodelFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + executionInfoEClass = createEClass(EXECUTION_INFO); + createEReference(executionInfoEClass, EXECUTION_INFO__EXECUTION_STEPS); + + executionInfoManagerEClass = createEClass(EXECUTION_INFO_MANAGER); + createEReference(executionInfoManagerEClass, EXECUTION_INFO_MANAGER__EXECUTIONS); + createEReference(executionInfoManagerEClass, EXECUTION_INFO_MANAGER__CURRENT_EXECUTION); + createEReference(executionInfoManagerEClass, EXECUTION_INFO_MANAGER__FILE_MODEL); + + executionStepEClass = createEClass(EXECUTION_STEP); + createEReference(executionStepEClass, EXECUTION_STEP__SOURCE); + createEReference(executionStepEClass, EXECUTION_STEP__TARGET); + createEReference(executionStepEClass, EXECUTION_STEP__DEPENDENCY); + createEReference(executionStepEClass, EXECUTION_STEP__INSTANCE_COMPONENT_TO_SOURCE); + createEReference(executionStepEClass, EXECUTION_STEP__INSTANCE_COMPONENT_TO_TARGET); + createEReference(executionStepEClass, EXECUTION_STEP__DIAGNOSTIC_TO_SOURCE); + createEReference(executionStepEClass, EXECUTION_STEP__DIAGNOSTIC_TO_TARGET); + createEAttribute(executionStepEClass, EXECUTION_STEP__FINAL_STATE); + createEReference(executionStepEClass, EXECUTION_STEP__EXECUTION_CONTEXT); + createEAttribute(executionStepEClass, EXECUTION_STEP__ENABLED); + + responsibilityNodeToExecutionStateMapEntryEClass = createEClass(RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY); + createEReference(responsibilityNodeToExecutionStateMapEntryEClass, RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY); + createEAttribute(responsibilityNodeToExecutionStateMapEntryEClass, RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE); + + dependencyEClass = createEClass(DEPENDENCY); + createEAttribute(dependencyEClass, DEPENDENCY__EVENT); + createEAttribute(dependencyEClass, DEPENDENCY__TYPE); + + adapterEClass = createEClass(ADAPTER); + + executionContextEClass = createEClass(EXECUTION_CONTEXT); + createEReference(executionContextEClass, EXECUTION_CONTEXT__CURRENT_RESPONSIBILITY); + createEReference(executionContextEClass, EXECUTION_CONTEXT__PRE_RESPONSIBILITY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_STEP); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_SCENARIO); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_STATE); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__DEPENDENCIES); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_FAMILY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__FAMILY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_TYPE_DEPENDENCY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_DEPENDENCY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_ANALIZE_DEPENDENCY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__EVENT); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__PROLOG_KNOWLEDGE); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__CURRENT_LOGIC_MODULE); + createEReference(executionContextEClass, EXECUTION_CONTEXT__RESPONSIBILITY_TO_EXECUTE); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__MAPPING_FAMILY); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__LAST_MAPPING_FAMILY); + createEReference(executionContextEClass, EXECUTION_CONTEXT__STUB_NODE); + createEReference(executionContextEClass, EXECUTION_CONTEXT__START_NODE_TO_STUB); + createEReference(executionContextEClass, EXECUTION_CONTEXT__END_NODE_TO_STUB); + createEReference(executionContextEClass, EXECUTION_CONTEXT__RESPONSIBILITY_TO_STUB); + createEReference(executionContextEClass, EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_STUB); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__STOP_STEP); + createEReference(executionContextEClass, EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_SOURCE); + createEReference(executionContextEClass, EXECUTION_CONTEXT__INSTANCE_COMPONENT_TO_TARGET); + createEReference(executionContextEClass, EXECUTION_CONTEXT__RESPONSIBILITY_TO_JOIN); + createEReference(executionContextEClass, EXECUTION_CONTEXT__PRE_RESPONSIBILITY_TO_JOIN); + createEReference(executionContextEClass, EXECUTION_CONTEXT__BRANCH_JOIN); + createEAttribute(executionContextEClass, EXECUTION_CONTEXT__ENABLED); + + eStringToEObjectMapEntryEClass = createEClass(ESTRING_TO_EOBJECT_MAP_ENTRY); + createEAttribute(eStringToEObjectMapEntryEClass, ESTRING_TO_EOBJECT_MAP_ENTRY__KEY); + createEReference(eStringToEObjectMapEntryEClass, ESTRING_TO_EOBJECT_MAP_ENTRY__VALUE); + + eStringToEJavaObjectMapEntryEClass = createEClass(ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY); + createEAttribute(eStringToEJavaObjectMapEntryEClass, ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__KEY); + createEAttribute(eStringToEJavaObjectMapEntryEClass, ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY__VALUE); + + simplePathNodeToExecutionStateMapEntryEClass = createEClass(SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY); + createEReference(simplePathNodeToExecutionStateMapEntryEClass, SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY); + createEAttribute(simplePathNodeToExecutionStateMapEntryEClass, SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE); + + evaluationStepEClass = createEClass(EVALUATION_STEP); + createEReference(evaluationStepEClass, EVALUATION_STEP__SOURCE); + createEReference(evaluationStepEClass, EVALUATION_STEP__TARGET); + createEAttribute(evaluationStepEClass, EVALUATION_STEP__CURRENT_FAMILY); + createEAttribute(evaluationStepEClass, EVALUATION_STEP__CONDITION); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + EditormodelPackageImpl theEditormodelPackage = (EditormodelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(EditormodelPackage.eNS_URI); + CoremodelPackageImpl theCoremodelPackage = (CoremodelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(CoremodelPackage.eNS_URI); + ExecutionstatePackageImpl theExecutionstatePackage = (ExecutionstatePackageImpl)EPackage.Registry.INSTANCE.getEPackage(ExecutionstatePackage.eNS_URI); + + // Add supertypes to classes + executionInfoManagerEClass.getESuperTypes().add(this.getAdapter()); + + // Initialize classes and features; add operations and parameters + initEClass(executionInfoEClass, ExecutionInfo.class, "ExecutionInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExecutionInfo_ExecutionSteps(), this.getExecutionStep(), null, "executionSteps", null, 0, -1, ExecutionInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(executionInfoManagerEClass, ExecutionInfoManager.class, "ExecutionInfoManager", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExecutionInfoManager_Executions(), this.getExecutionInfo(), null, "executions", null, 0, -1, ExecutionInfoManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionInfoManager_CurrentExecution(), this.getExecutionInfo(), null, "currentExecution", null, 0, 1, ExecutionInfoManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionInfoManager_FileModel(), theEditormodelPackage.getFlabotFileModel(), null, "fileModel", null, 0, 1, ExecutionInfoManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(executionStepEClass, ExecutionStep.class, "ExecutionStep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExecutionStep_Source(), theCoremodelPackage.getSimplePathNode(), null, "source", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_Target(), theCoremodelPackage.getSimplePathNode(), null, "target", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_Dependency(), this.getDependency(), null, "dependency", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_InstanceComponentToSource(), theCoremodelPackage.getComponentRole(), null, "instanceComponentToSource", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_InstanceComponentToTarget(), theCoremodelPackage.getComponentRole(), null, "instanceComponentToTarget", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_DiagnosticToSource(), theExecutionstatePackage.getDiagnostic(), null, "diagnosticToSource", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_DiagnosticToTarget(), theExecutionstatePackage.getDiagnostic(), null, "diagnosticToTarget", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionStep_FinalState(), theExecutionstatePackage.getExecutionState(), "finalState", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionStep_ExecutionContext(), this.getExecutionContext(), null, "executionContext", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionStep_Enabled(), ecorePackage.getEInt(), "enabled", null, 0, 1, ExecutionStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(responsibilityNodeToExecutionStateMapEntryEClass, Map.Entry.class, "ResponsibilityNodeToExecutionStateMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEReference(getResponsibilityNodeToExecutionStateMapEntry_Key(), theCoremodelPackage.getResponsibilityNode(), null, "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getResponsibilityNodeToExecutionStateMapEntry_Value(), theExecutionstatePackage.getExecutionState(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(dependencyEClass, Dependency.class, "Dependency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDependency_Event(), ecorePackage.getEJavaObject(), "event", null, 0, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getDependency_Type(), ecorePackage.getEString(), "type", null, 0, 1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(adapterEClass, Adapter.class, "Adapter", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + + initEClass(executionContextEClass, ExecutionContext.class, "ExecutionContext", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExecutionContext_CurrentResponsibility(), theCoremodelPackage.getSimplePathNode(), null, "currentResponsibility", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_PreResponsibility(), theCoremodelPackage.getSimplePathNode(), null, "preResponsibility", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentStep(), ecorePackage.getEString(), "currentStep", "0", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentScenario(), ecorePackage.getEString(), "currentScenario", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentState(), ecorePackage.getEString(), "currentState", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_Dependencies(), ecorePackage.getEString(), "dependencies", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentFamily(), ecorePackage.getEString(), "currentFamily", "'Family'", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_Family(), ecorePackage.getEString(), "family", "Family", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentTypeDependency(), ecorePackage.getEString(), "currentTypeDependency", "[]", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentDependency(), ecorePackage.getEString(), "currentDependency", "[]", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentAnalizeDependency(), ecorePackage.getEString(), "currentAnalizeDependency", "DEFAULT_DEPENDENCY", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_Event(), ecorePackage.getEString(), "event", "Event", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_PrologKnowledge(), ecorePackage.getEString(), "prologKnowledge", "", 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_CurrentLogicModule(), ecorePackage.getEString(), "currentLogicModule", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_ResponsibilityToExecute(), theCoremodelPackage.getSimplePathNode(), null, "responsibilityToExecute", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_MappingFamily(), ecorePackage.getEString(), "mappingFamily", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_LastMappingFamily(), ecorePackage.getEString(), "lastMappingFamily", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_StubNode(), theCoremodelPackage.getSimplePathNode(), null, "stubNode", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_StartNodeToStub(), theCoremodelPackage.getSimplePathNode(), null, "startNodeToStub", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_EndNodeToStub(), theCoremodelPackage.getSimplePathNode(), null, "endNodeToStub", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_ResponsibilityToStub(), theCoremodelPackage.getSimplePathNode(), null, "responsibilityToStub", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_PreResponsibilityToStub(), theCoremodelPackage.getSimplePathNode(), null, "preResponsibilityToStub", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_StopStep(), ecorePackage.getEString(), "stopStep", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_InstanceComponentToSource(), theCoremodelPackage.getComponentRole(), null, "instanceComponentToSource", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_InstanceComponentToTarget(), theCoremodelPackage.getComponentRole(), null, "instanceComponentToTarget", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_ResponsibilityToJoin(), theCoremodelPackage.getSimplePathNode(), null, "responsibilityToJoin", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_PreResponsibilityToJoin(), theCoremodelPackage.getSimplePathNode(), null, "preResponsibilityToJoin", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getExecutionContext_BranchJoin(), ecorePackage.getEStringToStringMapEntry(), null, "branchJoin", null, 0, -1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExecutionContext_Enabled(), ecorePackage.getEInt(), "enabled", null, 0, 1, ExecutionContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eStringToEObjectMapEntryEClass, Map.Entry.class, "EStringToEObjectMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEStringToEObjectMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEStringToEObjectMapEntry_Value(), ecorePackage.getEObject(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(eStringToEJavaObjectMapEntryEClass, Map.Entry.class, "EStringToEJavaObjectMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEStringToEJavaObjectMapEntry_Key(), ecorePackage.getEString(), "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEStringToEJavaObjectMapEntry_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(simplePathNodeToExecutionStateMapEntryEClass, Map.Entry.class, "SimplePathNodeToExecutionStateMapEntry", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS); + initEReference(getSimplePathNodeToExecutionStateMapEntry_Key(), theCoremodelPackage.getSimplePathNode(), null, "key", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getSimplePathNodeToExecutionStateMapEntry_Value(), theExecutionstatePackage.getExecutionState(), "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(evaluationStepEClass, EvaluationStep.class, "EvaluationStep", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEvaluationStep_Source(), theCoremodelPackage.getSimplePathNode(), null, "source", null, 0, 1, EvaluationStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getEvaluationStep_Target(), theCoremodelPackage.getSimplePathNode(), null, "target", null, 0, 1, EvaluationStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEvaluationStep_CurrentFamily(), ecorePackage.getEString(), "currentFamily", null, 0, 1, EvaluationStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEvaluationStep_Condition(), ecorePackage.getEString(), "condition", null, 0, 1, EvaluationStep.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //ExecutionmodelPackageImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.java new file mode 100755 index 0000000..70d37ff --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/ResponsibilityNodeToExecutionStateMapEntryImpl.java @@ -0,0 +1,307 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ResponsibilityNodeToExecutionStateMapEntryImpl.java,v 1.2 2006/02/03 21:03:06 dacostae Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.ResponsibilityNode; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Responsibility Node To Execution State Map Entry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.ResponsibilityNodeToExecutionStateMapEntryImpl#getTypedKey <em>Key</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.ResponsibilityNodeToExecutionStateMapEntryImpl#getTypedValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ResponsibilityNodeToExecutionStateMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected ResponsibilityNode key = null; + + /** + * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected static final ExecutionState VALUE_EDEFAULT = ExecutionState.EXECUTED_LITERAL; + + /** + * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected ExecutionState value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ResponsibilityNodeToExecutionStateMapEntryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getResponsibilityNodeToExecutionStateMapEntry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResponsibilityNode getTypedKey() { + if (key != null && key.eIsProxy()) { + ResponsibilityNode oldKey = key; + key = (ResponsibilityNode)eResolveProxy((InternalEObject)key); + if (key != oldKey) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY, oldKey, key)); + } + } + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResponsibilityNode basicGetTypedKey() { + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedKey(ResponsibilityNode newKey) { + ResponsibilityNode oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionState getTypedValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedValue(ExecutionState newValue) { + ExecutionState oldValue = value; + value = newValue == null ? VALUE_EDEFAULT : newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + if (resolve) return getTypedKey(); + return basicGetTypedKey(); + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + return getTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + setTypedKey((ResponsibilityNode)newValue); + return; + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + setTypedValue((ExecutionState)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + setTypedKey((ResponsibilityNode)null); + return; + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + setTypedValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + return key != null; + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + return value != VALUE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int hash = -1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setKey(Object key) { + setTypedKey((ResponsibilityNode)key); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((ExecutionState)value); + return oldValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //ResponsibilityNodeToExecutionStateMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/SimplePathNodeToExecutionStateMapEntryImpl.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/SimplePathNodeToExecutionStateMapEntryImpl.java new file mode 100755 index 0000000..614f7dd --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/impl/SimplePathNodeToExecutionStateMapEntryImpl.java @@ -0,0 +1,301 @@ +/** + * <copyright> + * </copyright> + * + * $Id: SimplePathNodeToExecutionStateMapEntryImpl.java,v 1.2 2006/02/14 22:18:47 franco Exp $ + */ +package org.isistan.flabot.executionmodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.BasicEMap; +import org.eclipse.emf.common.util.EMap; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.isistan.flabot.coremodel.SimplePathNode; +import org.isistan.flabot.engine.executionstate.ExecutionState; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Simple Path Node To Execution State Map Entry</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.isistan.flabot.executionmodel.impl.SimplePathNodeToExecutionStateMapEntryImpl#getTypedKey <em>Key</em>}</li> + * <li>{@link org.isistan.flabot.executionmodel.impl.SimplePathNodeToExecutionStateMapEntryImpl#getTypedValue <em>Value</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class SimplePathNodeToExecutionStateMapEntryImpl extends EObjectImpl implements BasicEMap.Entry { + /** + * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedKey() + * @generated + * @ordered + */ + protected SimplePathNode key = null; + + /** + * The default value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected static final ExecutionState VALUE_EDEFAULT = ExecutionState.EXECUTED_LITERAL; + + /** + * The cached value of the '{@link #getTypedValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTypedValue() + * @generated + * @ordered + */ + protected ExecutionState value = VALUE_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SimplePathNodeToExecutionStateMapEntryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EClass eStaticClass() { + return ExecutionmodelPackage.eINSTANCE.getSimplePathNodeToExecutionStateMapEntry(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode getTypedKey() { + if (key != null && key.eIsProxy()) { + SimplePathNode oldKey = key; + key = (SimplePathNode)eResolveProxy((InternalEObject)key); + if (key != oldKey) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY, oldKey, key)); + } + } + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public SimplePathNode basicGetTypedKey() { + return key; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedKey(SimplePathNode newKey) { + SimplePathNode oldKey = key; + key = newKey; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY, oldKey, key)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionState getTypedValue() { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTypedValue(ExecutionState newValue) { + ExecutionState oldValue = value; + value = newValue == null ? VALUE_EDEFAULT : newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object eGet(EStructuralFeature eFeature, boolean resolve) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + if (resolve) return getTypedKey(); + return basicGetTypedKey(); + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + return getTypedValue(); + } + return eDynamicGet(eFeature, resolve); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eSet(EStructuralFeature eFeature, Object newValue) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + setTypedKey((SimplePathNode)newValue); + return; + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + setTypedValue((ExecutionState)newValue); + return; + } + eDynamicSet(eFeature, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void eUnset(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + setTypedKey((SimplePathNode)null); + return; + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + setTypedValue(VALUE_EDEFAULT); + return; + } + eDynamicUnset(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean eIsSet(EStructuralFeature eFeature) { + switch (eDerivedStructuralFeatureID(eFeature)) { + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__KEY: + return key != null; + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY__VALUE: + return value != VALUE_EDEFAULT; + } + return eDynamicIsSet(eFeature); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected int hash = -1; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getHash() { + if (hash == -1) { + Object theKey = getKey(); + hash = (theKey == null ? 0 : theKey.hashCode()); + } + return hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setHash(int hash) { + this.hash = hash; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getKey() { + return getTypedKey(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setKey(Object key) { + setTypedKey((SimplePathNode)key); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getValue() { + return getTypedValue(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object setValue(Object value) { + Object oldValue = getValue(); + setTypedValue((ExecutionState)value); + return oldValue; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EMap getEMap() { + EObject container = eContainer(); + return container == null ? null : (EMap)container.eGet(eContainmentFeature()); + } + +} //SimplePathNodeToExecutionStateMapEntryImpl diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory.java new file mode 100755 index 0000000..8558b47 --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelAdapterFactory.java @@ -0,0 +1,299 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionmodelAdapterFactory.java,v 1.19 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.executionmodel.util; + +import java.util.Map; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.executionmodel.*; + +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.ExecutionmodelPackage + * @generated + */ +public class ExecutionmodelAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExecutionmodelPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionmodelAdapterFactory() { + if (modelPackage == null) { + modelPackage = ExecutionmodelPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch the delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ExecutionmodelSwitch modelSwitch = + new ExecutionmodelSwitch() { + public Object caseExecutionInfo(ExecutionInfo object) { + return createExecutionInfoAdapter(); + } + public Object caseExecutionInfoManager(ExecutionInfoManager object) { + return createExecutionInfoManagerAdapter(); + } + public Object caseExecutionStep(ExecutionStep object) { + return createExecutionStepAdapter(); + } + public Object caseResponsibilityNodeToExecutionStateMapEntry(Map.Entry object) { + return createResponsibilityNodeToExecutionStateMapEntryAdapter(); + } + public Object caseDependency(Dependency object) { + return createDependencyAdapter(); + } + public Object caseAdapter(Adapter object) { + return createAdapterAdapter(); + } + public Object caseExecutionContext(ExecutionContext object) { + return createExecutionContextAdapter(); + } + public Object caseEStringToEObjectMapEntry(Map.Entry object) { + return createEStringToEObjectMapEntryAdapter(); + } + public Object caseEStringToEJavaObjectMapEntry(Map.Entry object) { + return createEStringToEJavaObjectMapEntryAdapter(); + } + public Object caseSimplePathNodeToExecutionStateMapEntry(Map.Entry object) { + return createSimplePathNodeToExecutionStateMapEntryAdapter(); + } + public Object caseEvaluationStep(EvaluationStep object) { + return createEvaluationStepAdapter(); + } + public Object defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return (Adapter)modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.ExecutionInfo <em>Execution Info</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.ExecutionInfo + * @generated + */ + public Adapter createExecutionInfoAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.ExecutionInfoManager <em>Execution Info Manager</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.ExecutionInfoManager + * @generated + */ + public Adapter createExecutionInfoManagerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.ExecutionStep <em>Execution Step</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.ExecutionStep + * @generated + */ + public Adapter createExecutionStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Responsibility Node To Execution State Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createResponsibilityNodeToExecutionStateMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.Dependency <em>Dependency</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.Dependency + * @generated + */ + public Adapter createDependencyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.common.notify.Adapter <em>Adapter</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.common.notify.Adapter + * @generated + */ + public Adapter createAdapterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.ExecutionContext <em>Execution Context</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.ExecutionContext + * @generated + */ + public Adapter createExecutionContextAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>EString To EObject Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createEStringToEObjectMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>EString To EJava Object Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createEStringToEJavaObjectMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Simple Path Node To Execution State Map Entry</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see java.util.Map.Entry + * @generated + */ + public Adapter createSimplePathNodeToExecutionStateMapEntryAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.isistan.flabot.executionmodel.EvaluationStep <em>Evaluation Step</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.isistan.flabot.executionmodel.EvaluationStep + * @generated + */ + public Adapter createEvaluationStepAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //ExecutionmodelAdapterFactory diff --git a/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelSwitch.java b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelSwitch.java new file mode 100755 index 0000000..0f20b1a --- /dev/null +++ b/org.isistan.flabot.engine/src/org/isistan/flabot/executionmodel/util/ExecutionmodelSwitch.java @@ -0,0 +1,344 @@ +/** + * <copyright> + * </copyright> + * + * $Id: ExecutionmodelSwitch.java,v 1.19 2006/07/04 12:42:19 mblech Exp $ + */ +package org.isistan.flabot.executionmodel.util; + +import java.util.List; +import java.util.Map; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.isistan.flabot.executionmodel.*; + +import org.isistan.flabot.executionmodel.Dependency; +import org.isistan.flabot.executionmodel.EvaluationStep; +import org.isistan.flabot.executionmodel.ExecutionContext; +import org.isistan.flabot.executionmodel.ExecutionInfo; +import org.isistan.flabot.executionmodel.ExecutionInfoManager; +import org.isistan.flabot.executionmodel.ExecutionStep; +import org.isistan.flabot.executionmodel.ExecutionmodelPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.isistan.flabot.executionmodel.ExecutionmodelPackage + * @generated + */ +public class ExecutionmodelSwitch { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static ExecutionmodelPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ExecutionmodelSwitch() { + if (modelPackage == null) { + modelPackage = ExecutionmodelPackage.eINSTANCE; + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + public Object doSwitch(EObject theEObject) { + return doSwitch(theEObject.eClass(), theEObject); + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(EClass theEClass, EObject theEObject) { + if (theEClass.eContainer() == modelPackage) { + return doSwitch(theEClass.getClassifierID(), theEObject); + } + else { + List eSuperTypes = theEClass.getESuperTypes(); + return + eSuperTypes.isEmpty() ? + defaultCase(theEObject) : + doSwitch((EClass)eSuperTypes.get(0), theEObject); + } + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + protected Object doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case ExecutionmodelPackage.EXECUTION_INFO: { + ExecutionInfo executionInfo = (ExecutionInfo)theEObject; + Object result = caseExecutionInfo(executionInfo); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.EXECUTION_INFO_MANAGER: { + ExecutionInfoManager executionInfoManager = (ExecutionInfoManager)theEObject; + Object result = caseExecutionInfoManager(executionInfoManager); + if (result == null) result = caseAdapter(executionInfoManager); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.EXECUTION_STEP: { + ExecutionStep executionStep = (ExecutionStep)theEObject; + Object result = caseExecutionStep(executionStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.RESPONSIBILITY_NODE_TO_EXECUTION_STATE_MAP_ENTRY: { + Map.Entry responsibilityNodeToExecutionStateMapEntry = (Map.Entry)theEObject; + Object result = caseResponsibilityNodeToExecutionStateMapEntry(responsibilityNodeToExecutionStateMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.DEPENDENCY: { + Dependency dependency = (Dependency)theEObject; + Object result = caseDependency(dependency); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.EXECUTION_CONTEXT: { + ExecutionContext executionContext = (ExecutionContext)theEObject; + Object result = caseExecutionContext(executionContext); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.ESTRING_TO_EOBJECT_MAP_ENTRY: { + Map.Entry eStringToEObjectMapEntry = (Map.Entry)theEObject; + Object result = caseEStringToEObjectMapEntry(eStringToEObjectMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.ESTRING_TO_EJAVA_OBJECT_MAP_ENTRY: { + Map.Entry eStringToEJavaObjectMapEntry = (Map.Entry)theEObject; + Object result = caseEStringToEJavaObjectMapEntry(eStringToEJavaObjectMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.SIMPLE_PATH_NODE_TO_EXECUTION_STATE_MAP_ENTRY: { + Map.Entry simplePathNodeToExecutionStateMapEntry = (Map.Entry)theEObject; + Object result = caseSimplePathNodeToExecutionStateMapEntry(simplePathNodeToExecutionStateMapEntry); + if (result == null) result = defaultCase(theEObject); + return result; + } + case ExecutionmodelPackage.EVALUATION_STEP: { + EvaluationStep evaluationStep = (EvaluationStep)theEObject; + Object result = caseEvaluationStep(evaluationStep); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Execution Info</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Execution Info</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionInfo(ExecutionInfo object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Execution Info Manager</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Execution Info Manager</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionInfoManager(ExecutionInfoManager object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Execution Step</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Execution Step</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionStep(ExecutionStep object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Responsibility Node To Execution State Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Responsibility Node To Execution State Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseResponsibilityNodeToExecutionStateMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Dependency</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Dependency</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseDependency(Dependency object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Adapter</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Adapter</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseAdapter(Adapter object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Execution Context</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Execution Context</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseExecutionContext(ExecutionContext object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EString To EObject Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EString To EObject Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEStringToEObjectMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EString To EJava Object Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EString To EJava Object Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEStringToEJavaObjectMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Simple Path Node To Execution State Map Entry</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Simple Path Node To Execution State Map Entry</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseSimplePathNodeToExecutionStateMapEntry(Map.Entry object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>Evaluation Step</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>Evaluation Step</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public Object caseEvaluationStep(EvaluationStep object) { + return null; + } + + /** + * Returns the result of interpretting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpretting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + public Object defaultCase(EObject object) { + return null; + } + +} //ExecutionmodelSwitch diff --git a/org.isistan.flabot.executionstatemapping/.classpath b/org.isistan.flabot.executionstatemapping/.classpath new file mode 100755 index 0000000..0215967 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/org.isistan.flabot.executionstatemapping/.project b/org.isistan.flabot.executionstatemapping/.project new file mode 100755 index 0000000..cec9ebd --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/.project @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.isistan.flabot.executionstatemapping</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature> + </natures> +</projectDescription> diff --git a/org.isistan.flabot.executionstatemapping/META-INF/MANIFEST.MF b/org.isistan.flabot.executionstatemapping/META-INF/MANIFEST.MF new file mode 100755 index 0000000..75ac85e --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/META-INF/MANIFEST.MF @@ -0,0 +1,64 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Execution State Mapping Plug-in +Bundle-SymbolicName: org.isistan.flabot.executionstatemapping;singleton:=true +Bundle-Version: 1.0.0 +Bundle-ClassPath: lib/executionmapping.jar +Bundle-Activator: org.isistan.flabot.executionstatemapping.ExecutionConditionPlugin +Export-Package: org.isistan.flabot.executionstatemapping, + org.isistan.flabot.executionstatemapping.commands.diagram, + org.isistan.flabot.executionstatemapping.commands.executioncondition, + org.isistan.flabot.executionstatemapping.dialogs, + org.isistan.flabot.executionstatemapping.dialogs.common, + org.isistan.flabot.executionstatemapping.dialogs.jdtcomposites, + org.isistan.flabot.executionstatemapping.dialogs.jdtcomposites.combocontentproviders, + org.isistan.flabot.executionstatemapping.dialogs.jdtcomposites.listeners, + org.isistan.flabot.executionstatemapping.dialogs.jdtcomposites.valuecomposites, + org.isistan.flabot.executionstatemapping.dialogs.logicalexpressionbuilder, + org.isistan.flabot.executionstatemapping.dialogs.strategy, + org.isistan.flabot.executionstatemapping.dialogs.utils, + org.isistan.flabot.executionstatemapping.editor, + org.isistan.flabot.executionstatemapping.editor.actions, + org.isistan.flabot.executionstatemapping.editor.dialogs, + org.isistan.flabot.executionstatemapping.editor.editparts, + org.isistan.flabot.executionstatemapping.editor.figures, + org.isistan.flabot.executionstatemapping.editor.properties, + org.isistan.flabot.executionstatemapping.icons, + org.isistan.flabot.executionstatemapping.messages, + org.isistan.flabot.executionstatemapping.messages.util, + org.isistan.flabot.executionstatemapping.model, + org.isistan.flabot.executionstatemapping.model.impl, + org.isistan.flabot.executionstatemapping.model.semantic, + org.isistan.flabot.executionstatemapping.model.semantic.impl, + org.isistan.flabot.executionstatemapping.model.semantic.util, + org.isistan.flabot.executionstatemapping.model.strategymodel, + org.isistan.flabot.executionstatemapping.model.strategymodel.impl, + org.isistan.flabot.executionstatemapping.model.strategymodel.util, + org.isistan.flabot.executionstatemapping.model.util, + org.isistan.flabot.executionstatemapping.model.visual, + org.isistan.flabot.executionstatemapping.model.visual.impl, + org.isistan.flabot.executionstatemapping.model.visual.util, + org.isistan.flabot.executionstatemapping.utils, + org.isistan.flabot.executionstatemapping.utils.jdt, + org.isistan.flabot.executionstatemapping.view +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.emf.ecore, + org.eclipse.jdt.core, + org.eclipse.core.resources, + org.eclipse.jdt.ui, + org.eclipse.gef, + org.eclipse.ui.ide, + org.eclipse.ui.editors, + org.eclipse.emf.ecore.xmi, + org.eclipse.ui.views, + org.isistan.flabot.engine, + org.isistan.flabot.mapping, + org.isistan.flabot.javamodel, + org.isistan.flabot.javamodel.jdt, + org.isistan.flabot.util, + org.isistan.flabot.gauge, + org.isistan.flabot, + org.isistan.flabot.launcher, + org.eclipse.help +Eclipse-LazyStart: true diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/ExecutionConditionPlugin.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/ExecutionConditionPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..5956d1769e7fe75f4f7eb69e37bea88c6b7852c8 GIT binary patch literal 1957 zcmb_dYfl?T6g^`cj5kYC@}Q+{Xx=rZ^_DbAlRBkI3{*%CL7_p4QneZ{W3y!KwRUG) zepcT^t<<lT`lG6znO%b+j`)!Bf!(<?_nb5L+`Ing-#`8Wa087J3IY$JxZ?#$kZ9TS z+M#Sk+EcsAPjwLW7}TmO`~9HT@s<bCM%3F1%=UVic7k3BMS<%EM)_gTPn4GiUf*tc z4_b+irLUi^W@iP;>&>TMt*(8yx+HL>xg)=qUMPvap<|NN1ttk^#OO^KrfLFZfeOKE zxyD+iu{Khpz<5S1&}hE##VBSxj5-|^8>t2^3EMY!yrzwD*Xby|q}nnKwZL*^?th^y zHli(61}R-QI4N+t8T8az+HI-$YuO5w730frQ^tW=4}ui4+Lax(q!K?4`Z}WQ`;}Kq zoXH$`wbPcq@?w=lY0Q@+2z7@--f=O5cLipG!|*F{)E(IRWCYP0QVSIOQg73QdqFSI zivnYnxlIRS_`t>cxWIkA9V7xL*e)?0xK^<SL`f&`+Oh1aAENk$_b}~kg^Eq3)vm73 zZPK>oU0?NWf0uAg;Os#c?(Z0y4_#csWr32PB@0|Wo`9+n9raEAM=q)+zf5Pco)I{g zcgdknGH!q3!o_3>Hv|?&bS}p+^w^BvayDb@q15dt?q;~grJF8p;kLk3#<s!HO%u~g ztWa%qZ|;K<W#~LjU%(wx<GTW_tf+%_@uQgClJ<1aRbFO({Z*ew4Z`clj3bj|_g_4c zecQ_p?qRWnFOI21K6!_=yZ93K1x}h_u%8j1^K$E$>yJb-^Sxn*VkIy`cj0y4znW<u zb_)BG-_<eB$_b2fRpP3E2@WyG*uK+XK1(R$6i)NRTU=e`)BF{G#?+5|7I2pTO+GM- zb2b8IoX2#YvA{ECw{&Kr`Vwy+O`5k!ZgvFk5ej_gyyWS1K23VLx`)~7FPQqtav0WA z_6E06#2xCsI|Nk5MSBNfCW8D|c)CcKtM(3yj1(9dug>q``T?F}qYc($$zn}sr*bTF z%L?YK9L@>%4x_FxVo)7Hkp_AG069~-Mh%ZyoAn`dXCK|!NB<Z#vY2YiL1nAI!uuQN ztAAqQS(SzS9iQ&uv)|yE4O7xF>%%m)1JCH$b9(m;J$O!kza6T~Y|i(&%@H#s;uz+1 ahE{N+_!9M_K5Y+y6mt;%9P@Mm5B~$^HsOW< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/InterfacePluginExecutionStateMapping.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/InterfacePluginExecutionStateMapping.class new file mode 100644 index 0000000000000000000000000000000000000000..cf1b7844dfc5c1386b029212ea57c08eb501c3bf GIT binary patch literal 2259 zcmb_dOK;Oa5dO9aO`4ilf%0f6Z%7)5c^612l+;BLP8yU_xS_4H4GWGPIW~eLS8n_h z-~f~Z;)cX;LWo&AZ37J<2rg^S?C#9B^UdSy_m7_doJS#n0fv(6)pgmDEuTC3ip`f@ zUl-4W75LJ1Na>3PZ#Jb<*NcuXycKSViXGIYW2_yjszasdPy%s=9gq1_uG^gMEG$13 zmd|jqV&1!5EI%|J7=?R_#f5Tpady!t%~mSK^6iK7MbjuP%o!%bh`DjO>U-oj&#<)+ zLUH^hZU-WXA%=-{jGgZ1r7cQsP1p>B)6$Xt3_~oPSz?G6NS#6q+ccyw%&^^*jwlC> zW#KLIWm_oMuEp&o?nx!Lm2v-(Y%wgD|20hXrrmYnhtTIFuY0`FGKm6)JL#^TYSPym zf$hsCuM2%Xq^YFj3dsiTx?VmLg^q}`b!Cj43{_>_;eO!J^IrWw%hO#kuH{3kGie%% z4gINX1>Dv<-<zMwr@*jJ!+soK&?p=o?7jRKuzgb%f$N&c>sa!`7{^2c2mhv2`Z26w z7Y;F;NN2)m3d@$wme56GMYr5W!*%qKNuy2Wpa@xJxY{-N{Uk^V$8aKn;|x>XLez%| z4JUDmAxUJl%WSF*|JM$pj75l}SVSqi5!ECz3~7RqYv0U8y(hO`*PUrJj4aM1aGK%5 z?~wO!rXdHNDxOdq&wSz3L~V}yoWV$M?lzk>oB0uz>j~Y6np=Jd=Wro`^9=cJ;Chrr z7{hsPQT0C8a1ocNVntE)#&W@6xZaiNKJ8K7p2L)eE4a#V-0}o9>E4;naQ8Q4_HfzT zB!S2xuVEV3DgMpim-yHEivOna_&NN4qK9I-vN0C^qLKGg#A-NESF@hb{A*8)RMibU zOQ=+5$n-Nbb86(pk5D&^(O_oO5Vv5Ez6p{BkR&ZrGmBP@G&+45eYZ@$$JRIDk?pjq z3&1w)pjC?wU?)aM8lpzCn+)xt{{f7KMlQCEq$WRL?<&R^UWdCImUeYmO5re$(0)es zYPzXlyg;0+5uC|)I69IZNv>ithR+x`vtKaw7H3y+nZaD!&935F9QU)zO$^G-D7_Nc tM<DkTv@uLjpFKmXdcbI8y6tu+X=iYQ9N(n9B-l6A48}>GC3yh1egHl+w3h$? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddStateCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddStateCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..dadc9684a7d4f140e02a4096126ad57e7458812a GIT binary patch literal 4464 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 ZYac@{xfN>fkF-ZT?W5Wc_%enM{|5?*<hB3+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddTransitionConditionConnectionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AddTransitionConditionConnectionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2cde4e88ee52398f74070547783a6bc58920fd14 GIT binary patch literal 3578 zcmbVOS##4?7(F+3B4Ufpgb+d~OAEv%Sd^4CP?jt$;3Tw!K%kpq3nQ?lASoeq-~L0V z{Q>O@FP$l&Zf9DaV5a|~5B(dZ=U&NnNYs*aJR@D*``z;`=Ue>8-@p6@;1Isn&>~>E zUfHmH+Yd~~xLGl$-N3Nst>SE8yAC%4t7^{7*iP9fy49-blzgLPn`O_e8fQzT3D0zV zTZ#_4PN}|dtYWyOE@(&!?38M(V#S{EEu(DRY@!W@umY)~>qIvN1`2U@QG;Re;d)iK zWK|3*jc!cZ{;XLUmAeB1T4bWYP%KWYe<9?Y0x~X3&xb-s3E1YlvtH2>I2?<&)UGkw z@w`QCf$5d4fJi58#|~Z>c+?vUwMx@sF<xZOiY~>+HajVh9He_GB(On;j*S9|-t1&M z1UBhtM@p_X>u5!rTy4>zVa*zB6|hNZK1#KGm}>b(szq6ruV-04qA;IdVVc!%j+s>& zw+-7h^az}YOQZN0TfT3WE#DZ87CK(S4uN*kb~*4^0Rnq_3%AWV)2NuNhj4QsyL>A} zzjx`_jh6-1_*PIbr>zQu5_g;NTwkyqYizbUZFv*sbcI=#DY!+mGHH6Y{Ejx0!7bYt zD8{lE>ry?ItF2gBK}FNK;*?xP?)5bG<A8=ff&RF7z98Rp<YBPB8OW%j1dQHntRG9E z>Ln;s=~W$Rqy*NoIE!~i&6y}LDcU-$0zl#q<EVxs0vnn{jZfcZL(*{!$60^YT{a5F z@i{g^k%6r8bU?>RoD%4e%&WR@)&ei?iA=9|GpibQGuJWLG%Ln%fz5Ovjng=*;f%mK zWr;eHCpykyka=MTmS?h)33L*$DRVyBC&Dn^&@jSuSbnPGO`K;bI@Ua!N=F?*C1&J| zhKmBnSHf4*y+utcjSCpnF^2K51}35gc65czE$xBQowsznjV!b4mg$cv%iCEVb>w65 z9dT(&ECtR^YG4)ZZW4aJQnAWr<*Zkpty)enJYTeC<UmT{3N}!C*mRgI0@roikS#3f zStVDx{H~7oFhQ4TSV+Fy{XoZMOvu%=jv`9TFPR*ijZR<})!1Rl$0UYTbUn)$ZcuVl z;9?vlvGp5HBtOz(#0*<mn9~|;fm8n%RZY4yEZosiL6!O1@LU}UoQvmWB_=C`f$XHj zcXiCv@k7cZ)t+>Lg>`O~F2sy#4YL9xtHfypSlPp32uwC)FO2~Abj-_Eu!U^Lgx^o& zLwu~^Ba$zb{%1?j@ri6e3A4oXNzSsl%G;mo_(Jt1&#Jm}?ER@Q>qcxj2>Mn!{ABWD z7ZW<c|8`0KIDXZN!&kjInAMvdly8laI@a>Jj$ilD!W+Q$+#{^d^*ux;ci<s9a{C{m zGneW58Qlxm`6C5d@Cu*Z3c8C|wsPKg6Ji@Sp@+Zi*u(Q&2!_4b$1lRle*jb^SJI3Y zwUP!VxZ8_tWX3q(QmQBS6EZdA1fF0c*9W6@Yw|(j0nZc4iZ&&?OKH@@dy&RNN=9^Z zv%dlU7uCwxcoICs?RbI|zdE0yHSr+a-XYaJK^I><mC7@6X92H$TNkR~gg_1a2RHfy zdirV@5_pUYh5a=Y1f=x$Qj`am1ipLrXR>K>PQ`v7Hq)vtI6%|$I01vxrXSZhxhxz( znd=#jDjCR56)G=s>l)T8Rt5jNgBWd_#cuHo8<CJ~YHY9Q;(~pOPf6<yUYD`X?0<^% zuedVx2v>iXq#l%9hEdEYu1@lKiV1O=XlE9w&NMj8$k9vOD7G@-*C-q+>gQV$*P2_v zR5MRPriY0=vWTVD2vf+$8v!iPP6;qC<1T|<!#gc9mhyx2zaM_oV9Hoqp#=YrJ;tpX zZZA9JjryUZ4m)eOE2V=P<`hRAb*LKdx8Q2i<}kM}urw|*vqy2118@T4xQ9!Ne3)<e z@M*(`Zz3P2Xx+c)tKl;$lWx`3i)H3>C$zbPt0)LuF#=1CoWM@bvqPA~5V;t`6ra}@ P89CK3@=J!c1z-IGI-$gQ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignExecutionConditionToTransitionConditionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignExecutionConditionToTransitionConditionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..738f8873258865857d43b5c8944ddf249924d208 GIT binary patch literal 2158 zcmb_dTT|0O7(LsIEo}-|uA(3}u??6gc!MG{41+HgoRLo7x6M-H<kCq}^uOqzaE6Qe z;1BReIey!wz|cH&Dlf_I=G(L9JKuLUfBydZ4PYHRDa05Y*K6peZ~6gu^ka+H+&~v! zM7<T5u0xA~uz9m-It{(<+BSC#UpGwN@VKq-`o7t4_PfD*u49;TSH-P(-0|Dv%f-FU z?i3OX^YTnlx6Gz5^oBUTf)1k?#)4i5hJ$k7Y;D&NmhKaKCot=J1fvo|+7X}kPlOXN zlm~|H6+j}pmJuS~*)|<B*kSlq82F4R`U8VS5H4035_=?B25}54$Y6vaUMN<Fz;IVV z5_jZiOhF3iEG96O!X(4HTP%lyY20I&Xo#SfAj4syc$*2!Z0;)<LOP9Eh888Fg)Y!K zF3?1`u|orBT?1&L0klC3&_y}qHi`WZ3n|PqZ1pds@O|D8zJ3r66f9ziVTg1)3Oq6@ z!%Ct2iJx%Y;$+*-VyW1>lpzfsDOkZ{>Q`R`WnL2&RUm3N^~Xrrbi`rHt_iQgYnEWh zm)$zIs@yZ>JX}l!A5EX3*?+aVy8hS2LY_;Cj+IlL%8|Sbx`L;&mlK{aT)D8WU<1!d zFG{$|t(G9JUk5j4Z>yI2PyEIm6@gW(O0&IG@CvV~GQ_zzh~fRM@|Sl(rY&W~-8Bq` zTsZk4Z1;r9o@hCSOEE`o%d3mGrfh}HfxIBQ6bn?9IQ^00$jf_%MtOP5wBO`UdM7C& zgDgE2ngxip;}_Kn<kZzOjH+vA$g8VAG0t#?88!dl2j<SP{GFm>DA04JjXR12#>w*& z7{(-BH&b->G>Y_nzJmxAt26^yN-|;X(He1x(fA2QLIxZ3mfw=<Ikc-oG86{P(jjwg zP^A+Tf->2NAwY?alK?qYJtgL+n7P2Sn?OsH?eaCCTnH4C4IBa;gj!??W0VAV5yMTG q0!dfAmSpxa$t*T0HOV83tuV<_G{+gqGlHW=9Q6o}4BG@7!<&B`Eob2X literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignPreFiltersToStateContainerCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/AssignPreFiltersToStateContainerCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2026e8496884676dc9de53a74bc08006001707d0 GIT binary patch literal 2523 zcmcIlTXWk)6#mw+qr_3tlF+mXm!!05Y$vrK;qH(UOhTb<%1nxxff;5t^41k2OCCuE z`p7$fghytYUU&eW`B9yIE6J|n@q_7v7yInlv*+@i^Bw*B?9aadY~hZ9oPhL$w&jFQ z7)j5%=gMP0veYli?nRF8Q5mU@>~<ZmZP|XOBfVB=wH(<FWXIYIL#OS19jF7xjZ_fc z^^dfD-S;Btcq*tT4-Di5R&^L<yG}P$R$JYB;Vrcin2VzgUJKl8jGbG@Zz<ObnX4B$ zwsks>n!tHa{X9st!D6Xu{3w5t7VC5^t)bQQ5$lmrFHizM3|;TMbTa#WG+A29(XiHb zbxOY58cJz$$MKwKSK#~7OGg_jeW;3Bxhe4b|K<IRG19r_>+Eb16L`ghiFtvEQn@(| zfmclwFsY?Q69%Sca0$x>mIMyYW@=2lhSvpV+bSBgDHK>MmE+#@XIXWUS@ykTl=kCU zD&kG78dwpynjL&?tZY9}sjU{j;Q*SrjJE^~+wVTub6tUIDbu*R@4Cv42d6w*ZQv^T zb9$aNG}lbbU}_2_f&0v(n)1Aw@Vq+Uc}nqWpW@Y&;?*%J-hX%~J8V`3n+7%nJ|4dj zDhy>?h1Ts<FmWAK5|ZE_MFF=DYe^w-C3jJxtfg>dRYjKlwuyJJB`_7Ls3DIP0lhHl zHRtPGgPZEG*Ev?fU3u)1`11|lmTpr9jy|W#e01Mo^X>6z*@yDKZcA>4#nTx)==QTP zl7<mtf@`9t`H&A(%h!reOzh$YF=Nq9>Gl-!y^<ZHcrY{b6Q4E5{vNhEV;&F1JY(<W z<_tc==LYHmmxsxwyKst`CiXRI1>03J&=0>baT8w(Ov+X(rruH(jV$%PBSHBY(XdhC z_D-aH&ujSt#UsBL*!ok*8QL6|H=45KKGzyQ$rH%woknS1Z!~JBDd$k+nKaIv3zSXF z@-DHM!#P_1#<TWQsyxQ|%Ek#6Dw`*`P}z8jivmyZ#y_}ng0;&0`V*8N!TN)?6WHeO zavXI5d0eE&OPIqF7uYh^xdY$j{c7SD@8Nx(7$MG6#FEZ5hYu*5%u3%G%s5B+L*`9} zQMb*1eOIVF!bdu6E)J{BK<9Zvpu;2%3TYUj2RwC9V*=X2Y^Cy$6+Oh-W9$q&x<&`< z8Ar3JqnsuNLnT;!8fWw?&l;;0`dWzbd5S%O!HJk1<nZkah~{GR4MMX?Xs%~qSsB2x tg0JE>(JgKbU|Ec-)OVVu$z1|aV|0CMy2cUpZLz-X5%me&rrR72p95QGxQYM( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ChangeStateInfoValueActionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ChangeStateInfoValueActionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..611e85749338aae0f7189daba352a484caf1c883 GIT binary patch literal 1850 zcmb_cTT|0O7(Lsjw3JY=TvYG^sL%#T6ubh%jH1jqQ_vZlKIr(cO_vZ&lTMSOKg6HG zi!*}agO5J=qa43YQV^^|r}~h+<=gX}{q~&w@$>6901H@7Bf;>>YgmTu+kU`ZW82{s zFEGS=VKxKXb7?UUHD0gVu4R~Bt;XG|Z&Yn=HF(Wf+u^Pywq(pxciSs-rzswqa^G4M znufwKArlDGvFpAtEU|rz6Gt(m!aNL*OC6J`c~#*UK9O?++cef~mpdVoWrmC^-i2fs zHo8W9(yBp-8p26v&#A`HJu9|r2dfMp3SB4pjds@<?T8l349XgnD2pU=DzX@0NEV9a zUND?fkwT9g4XH>Y(}xk9Ph*tf(Z82p#RXiX9F_=95@UE)DE`+&$`g#M=tU-j%M2AF zug5~xBO&WYLXI`8w=}HB8rIL$aBIsZuTeFxVls^hhNaFcC48S-!Z$YJfr=?yW9X#{ zZ3PW77Q=L*^oH+p!y!Kz(c*IP&!sFK_=bvU%#aX$5tMjEI1D50c9Q@GO13LDo3)B) zyx<i_Fyu>~$(=H9*m52(D#4EJGraEnZdyg`{2?Icq;}==z>qb$8!3Y(B*~Wy{bVuo z?FO&MjMCAyQMnlwR4hvIDh*Nfq*CvwxQlzFFe<=lg+1@yi6@~VyN51nx>b)@Z+Xpz zDb{US#_6*~Bd-&a#6L+-Z4!!f9E}v|x3DMGQlFxTEc&QbX%-+6#!qRV(XY+!V^Evh zM_!vf#4y7?#<cvUFSv4m>mMmPfdaK-A?_d{=gA2}$YGcqI6}EcQKbJ95h66q(hQ_M z$%KWYIpUC@@jUdH!7BCgU!V2~gWr)-_L6%vO@^tWZQ~)V8imEMMi|4SA#Y-UT6vm9 z>Lpf6JHV}D!dXfQqNflQNiaf6#Yjxvb_}o*k^^#*41M`S+)m&$(hT~E-7!+`2<iS` Tk;d90%@dN|7U==;Okn938xHXY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteStateCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteStateCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..f224fefde73576d52092fd9ae286393197110e6e GIT binary patch literal 2188 zcmb_e+fv(B6kW#`1hyc=gpj6}K+^<UP>TTWCFIfuOmD{Nl$HnHj^%@+R2N2)X&?F{ z`G>r8rlfTrI(f=NKdRHcC7Bpdn{=kb%+b--Icu$bHGlr~`yT*S@wJAWK+6w$rXAX0 zBt7%MksUuW)sM>RN4D>gF;cEPJhZ)@Y5A@zy>4iBZP^Q?Yi=n=MQWGNY$o3{6a?lO zQCW_C7%H=;4qjeNPYD#QN4C=yXk@Z?ZIVEXAGm&3IcA&IJv;16XNTW61hiCwz*Z(g zrv3!%C<ZcP)mw=p1X%h(hTkaHKT@Ph><f(Du{}GwC-77C|6s_(c$J^EJ%Pd|xm-dX z7j%>{Es(F)_9h@u(NV-0?=I=kFg}jU0=pFYdYa67lFa%^GSfWPhk2~0L9Cz8<M2#d zx<q~jS2esLaQn4O#Z_S_dnz<{(v6Nc@s_|uPer>?K-DC0v)XzrkEH2Hs;$JhQ9Exc zk%#Z-xQ2Ow@lZuA*-?(bY}Rdx*M*ktsdnG(sNh@KaTEor<y+F(lY!0esj(0}vO|G( zW?nL@XBf4AseUd@OM2gVT|ds#K4+(@V*(|rF#6JrkxA1em7n$fjyz1|Xi1VN)&lSA zsB@wVf$I8YtYB5cErAEGAAD{SGo#LRtYKYXnv+0X?M1c~H<Z9awH8NW*tN<%pbqu} zWi}sn9xE%_(C~r4_J7n6rYuRfZTem$DLX+K4Sb~IW85BA1Wgdi#*GXW9CqI`X&O0Z zvqe*Cql`NolDh(HS#n;{RAt=9ry4#XpZWHv!{?}UJisQ6f*>9YXKF5uOKqR^G<9s_ zGfFZQXgX8`R<b9@S%JeL6nA@{YDdGD0(Y}~%Ph=ftep-ud)d;l!}9a8OEays>-Pgo zZQI-ua~U1ay@&;>zdZdo<Wb@2Lc0pj7JBBmis?B<C(6)iousz|vh(>X#;=$%mXC4K zSUSdxQJMV>bI<Vh&+*L#S}zkGqZKeiNS82$S<I33U9!$67`Tr2=#9`~P7&`|MUL2R z;AYBc(v!axjbE_%lr}k%od^T2#(*r34y1qrwUf)u^m2tR&%A(6kBcu*EIiFKQho&K z+6Yo5MKa<uVwymfz$?dKErl!^&#?T`;S%WrIaDC&?BrQZ)Z-~YM7*rGVX&wHOo8WU z4Dg`<%Nu~^$^iFrIL0Cw7N1~}?P7qf9GEbX&9Mc!dL0J+EnywYBgBo<F02#d=O+rh xIK<@2KMQz{F9!H3hbNe3^5ozt{;4>NE9CAi`sZSGgnR8Y_bPF>Noo!c{|0V;FLwX{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteTransitionConditionConnectionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/DeleteTransitionConditionConnectionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..024c2a00c36e5baedb3569d5f1e8975923275a10 GIT binary patch literal 3076 zcmbVO-&Y$&6#gaz0%RzamR9KxL2V_$W-ToRnwH<-j|OT5p`cbL$q*KjUEJNE|A`O2 z`_vcDDXsCr)2BZ4kMekDb`mfwp0tO<&d%)2cfWhTd++4+KY#rVU=%+m5MwC1Udgh3 z+Yf|eZI?yf4J`SKEK~#Ab!ah=6|ui>J0+{&Rw}|N`c}~vB~MhW1zDDXT=RtE+iLf` z>lEuRjx2;r`b+|GhCyXX7RvU%FRhZ?J_4K%kr@&OnqeW=GOvnTlx6F{_N$_7tt!R~ zA;By|cfoZG6^3jiCQ-H|JzOsYA}`E|bq%?!;0db3cdK4OGK{qZvqHz300QBaWWbON zku+6?=}5Rp1ww*8DdGfnA@r4)B|~6?*KyBw>|lyvYB&<PHGfm<4DosLp&M;D$I*-P z3~j@y^)4`6;7Fje6YnzYkxUtrKAA9mGL7^xnUkq!PR7WaX+3l5XIDgps0`q80+$%> zww@f)_eDwi*0OowxPq$;U8KZn;89*PTp!NuiUVPl1!Z}-m`$Br>L$+zIfn27L#Ho; zoXE>ELx0q1ie7KdcH~O6l9%3^$d@T``f_eTl-Gr4tGQW>2RpXUupOyYWERw;`4)Ak zD?&Jn8kZQ6pj!+*lsSdHWwCE4B|-sZ5}zQGzzv4UsCc)ONE{YEHQ_e(Gd`S(bha6< zxq?*YjdFCMTM@g>F;+)j(}ktJk8>o|_eo?ExXW;>72-{XIPT#-wGPS<(?}Ss7CF~D zPXf~nb5X`4B|Wu;DW7IJ+R>qWp66J=BEwmgyrv82_QWt`2-f?ntZY-Sbv<b<KFse@ zGp2Za#_-?`DK&acM3+xu314u0i3bd46eF##=|Z!o1nhs@Z`jfhS>^gN2S<-G^pNAL zx}i{Ry-RKSn&S+5RCTU#e53kQ+>=E&i7Ct{@R(ugZJpL8=spMpm9m$_2DUi9#di!B z$=`^OP$6H75JFX~>sWN9maWAcUA5UHp5Vs>ejwo#x#Oyx*vui2r~Ai~759LO_CF2B zh@09{`BCJM*rsZu?i8xQFwxpA&{PB2)Vc!P;jrs~VbqltdmLp{Nc4soBl=vlt=2VH zR+r#%?AP&+X-&FT9i{6N_#A<XNt-AZsZv8<mu%H!-{4nCMs<Da=Y&H)h&m8cbw+P} z>UN_srh1JYsi)|Xl2MP8Z#1^k$zGhL=Q}i8rTsA)&!u0WFFkUI{&e5PKk?pky#I$j z^dUX_5U1w=JueaXWtv~XN3?PwJc?_$PBQ}06c|B&jA3J7ibh7?lIdsYe}(q=)3&EH zZG!^t(4U4h7!S7@u$11zRHdYGo}P;AZ)8tlZKf4i4I>PPxM?Q0)Z~tu+^k`O;U%UH zF=IZ?srgb3pQ}x|ro|Pt_$d7xt4A(hC09Uh^^hwA<V>3WrZIvw+`waGjxpXejG3xp zL-f}M(Px;cf$r6p*r;KXoYBOIP7UA3u%V``hC)n#ptn-^Rzt{`R(4OUI58X%9nj*B zVi329;ut;0DH$h-<YXktpBf~8Hzao&oG3)}o;zWa79Z6>X4OvmrvMwqG`UkJeTt(x k?jHHt%=te0soANpj$?+dh*^{{cZ~B+Bd}GHB8G#10h<0;`v3p{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ManageStateDiagramCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ManageStateDiagramCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..5015f9739c616fa0e678bfe98e2a23f35d5ccd37 GIT binary patch literal 1917 zcmb_cTT|0O6#llYq_p8y%0(0u6l@D5ig${50evd?Q0-{nw#iz9Y0_y@)Su#uuRc3N zy*=;){88%JCNR(etuvj>Y|c5md%kb?d}n|D`mqmS1@{$17>aJAs#~7r`P|W8*}UTV zx_Bpyrf<0p1$|ND^}6L$b;GUIxMO;{Y4K`<*Yqv!@Tw@vHJd?bBUqv!#!&wM#D}<s z>zI}#pi{=W+jPtTE6mT33^^2tH^XpYhwpNoDBHS><Qe*lR@LEtvmqEt9n))tuBp{r zQ`q{h<u$pjA3bS)oj{b31;b`9QZn?dS&rqeGrY)jaL)Gvpqwo+eC$l!qwDAy!Po{} zdIC`lt4LymA(kQH{a_eXaRz<T8dK4agtR79OyVp<f}7@{JXkr7b5wY$vlePwI}}%_ zXUz!ptc6w7PSx|l(ubzG&1=MM8W$AIFsybjB;k3~ES|m<8Y(VgmULPbe$j7Ge=#hC zm9aT>TM*1=105U<CFs<bR9wb9L);U7fmei0S8~$sQXE$pUiSDNHia#GA+LgAs9-r_ zyIHG<#xq{ADUvF<2DeMRVM#v>#{Aco$MC#+l^m4k-_H$o;`njQ_w@tZ0cu*~%@(h> zc_`2s29G}$3a&9c>b{Vty$B3Zk|2$lY$*v1H&uFLZ*|n=X=O(kem+~4(!HbNu9R-_ zE%zR`pIkxv`x>I=?h2V=O~tBAktn*&h9RC<@_J`Zm#I7$W+`)&9{31-)Gg#GZ7)tf z^$gijiY1|vAIuD3kfQtK$LO!+roUn+x7b1|x70#9H{HVc^al#1roQ3)7tDQvnoBJN z_Gj7=Lx#pV#AzHQ%rQb4#}Fovrrw;y6lrw^%Ov<Lt;hu^^j{>8@Isc-lKdj=81*#q zTq0W~w!x}6S<7Un5&2CiV+xo8O~F-KAm>(aokn?<2kkS0PLSK9VGrr=xDi1Mw<X_5 kn{R+Lj}a`ic?CGBkQep#U$f;;%(h6`mQKueuZ_F@2VJWfD*ylh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ModifyNamedElementCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/ModifyNamedElementCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..03097f4d11f3a794a9ea65e6d3fc83e43669fce5 GIT binary patch literal 1631 zcmb_c+fvg|6kVq&O(|(9r3xriK!rA7qbObg(HVpn3olh>)Th(-P@`$mX;LqL;fL_z zjDYBjk39HM>OM)hjI?7PoKBN-*=Oyw_gW`Ee|`G_U;&R+L>S6Wt8SRC>3ZBYb}U|T zJVSgC)wX9kHZ6Lh!JAFft{YXS(cpH?HEJfWw|K+YbZX|#$1UCvwRKB0gzc>bAu6H_ zlM+}|Ewkwgqb_z%&xcVAsx98j;|!V78~%<P7N<OAuSMyWY1^@C!L}*_e1?ru&wLwB zO<0CY{B6&y8fSSDcx=VAO>dRqRsR1#p0A*=%@AE976~XwX-Hs@LCF`k`@t}zA&&ky zh8ZB|7c}%C7RLxNq7sXtB*j3I;)x`o8pUHZilG|Cu4){ImUu;235?;gic1Vjy*E<0 zF0TvM*bE06#xcRrUl(2=7Q;-wL;dHM5>)9G4U?E+h`Yk`IZ^SQPE+>=OQtQh+Kq~6 zJ>wP2H;Pl`);4dMavm;5z1OD8@Vs{+kGuD8FOyXmVJFKTufE;nO+TfI0>hKu8`#~6 zD&`o{f195nQRVi!e+{W<^2|%R4uJ>60P?u0;T9HXjU))JNH$;S)NUPjr17St#qMfQ z5t9<!*YH4^G1?L}N8&AOSdp5jq)C7mZQC`6c$A%Xt1323+5B90kI4!!MbHX;TNFg3 znQ0V}8T~hzo!)&Ek-z{wHJW{*eHlNkA0VmE?IEpaGJD9*A0e*K(?HK${EE?i<UUiB zf@yl@2oXpkiWDIZ(l3o+3}F-*%0G;&v^yD~;u@~gjPT`EqnvUyLwq8brEv!AHyu+{ zFco<fI;}Cx<3`ACmEQ8qfc^#PBlJagm0g+!G-CeNh@Vai!oqYCS^<;!io`Cc^eOR` zSY!Hk=r1JTAq<8C+}^{YzK?sdz=&U9$|paLEGCFu?o5WUFawj~g}^IxN&=@OCjGOA nSc>2jEkXOT>?GmH)&yKrCrA&wA}w}AnkA%sN2FE1f=7P<bp3>a literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/StateSetConstraintCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/diagram/StateSetConstraintCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..034b0fe17274490d8cdfa052950fda167ac607ad GIT binary patch literal 3148 zcmb_eZBrXn6n-uVEQBr4AR?u$v<f7FW(8WcP^&F3wlyF&g%;}Dl3dblH@k6n(-*(` z8~hjjq9ZBjjDD*#{wVdF-A#gNXu^!cu=noWd(Lz2bDnc<{`&jZ-vP|RRnQ@jwVi@y zxQ6TLmbPo^JGQ6Er!rUe4BMhbPZsr3$*>Aq&Mp>pEAMJ~LoYabQOokztn?OnqoW%Z z&HOD2q5@;=SmsQl<Vvj|ckA}yE`c6PKDlm}$)~_%=J5W!qd%F=lbKzVp7Tt*EprrK z!ITSRWt;h`RqtcNE$im0otLJ-jPIlIFnNPcL=W33@-}U=ZbII=t{9f#T@|>WIJR}0 zAtyHlqKkwbLj-*)V(1r$B$As7P70iVs6W;<lTN4IG)-C1&1+7fT$Gl#{4^&^oQ4<% z(ANWjH&k?^Cx$oimV#k{@wPZqF@jS9N`X^VdM1!eB-;#~K~JmbL{~S?3TzWzI^;JU zh$USUOQ@4{RVV3CC+Q<~Qr)_y7m1rOoL6v8V4e@vn8c=vEK1ka3)0nA!-<M_@GdEY zPMY-`60N{QB2y<gSX@ZHx)h^>PN<kfLZI7~UPj+xMGZBxrgZja3`?$+i#yV}qwknf zAfB;vy1A)42ET`kQSX64+TLiYtfoh*lGnP(NV_M9+1#U5z2w6w&;+z*<h`Z>NESKW z+OYDrFUjp*q%o)BA}$HUh{mO$*2!_Gna0F4`VI{!x)?cL_76$)D1l5Q`@gJW9<-sC z{4;ATae)hM0<7EAXcpMdM=Gx3<3QM1<9kAxY17A&LG|Sl>_QCJu&Cg=K%yPyHax>r zv4mwxIJ3iTYN^(o1b%3*i3De8s)|?ntcH4=n*CITf-Y_pH<_ect!utcNe?nuQ?M$q z*o=~<vJLvHwrdp14%MSy@hkp|iqEl5xz5X7y=;1}pQqP1`+6ub+{PUR*%qCyW}spN zRGpn=%a_!8kd5jk)Oe}X%%~yoNn7t@Lhq^A!ZxXnx<sJ5{|TlhBNC;+mny#Edm`${ zyv?}ZaMgTEOtfg;fwoxJJ1TO>Q$Hi6`l|vhLJe#KHd+;Wu$Sv_S49C2D97A4YxSHy zPAMceIpBvX9)Y^9>NlQH_X78hm&R6s*VE3yTbxd6ezWa`TQ~M^b^7f>wy~^Tc5-sX z;EUkw(bpYcL^wyujnEIU2;zLN(yW7PmBu(<?lgAMju?9BsnXkz^qu!lre5I0^q=Vc z4Fg**5dR}JwTHpfbOl3u7)`~`?BneU#($!%5hUq(mfQkEh?01^F-*T9M(FJn&R`T1 zIE@s29SdAz3e)sPAbtqKpK)*<xIptb#6M&nQ6Lng74ioP?mf(eA>N{qZH807VDKeQ z@^FAzftTovK94-7PeDk0G7u<3tAR-f%`g#&AzFOD=69Li*dQMGRcRP)?sEK)%lLm? z4v>ov&`(chv&<+o&ZUANKNJWiR|NL)$sSf1g#RnJ@iRWF;EM|G-c40-pPB7A#B7Qj zO;MtzF-Yhm#8jI8W}zL5WiE_Ga50A=Y>^iZVUmFZq_6j(A3%2av4r6JFb+`cKpnQv rPu3j4U8DqFIs`LWgDD*evr<7L3@zO_3g$Aw%oEH)Q<(33E}VY>P>pI5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/CompoundManageCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/CompoundManageCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..bb843901b1cb8ee4e27a9d285642405ac489e5a5 GIT binary patch literal 1131 zcmcIiO>fgc5S?|lNpPG10UDsRv_NT+0u~hq1gJtPgiG2>A&0<aV{gMk?2T-v@K^W+ zT(}_dA#vab@S_lKZ6_@S)Dsua?(CcQ=FRxW&u`y}XoJ>EWHIXNXy~d~#fb>ry^$E` z#FcNQH%XKZkxXPD#$y!@T~7yr2>tlr+0&t~49?xs!B|g1e_MoNC~-5$5^+XN!!Ny& z8pqNd%Dn@cX-$r1RCy!f$EmdR8L>ViTloI$x%fbZD%oVjoBdV~VN3hcrUE$*m8r_8 z&}{Wi5Tlb0m8gi=RiWIO1Opj86@!svRPSm}jCvwc=AI{c@>0c&UUdK8B<`a*SYcF* zWT5xaNy!u8v(VRR*L~CV1&8KL*EU}ADFBwOBDJ~b&;nI$KrcIVHao32bk10>?k2)} zy)DL5Pm%Psna!$0R}Fw;IccKl&~=lrcl9LlWJj5~T%7LWxBcCECH4hhfnWhYj78iu zh!Z#CMJ(f`Os01mw+;{%qTT*VmG;7Cs(r-GqEq<RQicjDtH9UjG;;G9n(A~0H`Jx9 zjC11+BHTDbo&nj&HC#l7++6z;o&SJCMqf;mjg;2O068tJ&5Cd2#TGwWxp=73npI-h zs4&)^=amguy9DXlJGlHpOYf<Kuxxx5QlImf5Mkh)R;fa3pjt=wHxJP_a{4R4akA<K zP-8)V5xRD~&}~p`K<Exg??UL_F+y1UA3`%X%bA-ccw9T`XcN16h`l|6PzOR!{w-89 Kj#_YMQTrD)0K?J% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageMethodExecutionConditionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageMethodExecutionConditionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..6affab981dca6e97c32d0ede043f286b14f113ee GIT binary patch literal 3622 zcmd5<U2_vv7=BKYCT+5{kkV>t!BQ<Y+mb~Dq=c^!0$P$LG@+7It=sIeENpf=yW3W7 znDICG7rgMo3++%5XY^8M{7GIozGrtEYLn4S0LPn?v*$hMeV+I8oc#XhPrm>-11*LS z!vo7+S9C{rT-8)QH`F!DRrnXYvFYlTNsBITsv8@+xvn&<W>Yma=ef9HnVK&4DMi&( z*Ljh<_bn~IcRIHx&iN-}h%nrHiFj3;^NMS4Hr!2{GYoC0jfX^I$+Fz)qYYXq6}m=i zS{gSLhpaVSy`lU~wU#${lbddaA$mzSb@vLxA2U7cE|NpJ))`@?@Ic*C6+<P5lWFAl z%u3Hd0zx<<)3b*5SY}eo43QjpD~>P{5@L`TzIip?=$UtC=hjop17LVf!VnHI#2@lU zW!0v@It;@dJTEpUB@E*TZ8rE8H%hj~ZHC-Sh)F+28C=TGbWnY1zxvXx>I(`ly;pe8 zC9T3scU5?M8nT+Us5U8ZZ{TPQV+<F&FAwfGR9cQw3?>rBF~Kmf&RsuG8BWf$CvU2K zDNbHJF5yi~GW0v#EvReUU>NCinsRNZpqqSgv$@9Ys=8)SRVNEpLp7FFTNmHKV#K|# zQy7izQ)bVtJ@+$e2ji_^?Q3?Xs}f~Ole^uMInaLosYQ?j+EEz_J%e>9a)z(}XBFLn zq^RauoQh$N;ac~Z+}`L#kCc#x!f?2p&E3x4%C9b!O4ZeBt(<4L-m_<04LE^!@m>sP z7#4aZ+U@`eXK{`}q7uxSE^lzhqNMw(_rSI2re4V6)|K44H$@|TUqT<EG0Za@I(WzR zgK7yPnwKS95pj^pOQnT;&JTeQT$7OX1wnvBY=j^u;f4^zbA@cB;)SdqHyO77)7E-} z8{FlhyHZo2fGqOuj&~5lotanR-31A^5oJga5AjqH;0$3^(`cMYEsM*#B%y#}0(V3z zE-@5)O~sCui5OQU+y(XQ#J1}A`N|2O)dl7~2{qIirifFS+v3F;@NCN$hNTxv;x>($ z6d?~*TzVi<YYnc9sLh+!miLbNRKmx;Yd({p3Yyct@L!q6E7qpn;5T(~Gs)du$0Gf4 zg8UVxhd4t>6b8-uXdXj9jRW-c7!g_lCgj<%NaQKv^4u;4<x{&jEGI{P#Opuc*!Lt4 zktSf&+nc1*!x+R7Br!r4^eCoCcGlN}x9~Q7kw#48B%z2IJ%mVun9(c8<1>MGFhkga zODf><Eol&3>+<Ye*rT!o`58`!u#59@>}Oo4g_9R6wTKw{#1N%H&?VVyExdzEB&0JW z-N987@8CMg$&&m*OOATJm>~3H#OOFq(@UX@NlKm*o;8y`la@90mNj*cd5AdQ!Uq9! zg?@#leex50_#I7rcSXI$X-}c#ZwM4dM2*mj2*H=08-RKFDHch=`QI=s3q_vwW#4*Q z{uN_#?FlMkix5A<M<G1kMMcCX?8V2oYL*nvAwgHoIN3Etf5I-{+&&WX0f`kl7eQ!z yf=0^AfQ}l_nIbx$2&{J8)q}W6Is;s!F+;eQiObb}cvJiE!eAmL*JyhPjlTf-09t+k literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManagePersistentTreeElementCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManagePersistentTreeElementCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2e51ae690fb59da3796b93e5134ea666fbc6ab7b GIT binary patch literal 2186 zcmcgtTT|0O6#lj?Z7BiDO+c(5a!CU;ig!TNL3}ERz~I=orCCcfO=^;YPyP>I^}$!2 z0dEif0DqKvHYo)KhmONI>1<BUp8dXa_FVe?$JcKFrg1lc2t&znOS<Wqp3iOlsl_)P zUl%V$vFe+SO-f&sd8K07CB5jB%iK1+gYBYY8>Y0=m$=PKVnw(TNZ9_mE5xED$|Np? z#}bG!6i$VV5GzjAHbT-GK0}93q$}Jd&Kfnt!+gVxWycVf?oqh5Zx(eK!J6+@i+<G= zMh$S5AuU-JwoGeZ#}J=0ZPTA;c%z;&-6_KrvKtJs1qw8UC=>-rw30$4eKQ!^6*M6( zr49uN#FOY^ctIDKtJOy?tdCs1K5C_r+b@lSoqB2HPA-l8<M#|>nU~489`q(~hGC}h z<O$EC0`&BynxLQ${S3_|;Zqi=d>O{n{4>7Ib&FFmhsxRPQB{iKA5d@(8HS`M{5;<j z7DLZ*r#F%qWbpsr72Ow>@P)i3N>|>r#d5X0Dcp6wX_2Ng?-aSU!Cg~+*OW1T%k&t` z#%pOmoB!76)FUZw81=Sf1%}o&pBJAm@k-!R0xH8&<GF31F)3w~>1DBVY}+zCQnQW6 z-{2&OQj`o)HM`M*apV-}xWq6_+TZ8kktxEkdfI~`Taax#t>6kq8CrI@w;0TDVMyPu zDY!0u>m%R(azSxdl$~uMt#2uqk=6sD>evI)Zcf2%X*U|$ofvd#&8fOY@xYX&I^Muo zkll(46jzk~uOjr&bP6PzP4te@P7*Ti6n(v={TRKoTILg4w23{mX_I?MXI`US>+JlD z?vFV84vN-!K9oO@aTG(eo~L04v=MweL8WQ!Ko>oO=!J@Yaskjna17%jeGyII3=1Ub zP9%^<FiMzXBzGh7lK^4~umr~GN2W<~HA_gL!#cg?`6g`_>Gvc=FhpxSP-X&BB{Zm! zGE88SG&0&k5Ivx3bh=F<e8E%%d$_DU*`=kfyc)qP(#l{%{I=jWM<~Qm%HjAS9<|PM pqt3HR*3!wL1H_vVJU+xa8?gR~KS|d)Me*kj;SbgE=L2u<`~svOeAWN} literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageTreeStructure.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ManageTreeStructure.class new file mode 100644 index 0000000000000000000000000000000000000000..62c087dc6e91cfcc0e912dcf53bb7f4db0e830d5 GIT binary patch literal 4743 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 K;XM)t@cz%$8zX@L literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ModifyExecutionConditionCommand.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/commands/executioncondition/ModifyExecutionConditionCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..389ccc1b24b66d5f790330003c4a312e5cfd8452 GIT binary patch literal 3895 zcmb_f%X3pz82_F0k)|A|RHzgv@}^BOQIKaU4`YgjlvdIfD4^cnoR$kWxiz_gq9VRv z<BT(I+_-h?!WntQaU54J*g0-p`4_l#<M=!G-lPw1p;Nlax!?1A=l6Z*J6|6E_w%m+ z_TgR>5rMo@no3$_tLz%Z<fLs(IBrtSD6`^PPLWJk6^!X=t2mW3okGDV=F78U(<$aH zt(P2h^48?7OwBG`6Qq5cC>jN}>YbEnThnEgoKlms4g)QL_WI6s4+7cjl0z&wd1WWd z47uo9X7b5+QUdFX>gJOI@*O)L#&7Pkik5p!;JfaX3}hvJ^^6HLrg`>OG+?zv3~K}$ zx_icA5O_hN3C;SeT_TF+R;)uu6zc_c&P|9aOfor6NhO(iJDJg+qx_P12^;9%bf#|! zobWNIWpUOhGc<8cnQp4bJJ;g!C^ib5Ub%$ob8VJrL30bX2wbP<L{QBMznT;EnhFXz zQ7hzGNxhI0&nV=Y?OCHhu(x7+6x#%jF8w^JTsEduIXM`7NbJB)f!LICb8d;(Okj6+ z_L_0SNZJN3ozEn!Pq12f^4$`9&@IqXR&LgqP&Ugr%$oJlmbHrNY^5-vN+ZUEtym6O z$29CQqhx71U^co}t+K%6(#x}k<}%s>Z)4QY4#5;iO1!Eox3Q%1j%MtW*pJtV4v#lx z*cHXdhF0_z_KdAUCk{#+!eIu(Ea=P%tm_UzT&o_HNNL2Q3`whM-Ww9fw0S$t2XxOY znrdh=Z5!pX7N3wfsZH8x5+Y7ZyoHRwT3QbquB%GLLBHd&uoy;2ZPhw*u=-tZzHKUs zQvwH<XRM<hkT{Jq42x0EcP)?#&B0Ql^6?&&IEx{+CLZ~max0~x%6s`0xEy}s`W>G4 zA}wh5^IT<auwV@RIMtsLV)Bl_g%C_u#Jxr>CozIio{Xr?3rFBeC}=CPbIOPHyu<}u zWH%tJIreMT@yK()>A47p@shysa$#J|t%mQ4#JhOU?`OdYMwbuUVmk$J84?pP1tj6h z%$RCg7Ypm-IUuXM35QK5WVx_C&9#PZO5!Rko`#iI*A=+9eE8~K!VcqC+;s^X1%cIG z?<%n$vVE~h?+P%SI|t}@f|H^@U1T|LrdGkh2T@E5Y}2SbRav5>pN1yWRz^vWFs?)e zH`s{vU~<yt%a;gVK5vJ#W80iZn9<tXxsa`QpOLtQ4+WZyeBSfXxtNb}jq%44xAk%L zYu#@tJMZ=PI})F2ZU?yoMcuy*dr-MooqXD`ZKBapzvT5+l=h~n)j8KNue00N9^Xna z?+CQ!oJz@5{g!^EcRp(((SrfD@wIH=RNsJzp7!|Fu4g@O<!r>Yi5fBJS9KMs+tkzg zJK_%^<GuIM7T<dxYva9-@ZxXiypK)s_O3^G`2lwQNVN!h_`98B76^SKHqcck)?g#r zun8SpJF%JaF2t#^)pw0v>?OrbypV+VrGttvh*xOshq9lmmNms6AThgHE7kOtjWpLz zrLPn?6?#$#931i-0<n1fC#-#l*A_bIX52k<oWuer5j|b_PQ)K{!VN`?KH7S#I3Q5P zkq82^Pm{+ZpyW+~-?1U!lkgDhui|Y_nw={p;Yo+9IOj<@ht1lO@TB8aT=t~z&y|w! zr1>f){V=MyrlVks(wln}!y)ex%2nKq;JnZOXr2}+YVmi0)+h6{NKuQwbuA5IgO~QN znE^0iZAf4Xao@xLj(s?Q42Pxx9OjsC1Vda$Nsm)vavGY#akirqC~z&4o<SO)(c&)p zaSx~P71wV_e@pA{aRxsiiw9hP;b8EX-u}ce{^I&K&fy>A@GnM01Ub>dU34{c_{pl3 pn26DPGgJ9FWzA^p>+0$v^+kA%YznE7an{JCkQx#Ak}e~-`#;^tc$5GD literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..69bbfa4cb0e52bb633a44621519807a727b8e37a GIT binary patch literal 2952 zcmcImZBrXn6n-wmZn9lkj4g_ywvrY?NfxlyN-&j%6r+K@q)m&jT{gGmmd)<EcLTNm z!x=mJ!SQA4_{~v4WyT-iZ*m;Z%_j0vMv6n3VRQHFx#vFT<vHj6`S<UC0GNQUp^Ks7 z1xu!oLWY)W-f^r&FEsf*ZZ|{Wxg-pE!}5LME}1o9Io^^qrx#@ySaw+KXcauSCY1V2 zOCvR|A;vJI40GENzT~D{C95mk4W(J(4!4!|bj|WZ9xxmV>q4f+2uu0E!Q{yNlyF6u zXQ&Q80sHAHL#*J{cmfQE4LpTII=azgK*JG+?qQ{Hv@Bdc-)t=M;JUTwaE4^rvn{7; z1wy^Ig)tQfh8qVDGc`_uII=2gOFWDcz-tU6Q9%AHNkx^kT)L{G56@|Mmf`Aw=g2@m zo@Yo9wqg)?0fitroG#zBRxFds&@szYow>spz)KolBtN!)G4L`@P!goLPl2U?mo&V> zP~11piXC_kF~H#^s`{vy<47@FBU9NnN3sz|vj1|VO^<Aw9@)L<k>%v0)NvZa8ip7q z9~)<bOKB}}Y0kA52GSUb0#^wG;wZ!E;V5p7MU0JvxppYGisBe$xOJdz*>!F&NBPrn z5?Mt6liI*8fOdgc)iBO*`LScsX-29(q^Uw0NK>V)h2Toyt%w>Abc~@#p*d^dHJoG6 zW!+niGRq*^&^Bvq|HO;Vw>>u`p7`x!BP1OV#GVAsV^YH#`)Rig>M4#Xsr|a4uuakM z9rMwaTOzT69Htoh{eahmO&z;<kCswWkBxc`11l*4=M7xITMRwKG(tz+Ts1C+V;#0_ zFOiE3U6YwOW{6yq89kxn65iG@%h20m;1+EICA`C+1>AQmn@rAZO?#nk1r`2Dle;$0 zZAtz%`L0!3CJ5=#IOYjLdQ?xuaYae8aa<#+r?a|->kQNTE}IIKK@@=w&8bV@JWxJR zF|-35$1R52Pr!Ip$fo6p`<5D~Ix5Jj$NQ?*KVUe%H3gkkKyETh&rqw<_ip?&JtJ;W z&UZFs8h5R49XieKpFO*ETpCpRX6)3Y+*xd-(YvY9Ilk~ej^9xQWVmnpT>jMW%;wY% z_op6(m8bnZmC&-6=PbWH()Ehh3~YW$sG)yq&)J|{rRze`wH;4VL!aYe-K!aJ)m@^` z4mh#9;5B^u81jqFFr+&ggHdu_9uyo)N-lANE+XA@!(+X@>NY~FF8bFHCwYQa=jmNZ z^pP{a&|@9Ok1d^}O4j<qXy0e(rFVn&DCyHk(l5g^I2Ku91Bj6pAV+?NzJ}v-qrc$= zh6hM(;N(Jb@K>Blo}tG&GV__y4U8?UV`2@jK18AWC%hi*dUHOLoK6<jP^87X$+>88 zIeAqrHc(ke-cWXKw(KlS#`<HKHN2<b#-QL%5J2E_a_s>@`~rjcl4M`u9KJ>#-(VKs z;tIaQ0v^J__XzMq%dLDXEVAtuIe`!H5jhseGCsy_3c?`Sx3EZo%;PL<)M(|<E{;2N u_7a_{LKErNNnem8fv&$Wp<&<xDc>bQ7nyVDH%7g;0gqNXZBh}XzkdL5?vJMc literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..1607144cfa55e081b9bb24a1780e4860c16dd0a4 GIT binary patch literal 2227 zcmcImYjfK~6g``mDpr-$m=a!n61Q>O)C%EM>JUgBw*>5@#o(bI6?w5m6v?Ai65yZk z3-}5{NT3<`#ut7Q!*EuTp-lsAW`aG|<L=$NXV1Oou7CgY!LI=3@v(ssfp!@6Y)^SA zb^`lz-&qf1TYf3st=J0#8e_TX3<h4%v%8+-hdpI4t*bb4+_*9Hs)s?>)9%ZOM`_+b zPGDLGmagv&l(f|jqi)L}R(4zZ($(HeU1t!>NZ?f5_f%<)SehperpE9KUf{)x0-f^z z5Pzm4kgJDXnTNn>3(w$`iBXJOFfbu7TGkF{nqDARw>H;h^og_XOMzlDbRECrM4o=n zj5$q&z^5k<voud4CU(4TPsV8iWLKb)67pY3YUrfZW;!M&@uGnj1n!-9jx4-{mj&{~ z)`+4oA_c|rO!Et8+p$@OzTISX)=uLbE*Ln^eLOm1;UX?E3CjDL#FFq81Fs4+j*YYJ zMxjpy_;Q6+pBD2NN~uPwnMSIqMyh{nB$G!qlSlPQ@~FyWk0!37Y+zd8=2HXRlu9{0 zsq9wvU||N8l(}{sQKSM_%PDcbL&>JbTE^wWrZLP4e8!beZeMO+x*KT%O<YD*E5K$S zI0DcS5IY856Igp{E{5Gm7l^V`PHmmH1i{@X-1fRMGBJm7jphvtZ{jThQ}x50G_?X= z2JN3BJHGPL_1!RtDU?CBtV)m!L1gl|Vc{L!5+>;7GJ$IwiMaAqR?Wf!-es#&?Y{JV zfr|-{hlQDHm+ezK)J(jGB?IpZoY#!~tD}WmdP$?}sX?eH55eE`W5Ex%=2Z2>lkzH1 zIIKqYx@2rf<(=a*ca+@Nr6wQkj9(3g-LZ5C!@}cLw8;76?bvZQTFxMAs%AUfid=cy z({1<46V<7E3mbMLaQ#qGQ7sww!>)z9n#V~uk~|UX;U?MiVtH#Tj(JK7SSvvwqq^@X zB^565C>Z4#D+&dD9`I>|KLca5=lOJl@7iKkuKmc%KCJH(pEKH)j0n#A4h6njoTIJJ zqR6|zb2ytt`3*UKf#u3B%so8cn*ABC2z-Om0WRM!PW^-{#cRCm<NE6L*#peo-^ctO zUjG(n(;08;+b(YIVNtK2gI@mvaRNUO>n_*a!xT6R4_LYfsN<IeQzczD!$breSthD6 zR&fKjxq~Ujx`PkM!V075J)~nFa_l2o@)-F8{GV{HK$j*BBWPij_Z-!*hI@Q6IZ1Dw GpT7Y0bfirH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8d9855654fabb5a9446c2b2f9e222896483f31fa GIT binary patch literal 1172 zcmcIj-)j>=5dJoaJ#(IIjT(Q}R!z;1f+zMxhzK=C5Mn{1dEeZP>B{9c+-_R`EumKM z!52Z)KT4dvMAQoU5)bZXcXsC6@8+BN`tAJ(0C%zFp&-!L*(g*-87tH9Wg>^#hV+`E zsZ}~<r=_u+OjJ4wV<i(kGU3k9*i1&Y`y;BO(^$FiM|nhT+e1m9?tm#u)WlF|4j6Tx zQftCKB^0^nomfsRWdcifPnp^s=F(d@nKr}USE;fO1O|=&fZrSllsY=5G6YTqIDsV} zMVt=cVOgNqZ~-elmD28XJf!To93~`C>FG!&1DPqepF2yg5CSh2PqVhog;+jN@rdk9 z0Ez`#vx59hq^=XK-5mI+;-ZHO0?!t%QGiRXRFz4lBQmBV(}<G%;xgZQCBRjzv5cm_ zM@b^Eo|orW(zE~K)^Y)DAM3d8VMAc;cnkg(7~qDx){B*yXv3Nae(QgLA8*@PMFjl5 zo@Nm}R!+{%e+|X$S8`u+BXrX!(T2zADcL<82WUDD)hHvLw2mG#6J_b))LNcCf#6A+ zQr1bNF=Vj8Emq{&6|1YR&v;ef*TYHnmw9!M_s-+Dw%+pR9fCJ`%!>2nCxY`nVwLv+ z=Q!^fRM-lf#ko1kE?b9EX&u5p!g*&7arp?>exfbsJU;Q=pBdpxj#!;#%@H{tH&J7( YA~qSVfLo}uEwQ8xw0Pz7nd89EcUB!w5&!@I literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/AbstractExecutionConditionDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..6c14322d9b70fc64a831e7e92b4821d82ead47a1 GIT binary patch literal 5508 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 Uu)UP)9%Czi-t!w?uHK*j0R=`ovH$=8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0fafbb7e5d8c11a561cd60b02d4c9c88dfae052d GIT binary patch literal 1670 zcmcIl?M@Rx6g@*L3v~rVtsj7*RB4N{6x5j1m?+l7r1%jC@$axZmNC=WW@idMhl%<I z{x?x1{_p{ODC3>oDvAjPQ=3e8=g!=7Z|*(k?$>XhzW`XoO%DSMPvfK&NF$BqI(V-5 zMr;G|QiNSAV@*aY+Pu?|x)nr{tGH!?#*fqGSVz)bdmxn+$^G=aRP&H$n02rsRI+14 zV73W!OK59?RiQ-aeC|fPLrx5Xc2k<t0%g+db1HQLzb&=2cNo^neMhgXGvt@!NDPDF zsE;EUEFgztK0J&t<jU^CXj5wOsN3EU$r|5Kf?>QFhg_}mM7n*?n0G~BSnYR`r5Y7s zWLripVYAYUh@qMl<Dm95T)XO(^#Y1G<KZ;J<34xC$61_X7~)|lj49O^-u;Ij9loGp z+-}D@c#?>W)+=1|mPnT4b|*H{ih2Q)IPYQVU$pZ#a32>iO>CleHI!&O$q-}8mF5e+ z#RJl$3YsKU%Atr$K4wtbtKcF-)c*?ZkDO8BijP^8_hK(GB>j(FNxSzeO*1Cb7}*p` zQ5CAV>S2yyYX7+T?V^usPLW<D4fT*T$Y{;}0lt4kWg1{8tj66WbaWuMnS;mQylWK6 zzM(@!bkVI9VK?K*$90!MF-!za)Sq0s*R__WEQ9}0YvP#V#t4IH8YnrM(QItYO%-|@ zpygqR?8EeSi}ub^sLp+)zfbVrr*}r3Ej?l6_X=aQ_sPduk7Jyk3@321hw`k4GFkmV zAhdRIY6la$xR`A&@1U}WJCbJfnsDA=0&i37Vj63*hYixjJOV<`VS!=|phjOAAWvLf N!i_WwDm^{v_Z<pL0e%1g literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5347b2491045e3b874d3635d483fe60a391838a0 GIT binary patch literal 1339 zcmb_cTWb?R6#gcO-F98m*l4`gTcf#DT!}A2M9>&Ph%J(m_sQ;<j7)aI&ZPCv2<kr& zyc8e&0sbiQ%qCK;(5EcSo|$v`&Y5$WpTEBU0MNo+4>^WcIvs`5NMm^tzE*swZ7AM~ zXlA8Oh-t-yPp2{&g|XyHk4)J8BkkxUmQL-tR92+VGI_P-p}<gcup&}&YD8!b2y<T~ z)`WebMC5Fq#C%Fd3@dglP4zxS(pz#UZ32HJ6KNka?A4c!-WV_xIyx3>U^pG%6jprX zaVCI=B169J6xMq(5j(TVP^5c&s071CPe)u0cq-j_!7R8WF!YxlWVJ;}C?3doB<wu( zB4%jLlW|gcx~^R9#=u7f7d>2H*j;jU0$jpnhE*O#!kB7{AzprsdT;nX52=?`*rOI- zT<B_mO<X(j{eU4|zVAj>%)gU7uLBLiSSZ!@aRawJ++^51J}mzz2H0}_<i*lVwV@7T zv}*r>A0M!J1sVLlo~4nX86~r=lZW@7OBXe5H;I%sH1scp9qTwi(?w8;QbF%QM^7jY zX~ol-we&_X1TT_Aq#ebL5r%F>%}*~3E0x?#&@M;I!z%IDX!nrLj^j7CztHa+f=`*w zy5nUMMt1K|qH{ntj(ZjxL>bCBw?Nrlpp=`R;j=@Wck~cfzT)~3TrmseJ-Pls03S2R jO6H=xfCNESahpK%xI->-sG&}@Kz-l9cIKQiPL#gigNThU literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ExecutionConditionFilterDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..56e83f55f40f5ee7fd154a557f65a98ac3ed4999 GIT binary patch literal 8681 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 Yf(!&@Nd{#<zc1lP2cP^WTZ8BS14C&5aR2}S literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2350a4e138fd69369bcb19085d181cf7b5ea75e9 GIT binary patch literal 1037 zcmb_bO>fgc5Ph43IyI&ZEfmUUiz2m6B}_RX6(On+5K=&hmfSb?kS^NnTHZ~|ui*lJ z00{)*zz^U@A!eO$;Xp63Wbf?ko42F)#=n05_zB=X?nI~wytd^iRZclCP5M^Lq4g=f zr)=VtHJtP`mPMh=D9x4BcI47$WT=$7_ZQT)CRYLdqyn_}A~XcH0xxA+6^>GO%A_Y` zyh{&BQx?z%xhy=D0t^0Fx%NG7r9bap_L=>mGRi*^c(Xl!`kjG5qib_oguwX(=dci? zjtdDQED6-N17NwY485F;hg2TPp(cTqzRjc_$Wn#<EZGP$2prA5%l012uym^O5&5b5 zlnZpGa{SMsUT|!GXAolzS0h{zcr|Z>60D;s(3Dw5t{MWt`fODioZXs0d}t?SMo(3c zwSC59-hC%eB>T}bnYNBc`UUx8n<v-^X02x>@w6XIXIbj59T$x9#HJ+A4bOa6OXtWj zoUP?wNVHnPagJ*IMrd+=k)sE^51F{L`;|Z6kbJH%%OO{t2(J5p7Vi_T3E7KS;Z<N2 zmu4)Fc?~Sh&KJbrars}4k9^~&ieqhxn{jXjuHiaY*KvdEYq*J9yf)ay+t}nN=Cg1s GKYsxDKqj#O literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..16e301c6e457f5593f847bcdae092a2f4d32b942 GIT binary patch literal 1585 zcmcIkTTc@~6#j-*7Rn;XMF9~JtF#4Ks5g=t6RcoJfT%6_JnRl-VY^#*rd)oJFB(JQ z1%2?*2Y-_>p4lx4g+xMvo9yh&*)!jKbI$qBuRq^^0LWw3Knug`Agoxfbfx0Hwc+vg zKv`l>*mdOwJ{gs$@><RHE0*JOFQ`cCh44klz4;@jV&FTj_I@5Yr1J)n4C5MC*q&RH z!jiiLx+8ogt&;GBt-a?QUQ;4uXjPl8OivS)rHkfLAoM4$@2aN^tC@?3&#o~fi-9BB z!O&si5?WJ8pwonb%M6K(cIaAieX&xnu8XkD*FC||vlQ6eTjQat*9~J*hk>Dd;Vjd6 z3d7}H*Qp2<M_)J$xi}pE%Fw*dSRuQX!c`0yxW@48+zFyG@}w14#;Ts17{n06nA{9@ zV>U&POSupR)i*)7Eo<Bsu{*;^CL2ZLh~$=|EISB=wOHP-i9!m)7%^~z;pMq`ol(Rl zZeo<7joY@6GCji({*Ur$x}6qDoF!?M#hxm3U<_#kw;6_xi>WyZChp)aLq8>Vq3(J6 zuj<@$H(cSY@G6yBABAv>?{LfGB;k?@Ny!wr3~~mt48zBPPZBUOfk_5K3Z?nbA(_)y zy22S9G=AzXCj}pu6GNwrT7Yn(EE0#Noz1tS%Iz#EZf`I1T0<wPQcw?VvEXVYrO(LY zl)gJjaNf7QK+@fph1v`p6OXh$2klT$gPV)n7x#)mwMJe_kPgj7pW0khn?hog^qrut z$-29>$Z6I>uYoqQx6^Ev*4mQFO?;-|E6jt)r%T(SKaBRhLpQBW+M}&k&_iE_Ui39k z-jb(2W$+OF%acFRoBM>+A+Aq;!!3p{7}uZ)XwV)cX?#!P2O{wi12~AlM`M5nI6>ha rrU*WXepr~M17>I+(f+L^Jx1PnTDRan9?&;Qih790G)vJQO_QF#yQtLT literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c18a0014b18f21c95c42f78e262dd3f7c56ed671 GIT binary patch literal 1309 zcmcIk+iuf95Iviub>kQs3WPgNiwjARFlt|rf_Mo5A*E13$@|7$lC7NG$h%4TAHD#I zn|R;@_$b7z6L>&eR4G`pc6WT{%<Rk=fBp9P3xHj;JQNt7>ueZFBaP)MdX@5lwvl)( z;;EHdk<p4VpG>40Mv3I99-8Q}P$J`L_Xnt>RU#ewVGaoQJd_x!M|{Skl#}DL!I6lq zhgF8Uizeb!PK=1mv5k&pG8EQCJxajwGOXH>G~r#!themc+QfceDrp}uylgC=zS(Ce zb#x-iU^o@P!<vsG)&rDLWhgcrV7(`mcsd;qM0UsrsbJXX>6oW|o=JCJ7)!1U42Mh4 zGTfswR7PASsp!sxvJBhvTKujrIilU{`?!e99xgE)EW0ZKuHY)e8joXPOt{PN=703& z<b{m&c&t?}&2B2jR4UWa<B2xXinfpIsC(FC*gtVW{ze>N%V~wGVdadbk6}g3yR@0# z;LlBB@L%X@7K=yHsVe-(oZfK*N^<O~IHfD8;l8jVodjsO__a6_6#eIYX~=0lNh`q< zMPu4YxiP|^PC_rzy8>3NI=$1Mr9f{PK3OZYyGLhd@msgwBWQiZ>9;xNjI-rm$eV3p zgU$i@IO|!Qqm|)2Y73SQt&XMAdWYZ>E_}eXUuakepY7x{wK;S_Lr&Pn4I(HaB#Hud TaFf;&Df$+gv~#Jt!1R0vb_Iq| literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog$4.class new file mode 100644 index 0000000000000000000000000000000000000000..9a74adb3171eafc332361eb2f2e50824705d3717 GIT binary patch literal 2962 zcmb_eZExFD6n;*VB~36Slx=0epls>L%ZR(t@zR!#l4Vn;beq;uX-FVB&RyzZUstx< z@mu&6fW(GCLVV`G@D~v0+P7)fRM<gj<@oygoaekf=Uo5w&u@PKxQ;tT%n%;>!O(O< zCyXp<K5?zSADQBNVedzdFL^T(p0&5<$e}rKEY}}~<{cqLV7c8xp^h&Hj*`9=3)Gg2 z$P=nhtpm$+EmpkWe=6*#hyvlk#MW%z^L%Oc*ukzVJRzg*0slM*`~zno0zx6$b;8;b zN79=ZJSCJ>MqhKJ6Ri`zs!t!ju|vpr{DCNe@T!3#X3NN-VxWX7Ay-!dm7XKTy?w7Q zf=5>06@<B-Z(Ht;6*%fyZ{}4R2#==jWo?<$a8YoHH)SLOX}Mb>+Vuw=%XPzKN%&!c z?06ioYlh4#89BB&&ZE^v_8`*1ig@$?@GgZKvv`Z}EfcP-d#9cBPJ7flx^3FJZQ3b- zZD%aIWxRuTi?~Qw$;@m|grPMQp}D0O2HwL0p)?fHb`)?Q6Ry;IN6ndRa>~cH%9zI` zMa9d6-BVP)&R(UAqhqzPql_*ZxPlJ|vzBdh6t!i--xKgFtFi3vr;}`Rs+8pxAJJ$u zT?xHudQ7-5&bTlc;RM5%8-sx!xP*K4sm534ao09*4(EC7`LfHiWn`)-k}1!F&zBE{ z=O2jCyZaNcAiZX4xW3d1$vO2>E9k8vZV>KfZ^E<*rxNgq0aGR5Ea _q0JJuwtNv ztAumMd+*RkZWO}j2Cm^cp}g(y2e!EFsMDdAHfWSF9thjcP+HM`z$!nFJCL1fhwYYf zP_Jc2OfTI!A4!$2v|T^siIyBf25zBCxMT-{KUz*Xt2(~7$MO*eyr}ssY}eTfg&97J z%xBJkXJlxO#Mp+hDfwHc<62=TLM(8~b9|ivRjcZ-=Fcc~m7t383a>uJ4F3b=X6qLi z%@=s>Cw`j2>uN84!`k!>=J?rQ9ku%g&c-s_4I1S!TgdU={O_25Ja^$&yq%*Lcz^3^ ztI7|xA7k+mBw46XKZaaL)HEamppFKER@luZUo*UBN@+7o@iS0pGWv%{s0DrxdUDLk zf<`38SgpOn+A7pSvvrF0cd_>QL}KJm0ZXwzq-d*gZp6{B!J|wi4#;B=G=iW6qPoGZ ze54^7+LcnX^(U5}<Kq*tu$W3Xd&_DqE>cpgMZT*NoM}GCXaA*g4Xaw^q@}eJPP3S{ eggn+`n>X=AeBZ#Ae9v=DI=Ia%MHywC|NaFyJ7`M) literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/GeneralExecutionConditionDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..77ec28ee85051ea9c258e5476a61d79d2c84d9ec GIT binary patch literal 16358 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 Z)@vK^tc3esg(v>w2K)J({e0be{y(!9JmdfX literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b3860a79d508e1930a9363ed8d822131ba445b67 GIT binary patch literal 2454 zcmcIm-&0dZ6#f<>(YPvFp;b!@7$pSi6|`y#{Q)UxG(l{XK9%X_-fgn&<=#7YH-i2} zo#{x2wx)~^&iLYke^jSub5n>gI>SuJ4B6e2vuD3^&Uen?&A%^R0+`0bG<q2Bg>lVM zT4^H!=VxD3L*vK|={AfC0}>j!CZb3MHOEuJ4{O>fg*D|0e_<nvrPic1-%!3M<Lp!# zDTXm?P`bW~v~=`3S$ix4qn(QMrE87Oc_K10X6Q3@rL$KFL#b;ZX2|TU3Y7VpVJX)| zyW=YisY2+<V_-PWaRhxC^x_0Z8YdZgb5`M0Nd<DLu~wDwLs9i5!<kY@v04$avgfui zWgTZIcMo26iX1<=uDqHwNuZ_2kWT{ezGN)e<jjn(WH5-2()f^}*tJ}6oWpsBqr!EG zC^pg0x|)%LhmZJcsVjG=TTQ6DpVPM=6=yQ|7@wpu#ISncm>lROj!!Xc1Lb*zI@J<G zH8+0v-VI`u<07)VDVk!~>}HA%+lPd=mpR6e+x23aA?l_VNh&(4C@D1U6vDMA)XGTW zN*<GGOfZb>?SK1}IX<&3BNYkvS6g=u$5l}1|1Xql4C{xB-)(3Ut~nJq4t-yGoo)=` z8prj{y1j1e;0DJ{+@gL)4Q99V|DZfmZ#BQ7Rr-=+X1~%MRWtPrzQQ+YP*=|FjnBKl zaD0n7>a{KfxnX2QJ*9q{%@vFL^HGaMR9CKcmP1AD%sy7&_znvU87)m&1<CD;Nmx5m zx#y~7R35iE?${Ld`Qk~~Fbs^I9&53=^X}fsmNZj}hiGgt{B+ptXE;$Y#G$f?+Jhxi z2^+C17nL17L+={YSAG$X1r4i(!1al}L9HxJJ@h!fw?3b9V@Xqg&Qo?+3x9_kG_iOw z2xMIFh1ODIm?mK_{VT!x`|UWST@U@Gag^l8Xm^XwR+7n2Jg2XJz_(gDr>v~?3!{6# zp`Xs2?pWz*oS~KB1DtJJd4*K#mDT*;$ZTWaHO{wpO<X8XzQ%EToZQApBEHnbc(S|l z)-v71=ZS!JUo<h>#Qe^UMT@K#7TGA_2Yx3k&oF>Znqhxn1Y4NEpQzw3{D|i*#KQ@y tHez5EMcgIK1LVs+l*qqw%O)Ek#U<MI;69dVO;O1|AXC;|Viv9R`44|B0AT<C literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder$2.class new file mode 100644 index 0000000000000000000000000000000000000000..421f311d67a52b4de75e5539ecf8e52010e7e25c GIT binary patch literal 2452 zcmcImZEq7t5Pmjs<8Uk?O`Grz3Al~(QVt9hN+4}W1GuqMTGRAXqpt6^_QK`vbh{>j z|I|vAz#xP`v?y))QK+*%D{&K1DUxH!zS+6i-Far7nep3q&tC#4;BFQ@42w}xbCp)w zh|v8d5Y@=Ia$R~2qoR<MMy`rDR$<Ncl?bAmc1uxBc_LU?j}xgiS>0%;z?Vs`kVS@J z+#V>sK*d_RdW}wdAVZ_wiVUP@51sQxY-GaFXX;Al&XEtLt~oJ7$6iyRGP4Xz`7WM2 zvCNQ}k9@fg4Es4gK%awN9N@@efT1^U4Gxx6D3=<mRhirs)j%=~l_HAOvPhI&x0M+S zoT1!3_i_aSKCq_znlx#krOz;#2H^jav0#%kGqLPo1c$RY#8B*7E;x?hC_}&SJR*us z^simb$nL{O{I%4To7AnQ)ZNMHTR#+M9302VEKV@2>^dg9x{2cyMv1sSm53qIRPz&i zk8K2}InE%rm7wzszjZS~dyOGw?WY{$$Zw%2FvQ(Nk*1=vhSD<A?tHWwM_L(4Oqs-V z7E=sk+q>TmV~)>k!^p(KyKnco9OtZ}FAxu-hOvcM;JAQ`TaYd=tnDo%uc1w}>Q=lY z3IgeOA{)Wy9G5!_`Jye1FF3A(n$8e)oUKvtqw-C?)eVc*=sL&jPNUnZX6g>U!i_BE z81mag_C9Ag=J7Q(UytJ6FtVZ^QLW_i#p2Es)e;fcm8ac1k)r-)FT2Tc3%3~@ElpX4 z>FzUWSUa=3ZL4kTjP4n4vANT5`&>&~DS;P_b%vk!n*9t1Duy^z7IAy5IF+c8c=D#Q zgXhHi#`M{H;(?%1wGes%u{W%hrKv|g$M=?nN4!MR%%Ag>9n~V(WCG1AUJOH-%m+ei zsWD1(u$TTwu)#q)3`y#tZx;Qe-$&9FT3d}XIrW5oo`V10vN>pVtv8JJy}%%?Iqk99 z4>3efhL7-Z`;^znv~F3Md<^FqhBt7uEj4khJiUSab~*hFW2yR+CMGtev#E6cKaWdI zTuBuqU2EdYCKjw`y|A90CjWs~<jWrz#-B97-e3$Hn8IJUgun3<{%LtUntIjt7+66O o-;mG4gk=#W!dGsc$;QZViNqd!i#znpP<?-g3P}!`TiEpZ7w(q;ZvX%Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/LogicalExpressionBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..502eba430b79ed9c2bb8452e1de7ee10f2f61452 GIT binary patch literal 15679 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 Dx)i|| literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..47e85c16bf2f60158b5586033739608bbd86899a GIT binary patch literal 1584 zcmcIkT~8B16g|@x7RnZ|0)Br|rKRGgKAB)lOohax5>26M;>)mmDTB*y-I*4CmOdDw zCjJ0_l=04PNyG<8iEfk5+&g#9oO|w_`T6VH4*-v_;vgr`j+3sZw9-aK-cBgDW8={w z`F*3}h@FP^Wv{2At`{g7#$D~bB(oa_YsWFoI0}>vex9yZ8kL5Fg20=Rf%(W#dpjyL zlz1IQ2kYtdRT2+WK*_T}_IO2L-0Uh{X)yQJ$Y-2IewE>$s7RTo0-frAz^`=#3e7m6 zNeE227{hoGd6Zl@m=?%aZNN-RMYPf1-=<_!ZiggLZpFR~J2Fw$9y$wF2!XACPqWfs zAxc>(n!7UUQXug59D1Cn=~ge0#`4b!OMxx&YOUj7LE!z!wal;wj6q38^|(2kq14)f zQ<5E3#5_t<xPogAuAZmq&(6ceb=(ke`!>m8h643WGx9^#)8y^#NT0lnvQB&am?6u+ zil>{cLYDlwDtk6juIyBo%qAV04Y|*~HCL^*_T)f%As5<fn}l!s>I4=AxJ8TYxS#ko zAC6o+{rWt#DBQhkksrpIQL=CcRe{$dm-qCuDh(IQs0&OVsDRUHQ%JtCZMu9?a(%!L z+JGXXy)1^Gsx@n;in}kOh?2BlNaHpqoae_;%+A`2$uny?m|*`T&mJSkKcKi=|H6Mq za6hw^!;JN%D*|KU17_KFd5`s8K$%B@i<ldttTU=bnXZ4w{JSGu`ijdr{DmYwq9l?O zX(5XqBJn=l#4W}W%=gX^b0xKzZ~5*ghR!IBvlC+Q2c7&7B#%lObr1J>EMN&WJm6WG McP{a0KTDs#-=+Z8-~a#s literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..61dee7f56239251e5c29154c07b9c70b8f9af125 GIT binary patch literal 2869 zcmcImQF9Yj6#h;VSQ?g6s$fxsR$|+vg>AKHHHemwVlW9Xsc{@%yxqODx83Y!cDJpL zj^jA~27iJ+>%b6o<Pm0g@eetU=VrIoHV7?~b|&3>&z}A6cfWhiJ?HV?zdZo(25uVY zBi#0bWlM!BjD%<1amA7!S@H{MuSd%F*ci#CXtk8LY&lA}{&HwlWwhcur7fSL?>S04 zU+cWj&KO7&#x<<8UDXPu6>c)-hV-J)s!Lbe+I!v+tw;uh!_kTgv(wC^(qk$G2EVL4 z6<r}LPV^i-*C3>ez9aiVIBMb$4rh?UF%t#`2&oC}aJ-^CSzB)|$zV||xsotc@onKY zM4<FMF{ZT$gnF+@W@lK0flcKs%P5v!I)r>I#?y|cq>rnRYh-W=!v<a=-0bn`m^h7> z2}gu&%P`EoN%-*q&girKE6S1YhSnYBa(G$|B{vs3!&`yBp&S_$44fg{+P50dfYm~u zHE|9j+nUT0e(Jp@2OvqVVc<0m-+hbnth*#TlffvmI;CDGG<q%u=ZB8*apVk45Ek~l zf%r7LFTsy>@R-PBk}%9kcSCH5D&G+<Lx182Yhg>+d<mSN$aMm9D+O1b$g=%FTIGK~ zC}>(2Ok9LTIPstSjWr|uurrHyLX=$D)ERsbhy6dyV_t=R4&)h=>kDV}u&|?b;daYJ zsO&v4n_53B<U-^{%C@@Ec+E?A+rV3d>w7-IU8wa0et{|b!IviH@D8D0mTUFJ`C73= zC_gvjUD$=AOt)a-GTvi}>_Bpn?cNljmITS3s`IYxbmMV6ox=MjKEV9;4ReX`pyx?d zczS?5w~SBNlP<Bu`82*`$tU$2aX}+wJh@rkN};nmKHJWqB$Nrq>XES5s-o4Y(*`~y zoY4{1owr+%nYzCo*ph38PV?B>O+4<EF0S(Jz&%3Avt2*r9xHY?QPmB^={PcCTTL`& z(QmfcEn;A^?0GUMx*`l^h!Ji;Qry$g;Gph8c+|%~14r22&!ah>YfC0Sd5{0yhxv2I z=eV|Y-VhFvjX|E9{EfDrzz{zPFW|)l<xj@etBCwvWZF3S2<P-D{RduY<JH8N`W>U6 z@(SncZHy(hHm0gm4>75ycQO44LwfWJW`D)IgnO9Q)2ZZb8&@>B6g0UpO`lefp;eru zHH^_$n5C~VN8jKoeT&=l9X_Y;JH$s~atU#!iK{3w^;ulNHI#Up3yjDe+Sp&n8@N8e c{$;lG;RZh9XPVQaf*Oy8*rr9$f1~l^AJ2KAg#Z8m literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a098916ffc3ee72eeed0c3439ba32dcbf5b2af91 GIT binary patch literal 1554 zcmcIkZBNrs6n+jH6uR;%;JX_z-3v%@Dw52YkTD|3keCs^`01{_j$+p?Z5jL=|AL9) zYY3nHO~!ccipEGXV=|kxz4zR6pL5T1&U3$h|8xqVgf$HVgy(+HG@Z~1BjK4ZUD5C( zQyxp}Fmim4jgf4LcH8lqrtJvVZ-(Z!jP`xI`qQW4d$yyTH@fTDl7=K9r(mV!I_*%J z;SpnYq!)!|UAodz-s`q#M=~G`Mf*;eUE!0|`h1i!gFkjWCwfBI&G#L>ut!K%d|Qry zkTNicAsq>f8qhFCNaU5nc+K(Tv%^+H2D_r+O2Smlw}iVV0!PiyjY&lUq2BL9W=l-M z*pXv5WfW5{Z9*|7qgQ#Vs$Av5o{m{u(Quit)930KxQc6pVPRP^4700*&VQ&;m(br6 zjkyR-CVta*Z5fnx+`ugjHwklpHthvx18HOk#xFX#lL^^;;YF`NTPz|DGmor>1wy(< z80Bi<HtrBK4zeL4L72`LY6qetOjocDcNzyQp|XZN;psmY#qwJ%-!s=)gdG;QU3F!P zOPxXvMFWefbGan(B7wMJa~D$kQ_FF)@Wx0qR07<|^M5CVFj|j<^=ezRyDHFN67;%% z7+7-CQBqmxebp>0PFP}9&vN~cuc+AFz^ck()(RviSn*qJUQ`1w;zYT4Tb?I_iYvlU zhRCpZ6MP@i#Dr2Xj|TYFFwFK59<A|QS@h!KJN~?f@uurDu58^E!XTYsg69VBQPxRJ z@t<%B)8{D1?5Uz;if^HRz|0A*Z!euDUt@A9Q98lg8FC*{ASmnv6!sL74DlH$`hrP1 zMVijKF)}gEc??Fx67F)86lSmtljE%LZa)1tq&3`Q?-I`ka32r&pJX{d#3LT*yhoju FpCA45$rJzp literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$InternalMethodCallsProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog$InternalMethodCallsProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..66cc74fb432f1c0812b6da29b8ef34babf221cde GIT binary patch literal 6292 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/MethodExecutionConditionDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..e0455c390516e26fb7741bc0c16365b53ef7e723 GIT binary patch literal 19848 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 I)m^0iA9W45SpWb4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9544189213863beea37dc19d2d48ddc7024254ea GIT binary patch literal 2659 zcmb_e{Zku77=9LF53WaxQSpl+l~_nhbAVs9AX?JUQWHu|jiSyt%iWr6d%4TpUO@d% zobh*mbo?mLGWrMjTmPSq<GXhkX(@DylVtAe-Q9PeefE9ccmMw9{$Bv*@U?+HhDs1N zY^kJ*xNm>!@r@v|#dpH#L^ANn7>O2dx24~(UCF(mq3kst@|K81xGaU|s<kj^i!hQx z<z@|J7$&tx;drvGgsry7-KOv(W!Ho!9PRb8%iA=Z;Y8GwDmOzQdWd44{4PjeMvDwL zrh4f(UuVda0#^)z;iQG<aKc1ChAbF3#n3;cJDjdaU#xao8zQ{LH$1_RtppDD>O7SC zJ2htX(iv8Jh%YxwOFy+G-G+z~u7%4`NGN#Pew6k8%;)PSM(~P(ml>}2E+{O#iq{wh z2~;@@gOC=Toyu2k^G$A3jCpp2LT~;gMlojK3@zaC77K4+oM>0_2cnWFUNP_{L;2VM zYfcz=6yBa#p^&~3$MOJji2#bJ0E&qKivI~9js0R8`^6(;zbN9xnK*|j1CtDwo*7|F zD8(B>+12#LLLP;LvRV|9^cc=fC5(BTgqRrTQxYFF4Pct#Ce7S~1vyRO+)1{~#90(| zl-s24Ly#PTt!`kJ^!Lmpbd!q?31uf_+IpvA1e9Yor7J=cGZ@ln-m&m5-eWLTGuTQt zlR>7?_QUG<>PqH!0zV>6w9{!-jHC-9Rmw#RAK((h0CybPIGx6R>TS9?KKk2k<OHpD zpkzex6zAt9(d3&l2uWfKSTykA|4I2z@oV8Dt?x6W@1!1-H@Vm0I?tB^-<5G0(V6A4 zg(Z~s`J(Xnrl))z%qdAiD_dB`)%|Jb7+O7@HXm=(qxm&S!Bp^?!t>@$tl$#^*NG#o zh9f&#sOTzUxKhyuQnF)oO+MlLU@=XSH`TmEGYrEAd7xSqw{>N5_4sjhSn{M|GxB(4 z`@Y?+Zn*;(7M{!yi!^?y7IEiJmABKPXx4&G=!j*h%jVe8xmK45s<dU_@hH^&MpZ=3 zz_swDCUC?F1)W+-T^%fSqKHm14AzS8i?HNzrG&yb)$o2g2eIK{UC8OJk1hiPWFMrr zi}bB6X5su@y6wRFHSTj-+u{~R<9@*~eOoj}Tc1ako(wPG#nj6KWatm975;#^jhCv^ z_wYKykI3!e?0R-$7jI?H(`^SARxeENVP<^?bK7|PXN>C+`r5_&_dsOr;^XA=$~LZP zEE#AlV}u#_jd1@?^WVh;w&`qlA7$*}2L6ok6%q_7K0<>kRtez%u2G*gTFnIcx`|JT vks5i^>q**fQQK!^8ARVh%o!LRr7m?c^x<=SLC*{+dmUfVn@NK-4fOjL?65%r literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4e5d9a4a2479e96685170b9997dadff52573e7df GIT binary patch literal 1168 zcmb_bOK%e~5dNHmZo6IDP#`>8UV)@RVo^>=K}Zm_5-5~PMY%h>Lt^BtS8J!`Zz1s# z2M$PZ;71|GNe&PMr>x|)XFT(H9^d@<`S}ZgHktuS0zFd<V`Y_fGK*hnIWR7!H<V1A zG8ro!jb)yzY#66XYBRL)p)BN>92NVDbZQR^lT+ao*?K!bMWEpkDbXso6x$PqJEqLp z_=q$m9`$i5b9NV4aU*5x_c@3qM$uv1hbmL<k-&@QGJ$vd0+p^wX$=DF5l&$xL>Z?e z1lSNLH@(4TPi1s484sv<DF>Pawt6O!x-Sdm<+-xrQx`Z`Vtn;Br@nEb(jmE7ttk~~ z%}VgUe(d@Fbawk8YPcBSg21!oks`t+TozcBNkWz>A~0TVQ>GRCJ-t~4m~SJ}x)b6m zb^>e*Y%lWi55ox8d=rCI+1yxeo8Z;>3w)8wv)T!SM`ltaw6A=}cm6pd_g>3m$t2m! z5^XF`)pK$qlSa7XAFm|^@xXP>m_tyGo=lwMAry$7W*HS-Ev+Ss>rB5gkFcm#JqP(z z;uT<(^=o{3z_Qnbt-J5}_Yu+Csm-R>O>YGIeMOb!h<&{F47PX|IE!<0lrHZcWxe$d x;U}E`fGdkI-`Mf{6s9&aox`vb2YG`5%DBl8CEP-t_X-p2HX3{i`OZJg-!E_xQu6=+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ParameterFieldsProperties.class new file mode 100644 index 0000000000000000000000000000000000000000..2bdb1531cab55918600d509ca9fa2d741d7b8428 GIT binary patch literal 8189 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 KH~*;K;QjwaN-cN* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2f255edbfa171c385d82780cbe65c26e09d5ff5f GIT binary patch literal 1058 zcmb_bTW=CU6#fRVE8Dfjs%X_(FDMif*ZO3FF;PT=L0>SuZ+DL{X4u*646T351g-JG zAK;HNo>_QMG(NG(?980YcW&SO`1$QSfJbO~C<(mM`8bqD8XKkIdlemN8`4LLXIAQz zg_fpKmdSJ+CNffbY{FrjYsH3&`mB6WNE?S9DgsRhMzNBaq0pQ#(lMo$T}V;v0G}mM zW+@lguoGz-4>|r|EeUiO@`+5PeJb#}wI<AikwB%Z6RJXBGr$>a_$cFC01sON<(4zp z9>|p5&Zb9{zjI9y*cs?JQlluB?!FXOT)_hU^`zD~<bt<OWHKhZXf7oJ?M31L8$izu zq;oK;qK+#bE(`S5(*FRvxXLpy!wD%RuwT^qdnSuynG4RK<KsGRc-RxzTjk6jh5`0n ztGz^;OdD>l;MM#Ke3fU5G6nphp5-yUlx{A&|6=Zg57BYNQ|zU&(uR5dhU`Qq0q(iD z^*ASf0$n}j=+e^jnYH{Z1cH8=Qr=aOF=TL)`BCOaC2BQC5<Zo9c{t1RDxV(n-AVlR z{m=Y6MewPx*><u*BiL__8s7u<ankeH;a%VYE-q2JygQW5_8k5km%iZID$FT6el1|? j3)3YGJ8_b?7@&;X3{k=zG<dHt4ep}JC!cjLFn_-Q{J<st literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ScrollableItemDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..47e745d856ce0b7309b2efddbc9970aeb5eedafb GIT binary patch literal 7738 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ddab84da6136bb40b15abd0358af786666d3d072 GIT binary patch literal 1034 zcmb_bU279T6g`u~uGy|_tTukus*NU%;98%Ah)`n+LX<)z?~~ozWMs3m>`WSelb|3} z1t0tY{wVQIk_V08OI(<pJ9q9q_v_4$pWnU%c#MXJf<Rm6!%!JztW3j`L=LnK=^aHA zt8~grOJkX3DjkNgl8GLgus71v<6N`+Vy3Abcqj?f9S}u{$_#~O$|$FlS~jPIA_sOD z%gj<Pux3Zf)E;r{?#jVi4EI!}%03e~YWxSh{k}k{tz#-fU_HP&tobP7LI4jN0>y?i z*zBs5UQfmY%HPOALIPV|9m%9GbLGwpWyuvP&{;jL+5s23F;(%9?7X2A3pD2i|EuX8 zH-y%Hzl<ubdblERxN^?}T*GzlyXlQ6Nd$Ih_5Gg3JW)p#HfZ^{iCZ3a1a_7=@`qu7 zUDskSRwmPin<{wK{{mm;)x1Ojzo#d8L`TZaV|$sU58ujD$&>4(QKAj=`4!objsx6x zF{@EdO!c-Nb7W=d`NUeLzd-OZO(}0D(ik$h&73Im;}MmLBL+(aULMY~zRc1SK0A%y zeDIlnUlDwo*=#!9>_)KPdsO%wu#eMT#1`)YmvDK3(&pWvtT)f#pJDq8ZY;xmV8@R$ knCjeg0mDw5<Q)bm;x0oJu!kD&B_97h)LHWR&IRW07eSpI)Bpeg literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/ShowPrologDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..cd9b381d1e989200840d1d00c78457df2a1c73d8 GIT binary patch literal 6583 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 Sl%>|IR`&cRrs~-9-+ur&rz7M5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ActivatedElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ActivatedElement.class new file mode 100644 index 0000000000000000000000000000000000000000..bb1a77ee8afb139995bab1b4cd814f27368c942b GIT binary patch literal 194 zcmZ9GF$%&!5Jmq)O`?^JchJTKZ(yO=SqS#yW(*rPyCK;G&t~BPJe0TrE1Ti-|Kl<5 z&+`Rfhk1sCaPn=bOlP{lPTeivd{FWb-3Q}cEQ8eCG{%*xFl>F<DeddpJGIxr3~??F zR%&q}!<4YBcwl8Y;^$i>IuLUHfrQC=b0sV;zHhZ0jTOS`U$Y$zDIwDFOMs$vhICBG I;!Ti$0bo`(*Z=?k literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/AggregableElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/AggregableElement.class new file mode 100644 index 0000000000000000000000000000000000000000..d60d11f387441a6d38df4c521704150e96a2f4be GIT binary patch literal 296 zcmZXPv1-FW5JYDkM~amcZsKoHnjECGO&~=K215!9_bX|0oH^YY=@jy9De?jSsF1U9 zWfcoMk70K9`1kV*-~|sUMufF*wKARQ0z36-x%5HFw^V&F-bEOs;lsf=t!l&8>rPd^ zX}nW!TDPLPwDNAH5f@U73DZ4)v9cWfALU-EK*+eRFBZaMzPWZRo_2)E)@a9}Z-tQL zMRA7N*7t2CD`O*_4Gun^k_h>-m=8l=hbSQsZsP9%#j3YRqE4e4;V#bPyk!@1{||x8 BQd9r{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2c8460c7da37bb33076ec9ec0e9707add6fa3607 GIT binary patch literal 2177 zcmcgt>vGdZ6#h0bQ7qIX1WH><A%G#aa}ntUXw5YyfFTZnfEoDJjl9^~kyjc?4)B|q zzDS>-Ga+=^nLa=ts?&2M$3Pqke}ZOK+C4gF_dB<5|M~aNzX5!UM;3+zydY}1I@WO_ zjr-J>>p|kG=gR9QIxr+mR7ZxPHZ8ZQr606n*9$tGz_``)v$U;R4NOzBO<kGpVmC<w zb2m))C@fgW2~6`r%JX#?D>r^dr)(&b#O|8%mB)(LnlemOBruY+bzC@0*p~MkTt&d% zkbYr3MJzCt9{D!RXS&%^gfsJr^hYjgqm#=5zZO3Mz7OFkH3V|ipsDf@_{_mRjPPvS zfrU{U!#Lm|k4b^yBCC!sYok`WoplvGkn6q@m|PA#={IDgdEFD{I0XV~?;R{GP)NtJ zAZMkZngZo4v~TBOXSpnK`BX{`8%J=|!q)=Fc2?NCsdMlRjtS%`n~Oo$G|9g+#nM20 zTagUg+Kb)$RF=}Td{wb9wae~(#nnKYB#)CQSU4qcawm+wVt+>mr*TF=Jf~4(%c6r) zDtW=H83(hx8fh!tY9}_1W1h3<3hXP^YMIXq4)ySNnLn#CqF@M|-o>BoAW*-CL97#1 zvGD`WTR10hVkguAWd|4VBOQ_i*L58F@`b?SU~c*zrlF|(Pf#-j8x>r#a8W?+d51f= zj4J}8((_cD(#p$E(YJ#!*p4j|WF=2IE%2*oqlzU9*9DHgFB@#(;0EV^f2<O2SSC!i zyyc*V+eBg{ZxD^AEuAYq;a(Ti-O~g0y?Y-Ki9}TI0)+vCescTeOC38DlI|c`_I0y7 z6Rx$O8+q!6W~!P0=sRQn7r7yct(J`EQ_-4MT_x?H$xZN3AR4T|?cnxU`r~=4L)7WJ z{cCKEZ@hYT<1y$u|0b3ZaB9Y=sOrl&RxzfCV~6P)9h#V6$^|ASnQ&P`BM+PY@2A-% zTC?7GdFB<I^6V>&m0x4x_f+v9z3tS10)<mJL~Dl(Ngbc#FntBSz?Z$PexrkOB)eJO z#Ml<Ts{e)Kk7qY=g2ptB^3Sg^x03xlJGX`JdG7pypXN4kmBzI#EcPV1E!=zq;RxeL zk<gcjBFpriq5hnuf}2Yrm9t}ekO%<oV3|OT;tJ|mAqUv%E>_9YVces=hHxKi^v%&e N573|)$AcZC=Rd!Ji?jd$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$2.class new file mode 100644 index 0000000000000000000000000000000000000000..23ea9c80757b4034ab6b86af8e5827ee2c37b70b GIT binary patch literal 4034 zcmcgvYg5}s6g>+L0-+M>hNS5;4>uSGtcE_)#55^5gqYYsV&asf{UD^p5hF_;NrwEL z{)Eni2`SS|Klev<dRLM~KrXf2q0Hc2$-DP`?>YYSuixGRn8nW$1{ie5t*fSIdcJ0> zTb8!z_$q(N^_FisHof$DLu)ooyRI6hW;u0F)tyGevDIR*EVhpp9osO)oeH;G3oYMw z?A2x<BQq-@#V{!paosYT9#_3x(z3&C-&3pH;<`9EZ)i=Qy9`7A3)9PdNw$?w-M9k7 zg&obx?3jG_zG;#EHP_iO4eojj)#tq%KykA?bt@31))G=l--OVo)$1;=Ynv8dw0MI8 z!SJwmWl<{Tj|(F$LvyBW`ga&hW&4)fb&3n85U9SbPDW#@#*ivH1|I>#Sp{b>BzEsB zkT5KEA1D}sEMpK83Py3BVK6H$oh_R-UuiWqxw|fM#gHyLx@Ofh*A&mu%akZs2Hv;H zT?aZdOQ{{(HH|v=!^YtTLoQ75NzJt=nyoNZlkgcsrR%n8P|z&ZqZwfPrmn8LoL7Cf zrTZ<H8&T!TxP&VbE;DFd%k6iTD7cCY!?337-19Ow7+(D!<vrDXX2XcZW3ehGXeFGW zG+%f{1hg=UYsgBN>^&7H3sx|N9K$85jtci*I7WOt9?zc0A;Z&b&pyRfAl%_b$65$H zn^rJ`Ji}!&V~N|`)vSNC<I#Vxqq7CWAmn&Sm6(rEEgzy<p0}YY0<?Tog!yoa=DTjf zLrHN|V-S-GSihF=6~pbWo1sCatkt=vR-%o9Z}2U{h-h-(CG2ImmMw2<JDO@~gv8;? z!c_9rFur4GovQO*fY-@{O1RBncI|X~0)%);yn|cKHu45@CaIw;4z=M~#w|=p_@1HB zr%v6meHx1Yrj>FmjveZq6MBDO*y>X+!M|x}zT<jo(#N=vYVA`p?qWhl5sMP;F)Z|{ z^<Kc<o(OiL;69cZ&cA~pqLtc2gw;CKTC&uFk=TZu?JZ5`svuEBoYc~hOchQ#DHI=z zFp-JFQeWNNCU$sKM9Yl1Xeo}D7_==fj@qd)lFl9rqQ_mDAWh8`sXfx0kq;6|49i`o z?-=wZOJx)fQISw)D0MBg-F4x}QxjB4!3tIxWX))!JMq<b%OUbbkRwJgGI=DoomhQH zJP5LV%JgH$A)>q116w>6h0Y_NY_$1qGC~aHUV%FXxui5=UUJoGxjGj>&d>v3h<YYA zxoGQ_<Iy}1!CApGJZHEl;M6wO9LI{QIsECw@Js*fCXw6IXbDjVO35aSFIt-CagVql zk!SjSIXFHpcs4Me7A!khiDT0@1N1)%h0eW4y9Ihq(Rwa-eGg-~={=0+X7-TIy~ep; zgVPu2Qx0xX2r-Wj=~>*SJGh9CXl3{qpG5NBk}e_d*_q$*>BeC06~^}Q`5SyeKj$`5 z@#A%RtfbX_+(_S~j|1G=c#XmV=4iPyeSo{P&eQ2}wvUBB@L+}Z>6tfJ9>AehSA<_! zB2K!DEOp}y%6LHg6_l`w3N~mbtj&cMMb?sSSi>W-_bP7UF{<R-Dn(=+PbhMOsL_o9 VJjIW+rYN2p_=$EhofkgS-`|~&W~TrE literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ad0688837b2d9981e12b1f060e6cfad6549f8f4e GIT binary patch literal 2997 zcmc&$-EJF26#gbQ+0@x4CT$x23DhNyn`TQxf#Om~Tvuv|TaYVr(W+v+d+JPB&se)_ zyAQyN@CZl=EnFb3xZs%(;>_AjrI>=_DqzW;+1WYgJ3c?(Iluq;^Dh7{;f8}L0pCO| zPsJ)ur1l<$vS|{J9+BTol+k>cP+N97O1Hc~$<VZ7&o}M1(OxB8s!y+0j1H8Qsgdq( zb(6&CJDpTVVZ%XIV8sHFAF57FUfgGt9_b|Z>J*Z1FK!01lTaiuo$RQ%aFK1>K6c~E z0!uv^7J7>MH&n>@Uq+^<0*YdR`n{tYz<vv3?_sLSYm8`RyhV#ATdjy%vKdk}q&7Q3 z;ESV!4MVYcSQ(>CUsYNq*M!IxC)PW5h|9;|sEMr}^~P#LAX_m3oq)i+i<dBMcQ3ne zFk^S8T%15IhYS{7%;Jndrf7xcx0R;b-FB0ryEaw=3){w*VM9jBJ`WGGHem&5Vw1;q zbYX)-JJ(l1i;_X%P#{nmg!rF|t7?m_yxPd&Ei5~DTR<LrZMk>{?+VOF-={b(yf3i# zU*zKI_+e;sPK4e8ht)0J)dqCOWI#3hx|~A+?>RUp@b#oFJ3u&K$tshjiMF~bWU6to zf}+5=c*pc_Q@=*ZjtNF(uBQYnM85dHmfKiPJ3<gFiAf#A&)Savw3m1_sb!0v=MY;q zEXffnVa>sLf!(nq^unkvE?A;)DD8k`ZSY)N1gH7yT%8=pyAe@6iMoE$jVL(a`LBvc zaL&NlF*jkIDBt^Am1PGT0=LHg>xXoXCfY16<0A(j3fvr9>7nUhgoIsuj4J{;89ejE zVsU#{_M{g|9xv`RcX<wAiV_e^v@2;9|2w5|1csp$2*<Dd7Y;x3@JZ$i|6AsZVH?QR zO*it%GKavrO-`dnojWogty>>(uc>N3G%-(FgLHRM!F7Qm(-G<5d9+}7a2m{60^d*0 zt|Q?(j*f0a>)zCwqDm;^m|`q*@6GTqn#t#FQwH)2wk4-4H)MV@#ot-DeD5Uhw)i>A z>*><@eaw~C_K`1L*vCTYF;4%G-d^J0Tq?yLMFX$!vz2BUyo%R&<?_TELw(=zO^aVF z?Xjjk%ss)IPjI%j_8XSge#9ytE%3VjD=z(n52j!-GO!qD*k0fsW8B9nJm9l$n8ceY z-ts`_5RbLv6O<Woo=>jgQ^vf;vNI5WV8vnD$lx=6p2FwY<TcA3dJ9$F<ygjA&Y!;k DV4?06 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions$4.class new file mode 100644 index 0000000000000000000000000000000000000000..49139382cdf7e4269ccc760b90043cc1cd7f9846 GIT binary patch literal 2602 zcmcguZBr9T5Pk-bg}4Hu==tuQt0WOwUpU{Q-T{}p@+7E*g`bDrb{TFnliJ;YAMY<& z<@*QAPk!(>S(ZJUfK^1#5X(!|W_D(Kx_h4PetO=2eEkN%Ma((q69`Na`6^XuCbj=4 zmMbRn=`jV(Oc~9K8P#Q@p>*VjO2#Hi{lL`gM*H*mP~8-rH#$^yPmOeQu9;;<-)-bN zycq`r0+ZGd1+i+R<fj{KWu0`E`b!j3U<GGG*~lmn7|d2x>YZob7Jj&M6@iI$8GAB{ z5{l$XOx2j`?3lovo~_SrSH@NbZz!#@TLMptJ?rfn@=DJpI$bX<3k=MgkcJ_!$HguT z+P6^`4u%To$6go17#HX-TG7!3rD?HQU!mlIg;QXB!2~j1mWi_S_Tqqzu>ke#XxCVH zGmQSoh6*FfTDeA{K)Dr#|H{Xz&Cg0{xq!ns>fnfg{Nd^7;uww#49Os%H1#eBJpDh? zrPO^G>YNF&zg6~2mLX~_hWJy(RI{He1)Rh$4t^GR*ehgP7Pg3`%KT!Ixu%LkN?e?R zCvYZRH5-ex@fT@IWZb#wkDRmwUhe?Lu8z0^$Sh$>9j2doHP|Fezb3Ve=pH4OfjQqE zB(%vuHp6)vgLwu;2a^I(*I<61Nf#ws&<^F~PS%05E~ao!;0RX{<89qs%93V~H4_TA zDD!@C2e7nYPPxD6Oa=ZIRaPAM0)KaX?rl0d^I<nG;F5!j0=K(Xx~=hbP^60){3=k8 z;b$Z!iVJIUUHY-)&UtrbjawX3iGW~2oXo53+tkAmXva}Nbzh<17kehlJzUhmKU~yp zt}ZN@W)hGsZ-Hr>mPU6X+tK%@EdbmQsyc{G$~TA_WveE1@f&^@C^2V{4!>HvhHnI| z3xvSp4vP0%!OElH-qy?)^RY}*N|~#;dGVE~Z*0tVH(+es_BOl1&oB!7eK)_|<hhj_ zEuVb`w><R>Bjpzudy)(8<NrdwfinSX*w1s9H?lY;aDYdFgZQbf>fg31ulyA5OB{NM z6Sb*#I5_njr+I0F$MRcDzry)GSpEI5`VX*sfMI7EtTo}ajA?K^w{<di&1>5NJY2?= r+}a^r#Wl8fo%aqwe84G(3%VZ_p7-Gf9}5`Z9(N0~{ALepz2@I1cv)PJ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/CommonExecutionConditionMenuButtonOptions.class new file mode 100644 index 0000000000000000000000000000000000000000..bf4f071801305db9ff534ac16408f187ead5847c GIT binary patch literal 5674 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ExecutionConditionEditorBuilder.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ExecutionConditionEditorBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..e0b85636bd16166566cc10af9f5ad85d2d2d68db GIT binary patch literal 10706 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�?+5D6nb*q&sG} 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementEventProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementEventProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..f78a024510f734e46a0dc921a49b891885e39a0c GIT binary patch literal 461 zcmZ{hF;BxV5QU#xnzW^*1;NOQ(gjP5fRGr%REdg4>~3NrSBbAmoQU7Xzz^U@A&ycq zkg`~QPxrmMvp+uH-T_?U#79S9K}9M}X-cQ8e96>`oYb#6uACvurqj9FY>Z81VpK+H zDPziWvU1KynCV<w7uI|%3aU+_3m*pp)3vIV%oJmftF?}uz=-U9lI#e9(_l9LTXZ8Z zSen!-R~1^I7tErFy)oG^F~7|OE`m0>H>@8p|C2Ex`=oQKbu+-(zLaMHZwv8dxTLCx z^@GWHmh=DCz5HH6Ah?aL+f&`OEl)t8%O3!A`JsC7So^Fx=(8SR*yuynBa9n;#5I#` J<#b0Je*qbde8vC( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0dea6408e87cf84b3dec294c8ccbb520226e3ea0 GIT binary patch literal 998 zcmb_bO>fgc5Ph43I(1DO3KS^cC{o)XVaf@q2!Wy?A*CQF%6+pQ+y#5rcsDJ73kd|` zzz^U@A!ePN5Q0lA*)uyk^LG5+?9X4{e*k!ZI}us}FKwNt+G*#dN#7Q7YJEx{NzJ^r zhJ&6;SykHPX{KdibC)Vxme!<WE*TY6lJRb6%gQ?KslOkgBd`-dNfo+sl)6(!JPB#( z5f!8Y@Y76Io@#*=f2>{qKKC(RY9j{>{YV?_9}B$RT{8CGM4&UY8LdKKEx{SA#AxGe zf(YvZ?cI>DG1i7&%*rX%Z{)Nffz7d1vY5zPhxH=Z2?PkdT5gN|eI{W2RA)K)Iq8%M z4CX}qOPEm*>R@jYV+)rfToO23sxAqxpexXoN|9@X7tG8~^Y{PnOCUb7vs%$J9SGh2 z>kQs|Cr>2vKQgM|p)~m+`D2?UxD~`%Q#J8WFW66>8$<Q5kj|0g1Qw6)hUoQzrtG!& zjnL)zDtixk9U}4I?ic=iMe?c1*$A;_M{wPH^mv_cO^BYuCR>5?xUfKZ!Zx6E2cHpt t!^J-_Dn9W;gRwQwTVQYnwsDoK+qlN{EnLS9wjGx0CT_DA^IkZWpWkF_7Ki`< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$2.class new file mode 100644 index 0000000000000000000000000000000000000000..96189eb5ee6b12a92576513836053910de1c1f8b GIT binary patch literal 1000 zcmb_bO>fgc5Ph4Zb>bKrS}0IHT1pOWDq+Y8sR$uOK|)HY_)zW}dvLb0cO&nnEk6qh z1meIC;71{5ot#j)#nNhb$MfDi&l~^#^Ya&gKDq&F0;i_TVr7+eQpcZiIWaD#OG@TW z8O=dQg`CZl&f-+b++;RROi>sej~Ft{sUYp_z!WoMm7{JyKtrH&CeLM@OGcee&M0vK z)&=%_DN1rRvlQD47hk9}BWEir(o_npyQ#9>rz~r<QeDSP{X%KwUJATFSTXnESfDX5 zDYYPQEkb~1h&nbRw9pZ#ANYigk<#>bUQDR`C?`1yY>rGK^RX<Izb}Ig-vEJktCiU8 za|7B_sneW>=j@ok{-O(4*->R2AC5!Z!A^j?0w*gqBf>p|0!^7DWNr7Ez#1(??N*=t ze@z162Qx1ddaZm1cdnelCw}<2;X|F|Jd`>+AvZN?gnjQuJ1L2WdfD#ijpn%<<kDKQ z*kk|dyw)H(9d9H5CpBIzgdA=2={ethB<vl1L)80@>tCvz8$MRO@o0xlzDJDl(JkEM zUEmhBmn^S%_bkocS42N>`(KVruKl^<*k0r<IT(Tac);j79x}d$UDgaV*r-Q%%qOqY HSLNp~5ziDh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$3.class new file mode 100644 index 0000000000000000000000000000000000000000..9d23e55d9ec1ac4ab53476c7d42587510080a7c8 GIT binary patch literal 1270 zcmb_cO>fgc5Ph43x;0K4N?V{n2@q(K0!HlxsR#+GAR#41P}BprjlHA`&aUxpTK)hR zg!nH=e2D{BBz_cP){X>}k5eqgJ2Renntk&o-@bqT0$?3iJ(L*k>ueB8BaP)Me3J0K zwxM_-qLGzaQP7GZPgAJ|VJvx~2PTa4aHv(-rIJn}hC*4hrH83D(u&50hYG{00~Jvs zQzJriK#2P;E!+`_h#c_kn5R}`3{!Sbn#OhNqdU<?HVOKsRMOsJc-WjUc59cRvZZ4& z1BRmkj$q118PxzDW*N#&moV3rN^FmYeUUxl{X{U#cXh;*U7ktjkAoFQ0K<dHw%FJp z0%i|nJP@`ZUBnFSf{6bOrsD>++1mB7gp(dlF!UxmmjI`*%rMQPNEp*tXLvsG>Eu-Y zddY$Z6W$qFtJS8DGg$F(mSN?vPJhn~a1M0_k4WqZHDahYTmJ-i83etA3jr=-`sW=t z7#K}|^^eNKOHpvoP~EXSde-CVSR($89%YfZE1igz|GIbAp7MQ8n(L@2p+!`Kp0Im5 z4zT6~S&cG5i(Fiv#1`CBN@QCJH%1uLNyKIPM_{#@Q!-g4`gxe9_zYP$$afLHz4o47 z9}&FGbLLzu|H7#5C2HgcRO6z@Fi$7LaV(5c9@FVi7TfROf5PGioc>B^xpUqDmf-+r y^HyG=iq};7CI?+A3df)Xfd(!S+~vHAEl|lSnI$yQqO(FXXyXc5J|($+==lN4ZfvXo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ea9616d5fe8beba13f1256af93f23f61ea8002f6 GIT binary patch literal 1000 zcmb_bO>fgc5Ph43IyG(^3KS^cC{o)XVL&|~6(JxB5>g7HMY(U*gS*JywY-~_Kf(om z1ri9vfgiw+Ld+&PAq1CLvS)U7=I!{s*`L3@{{V0ww<0tIUfMcOwbRZ^lfEhB*!q;- zk(zjI4F^4yvZ}Pn(@e|4<}OvXEUih0Trw!AB;#G*mX&qdQ+GE)OJFO2k}7oND0L@{ zcpTEwLn=rG;3t`^Jk<hA{z$v-UG8JJ&_?zc`k^-3KN2|DUNH8~NTAiX87)KLbb?b@ ziqXVMf(WYu&Fzq|Hq?e*Ov*9UujRNPf%TzPvKYx)hxI(z3IqteT5OBmT_#}lL}xkq z8R?V>^kzi-OPE0rYHw#0V*?i>ToBk_s4fXEp)JssN|AHjdjf))*_!_S|N9b%5ACE@ z^h^grH~%_=cizfl$@~wDDtIVOzEA$hW(jTtaaL4KJk(Do-t&A5B+reZx?f1=$Z-nG z$G1atIzd(T8vI6Rb9|Y-2fPlExOe*tf4(C5G|gEHvFVQBy7%btI^miSJ%e?&0%vh< zj`EmoKxy|rBmRc-e`0*#6F*KdHfDKq46eW?E^~DgSGc}`tGLFt#bRB@P4;5m3#an) E8<%Yu761SM literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$5.class new file mode 100644 index 0000000000000000000000000000000000000000..cb5ff350cd7fde340082cca6d6ff36895710ccba GIT binary patch literal 1000 zcmb_b-)j>=5dJoaz4W}cv1--&TLNt(cp?^ril`xikSey4_s!mTUAfymZa1xek1zTv zD2fmM0sc|qY?3DteaXSy%+AhyJNJFFKYxAy0pK2PMQ8}Tv~`|pr=6E3eN)J>^(nn0 zHSyXS4tgqORcVu_nU;mkU8-zZT9XdBWKd8^#=E{PE9<nU?rwyZz*YbyRp`o5>P{H( zIHaYARFDe5Pcm6~ss)z(k#^m?+{bXCjqEY>Lv6HwByh03VC<cdK&x*vT86;s1gEeR zqluLS5mp77+aY0Xs13cClw+!2%W**h>qDz#F_N_o>v^yh2oQL+*cQ9HOu*`i&T{fI z(kT<@&4~DyFoPh}-p(k-1};XpAh5qsT@qYETc9nKBImmI1q3s*HU0bl_azV?+DWbG znGS?*{&fcLyp_k2`5zcn@KBn3pZt-{65I<f-oJsGm-}=lK>$o*P4TzmU$6;}n*U zZ-?k~f~xE__>Iu!_%eGBcpV~f@Aen|d`0qUnzI&S(;dNe@6q9P!Zjg!2J37E&f?r0 z<uTiU((Zjm{0-;-#Q4A`ew<=#%<|?KT!Bqo=ISP{aD4+;agA+@#k!80?8UqnPUYt} Du9+A@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$6.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite$6.class new file mode 100644 index 0000000000000000000000000000000000000000..60d51d29e81ae2196b9995cb0b5d79f2b325f854 GIT binary patch literal 1776 zcmcIkT~8B16g|^cwv<H*0xF84R_KSaMWvucjFOr(DS|+F-|miOa68-VZUKLa&;9}v zMfAZ(jYMPO?=i+ZZIKY*ZEdpMnX@x<@0@$?+5hwDGk`mIq#?qv<a#wj_`(lNX}oaE zsv8)5hg;1+xRStt*Ud&l$eLjb({XFQVY&6XD~$?mDLK5(W#BKk^@i(<fTs!?VhqVm zbIUXwlXfjtH@OvP=wcW+L|2+pnpKB0bOjs2Pvt3*N~oC>>F7BjMKI5>k`DRo%sNAC z!L@le7<zSRh$j$5pN?)M8KP;mpsyk%f7Yy5xwqE7>p;b|OlRHngqnB2m?D7TdAKR2 z3PeEEYsv)9<D!NO42z-it78P0sHQa@ta67+%<YaE7zWds%3-bB3Mi^XMs-}lRff1} zS={$i(+qDyuT2<4mbOUN%bvR>Z0;3%a1A#!TxVDgfx{zb>qy}yX~>l&TO9Ng!+82Q zfv0dfp(BmVA*Tg~#{c1zTaIY>-0-&pV_Vo%dEaP>m};BDZ4I{=MioJ)F4QpzgQ5SQ zXvkyA(&js@o+&GdOzC7zcMq>K!@$G7PWc3KsbMwJv9dE#_3;G^!$-UKRpX$8qibu_ zY`v?2X}w%D8=byRth!Cl;!lNgxsemya#A%38AVB24%w%yE%IQ)wRJpHE|TP=h$qb; zaOGo5xiN!YmXdo5j_Lc{#~7JUl%6wS$)xfivh@f(-AEAHL!()mD<qN4y@#ItfU|E~ zYx)(|`l5D!#Q@E9+N02O7^FAD5R#o!UQ-lx%2f6p^j+d1_XQJbyobxVj~I(UAwvpj zqvN~C=Jt?R!D3LsM$kq7-zdd>3iO@kKgbDwB9C9K;KS_zo#1g~a1YZIzCgQFVr^uG jMze&(!G0sJQCd;lr+EYqP^5Q^^fQNf8Yu$Qb?EmO3}p_F literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/ListElementsComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..5371e021a0beaf4bb2c82b0a6804df1d77af250f GIT binary patch literal 9658 zcmd5>33Oal8UAjzNhYr}3295(bT1{Dq#0V;0-d&)rUe3N1EjX5Ds(z|Bm<L~bmpZC zsGuxr-FHC*0kwiG1<9l(iXZ}RsMV^dh-?BX?h8_d`u+F5nfJ1BIFRG9=XBnC_uha1 z{{Q~><~uLneGh;o>a+j~6xOHG-Qjp9o^hhd@cD`8wv-dLciFLiC!R`j(6M`?eSPs{ zcepDaO{BUr;aIA-H<b*xkz`%M?zNLnrX|(em&(K)JAfjExx&(pCE|S<JDl0+gm=cf zx@{*D_AM(>IQ_LsZjL$e9aOB#6(2yULhEbh*4>@9yQA9@w#!aolD&ggos~}Qh<Dj( zg>%|oD|4Td*7<ox6v{f{-N~rapSBe?Pq=`U8#hK)Q_3Vp)J}M>Vkwa4tAM8neSY z;`UBEoe8(L`PY)T)OO>mP|<clbVoEyR3vodIXh*<P)=mABhFNqJxr7z2ODL9xFFiq zwWi;3Qb~n5<E}O<xIAcg#hu)GD{c3tcG$VkvS<zz3Tlf&$;x;#?yOe0v2I+(c{oN| zhpl-<ujrMpGhc>7p?;IXm;T?iG{F^Bi&|1$b`XV_ZDBg*C>-~ybg$nOz&wScJs35o z)6w0MAVJK<0%3NnLSbF~rZSMJg~_Opw|Wc5phn&rEKI^t^0vrA8G=E+g)JN}bmg(M z&61#zCF4shoFL<q%(#I`CV*vQl&3^=cdFkBpO%hywdvO&mSRB}e@?P+GFA|I$^PD! zRHDB(nIXJd16WCTkF0V&Hfy6!G>C{WiQp6qZxAL&_oUMCi&9A^nrKci_oZ^m{2B`_ zs8OitPDi(`+ZD4j8J0$OWk(+~R93CCaH_1D=B?Ufr=55#n#iv?-9oEKs@&nu<mHG< z&a}{m^>j(bc8r~(CiA$?Byu9kBHzC40z2kJ>Ng2RyM?oGHuE%3p)h~^Xd9-aRhZls zPud&$d$-wX9TJ7AwiH#}6ivq^`Q5=HrzcL2wogP-d7BVR#pJ$dn(obKIQ1Tu;{Ixs zUqrg%jIm(`sI!?ML=5&MGenoX1lk@$2uN#>4{=Od9tls0v^Pj>g^{IYRk9g?fe zlhQULncK7_k)jr=aC8tcaO>_;m^l*Exvg6V%)<GSQ>C$l9ZfeU5==WEKO)>klDA6; z7LFM?>eZ5<kS7HYlwDM}MPL_0uZ0V6p{SR#P>m@;Y)5YZ+=yq5r=H1g!K`DUUzD7Z z;pW9XA(d?DA+Xsj$o{JkuygWCb6Z9^cH`mzE>bwkt4>mwEW8bGr@d@!(orWx1*X>3 z`*yuncRW&#OYqJBE+x!84!Kzi@4{s?FKO?h{OTMBf4T*51-DpD>KhhcyxYQi@LmC= z?T{g>P`_BgGRZ3RzA=i~uz(3g5PR?esjeS<#pKlij<lM@|FDIR;G--gUU-|G)?}Bx zOI*-8R=p4xeB8n(@Jaf(Cz{!yt)-q@m{oB@T9t1sTT)5x<qVD#hLLtNGs+wRg{VJP z@{O{Q6oqVfSlc?BXzarE(LQaCl;G>c^v?;pXqyz$8!X%?MbgR@NtVx~Onkw@7iFT1 z?46#|<4JBzG0c{qGXuDpWoiPtK(9(ISRBMnxJA^vl`W<ztFN=M@VM&=9>eVx_Tdhq zj-6IVE+GWkc2XMKMWc(kZhbT1QH#kifUiur6P5&VCvFiRXDtk3KT8T#^)y^aw2hba zxm9|{Da{pMX-(RtWXvwb*AzC9y2*8GlR4is<zeU^ZJOMpO;b!CZJLB}u1e;2ho)`1 zQ*G|*+7Rt!1N3#=7r?y=D_%7!dbzVlyX{PPz58O}8@Qi<V{UgiX`ZnZ7Wy}1GZ=A8 zj;;*ukl6Qtg$MBvvyDl*QD@t*ojga(lDb_0{GADp-3dW_TVl5zw@b19zJ;lnQi>n) zJTt*gU&mr0UJu|$6K=)QAP(XdG2kZ_rilSRQ|O#v1J2Qh6=TBBC)|W(K|F$6*qO%I zgfM+v?D7;;$EqlMa4>1_%#T(H-gGg@AE8;J>*~2y67fk3Psx^3nP0{_t&6|R{>H*H zc$TPhHza{<YyG%6s_U@SakAcn-&**c?1e&Xn$O8p*KFQ$s!t`$@dx}VfIljn^{Vq~ z{ELZU2Q3SK7TH!R$sBf_AsxeCEj%iHafNrhG`a-w54;e-Kga0xb34%5c&3kiorQnl zMQH$Sr=>qFou}-z<9o#=iv;lR2?xXSAP!4bzDzgch{6K#WA4B&eQ&Hk<D`1SYx*<0 z8P#}9IvYzV#mk_wOiya(=AO8;z$cB~8%9_i@$KB_^e1&+rO_6sYt^_bSH&t2P`vA@ z^DFU6=W9!qsxku*Q`3eO#N6q`Cpcda_uv7MXIW~JI*Lu3;Io(IR$-~Xrsi4rH4?Y* zT-DbTkMSBrs06O6!cvv0io951U0!1xe?|~W2en64TWX4cN{X{VdVm=xM?Q8u{;P{T z>{X4WrVGjBRMM1-JVs-x)>1R2izzXrOhh%?Qgfu)641Flv<%O))cjG|tGh;GT^(zw zg}9J1+%A}Xn3GN=cm^vMHu>wGs$7@qwemcAjv6$bJo{(WV5vs6h;112d7L998$lH} zoh%d3B)!7CS4b1HhHV{NbvYI<INp0@_oUQP3xCrm5_f)y!uAPoq{gjnqtxSusMN_8 ze(%?b`-@U5Ej7(Q$ZH7qVrl|AzKJ+A4y%|x&o5W#``>xi97eogpQvC@wDd7gF-)h9 zRDU{VpQ>x%^szfZIj|`Fc;&_wzCz>{meu3JCErO#UUQ(NSom+gUk9g=x8Aus0;@I2 zqd`j|n#tH1Ud%D2QGjCZC8d1w){P_O{QE%xEdJ+xoPOtBU4Fch<GfVR<2=3VCmTck zWPhcfywT&chBVVLgX;~)TFeAg9VG@hdw!^)b`Y~dLzvq+i1`Cp7%Ch<U1-q&LZO<X z0W^jN(Zv6Yhp?0@maizTDJ~wsi9?9+bJdEHnv%c(R@anpZL|Jet4B@?)s$p$MyRGZ ziw$>BQX$Ua@2RNdZ#_z=Q6-LLGaKSt1AWlQuSJ{*V+n5?Pr_m}^X)X=Fs|n%VF#9> z6U%WPPK3?b4sto&Sb&XqBfn@1HeoZZmA5xx1ud30@m`^R6TcRb=TdUoLT@)y;+ydn z>hf03Pj%OC#JT(u$})Pti2TmuI^NoF>};+P{*yv?VQUuKw68qljG&cNYZXaXYb7m1 z;3_GCyb%$k(2bsaaN=6b7JiHJC7}ie#N!{-qid*oi{@=qF3CHfM6Pqm(KAQpj5#t_ z$vGw0KKvDPx?MR_#GDyfB=}77*~fTiJh4^uf_S@>7oQb4gSSOz`ovGki=ToW8f~7D zGG~n3ne(BN7!;G=xfE7+H9GlN_z)_62;7TPWbgoZ5wc+~>K7frI~4B4<?A_2w_mw( z2z!KXYvCZ?zoIBKqj3-);;N4+Tz%wFh)Apx?Ta+xLX0}l&Y+x4By^yb*f@dlk1+PF zjD9=6-^3Wd6;W+fNLzcZYgL5Seu`L9q^ZTHaTQ(GO2k}^&v2dRXjw0onpM|u)o1xN z3&piZ1VsTdpaz!!#~z^{mHsZ`D&DKR!MKB7k)XFrW>p3%261g$L&*THZ>Us_1Nb~0 z6zdFCmKP0T?*O)n`3+foNuEQvsgoi5au&DAXGQ4{?v#PMvKa8fIFEwC<S8e#D;WD} zh+`qq&_q0}f`bjX*caAz*8$~Nivx6%L6yO-%!#oDG}l#MZFbc^IE2E^5Cb!-t-&oB zS=>$Kw|6#hbZ7uc>X@wh>VDjl#W&^MGdPQHnSpPM`rpmsdw#-)Irng(z?09aALJQ4 zJdyzi4hn-Gk6>_!goj)PhpK*>XK-jF0}ebQ41Pfdo&!zox`cSTloj?}n1{>gyvuP4 zuAuWiLOgwxXSa_bg^zQ^C-5O$i)(NlK9A4wg6MkOha2!i-0XAmLD$JaJcM8B+U4br z%$eNb!HKRm)%#aEaX(A!Nlwmbc#yT5A!kyo@+ZZHP;CQq!pnlGI_GX9)js0!4(92d zn2o!9h@a!?Laum>IA;^d{Y9`}z|{uvg+9c~deP6UzlQ4t@r6*c`TA?RCa3b_TIF;3 zE%2^3>OQejo~$)bXYt%VO(@%gsc`#=)B`>@RlBN{QYDj&o||OOV37?WCC?<6eoB%u zy&yy(jR)|&LKc7FJL^rAk$>g2C>>EKOqsif8^+g}xc6Z`?$<gP%r9_t@FdHKNOsMh zPoeCST@~8tX;ESFe*Aq1hXqXk*^iezFd0i9Vo5sWlQMaf6d5u0@v@jAGz?Usw(~l= zTVT+T^W}y`d<!)mP(=mEs$lM`T)rkRYRsymJp~LR9^o$cbC!Z%Q1f4MFMiaAhz3^~ z3UJ-dH#Jq)z%rs=YM>txvfdy<R!I#kkcQm#$Uc6{J{&dy7zTj#jSuQQwUMeHQvhR* znn9=OZO9bzSuCKy<HW`jEXq&v50+0;iD#(vvrNP1wBmD&2v_k^9Oo)tjTx@u5<jzV zhFx{dT&`sEj_M`;4K={LE|5QRxZ3aHm&9|HKx%7N&AN(PmVTRiEdoV*QB*jn7I^t) z!uveK^ao#fXSs@bAd-<Bh^kT0$&KL%#pn&9fFFuJ<YCg);ym#wr$zL`dZT7RlcyI} z(}VnlUivGm{NJ>2V{fG^oaCc6YMB!?lsZn;QG`KRy++yH^r-|cLZM8cQa%>$bNj`% z!c}{5jK*KB$>jqoRDjKw7pPk89$b0-k*69Y!A%gSvyuQWFp*zm5D&Am{D<f|%)bD? z><eJTRkfM{G%d|k%vVji7I^`bRid<6CC!bbVmS(}mtX~WUaqD+VRgLgyk<TngvC@W z>6M%k8Dv69M`=>M*p==@Nk%BCqEs!$tu8x3hGFNTv_Q8TnjJ6TgdIagk|kr2s1qb) zev$`#B+JzDQBqu`{Uoz}Bqxq3<)o2PzUm`cF(yf5B*|kwl2vN;7>YHDH~orD^O2mQ z-Y^Eq){!JLeI(6ljZ1Qzi@kv9@kXll(;N{BRg37L*1FJLr%vVf5~A%UKIPw?=E2)^ P^Y5Vhe8hboHqZY8zPa&L literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/MenuSubItem.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/MenuSubItem.class new file mode 100644 index 0000000000000000000000000000000000000000..7f200f0bc604a1decebc737ca884f6e9ef47fef3 GIT binary patch literal 840 zcmbtS-)j>=5dJnvlP0;ECXKcJ0)0!;(gj}?eJB+Qu|A{(eB8T^am(FqxZ7*{XSL8G z_~0MlA0^IiLoJODiY&~{&V2LD%(wUB=eO?wUg3EI6@fjQ&!jGN;gpe|Qx#h$>70_% zX=^y>C{y#fHZyswRcdF2Ol+1}BR`NSCuMxVfCg#;>nG||$y71&V|+r16IgY0?haK( z0=@C?^u*=N_gbJ^P|84VH0J(fC>I!w{XmqYdR~w$&Ul(rGOm!5`&cHZztKj!w*v15 z%lv;&G@J_5_UtjWP{mq=CLRb>2g7L-yjO%3)V<e>(7>udXRHk!mRU^sk&4r>olR6a zRk`-}MX=_+=t5vW%<-QJ^RDd~xuaV>`-9=~#sYl?EeR#C!{~pIwKcJ2p3r;kcU!;n z(7XN-@shQu@-I~3!_owgh2d|NGflMEw)ysn^B&h3eML0dzGi3V8r{oKu)(&68rwG8 zHLp3J4*DE<aZ`qe*yI}%gf=30zEOo6Ji^wZjpVP-t&FbFxnQRPPhJnfjX)UP02YJ- XkMV>fe#X1S-TTE`e=L3)T0Hv&Jx0c< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/PreFilterManagerComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/common/PreFilterManagerComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..93b29e93a9811e918b1462a53b138ac1fda7231a GIT binary patch literal 5935 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f41f0227de59e90156c5de29d289801a578eba8c GIT binary patch literal 1325 zcmcIk+iuf95IviOI(1DN8YtJ60-?DSFyRR)2nnJfA%*f#6vX9aV=w7e&aUO%w3YZO zByQq?58$H^V<(}|3f^ML-rd=qGqZEf_{Yz0-vQjiZ3j7qS2`K`(nw>u^4~>#psg<s zMKHEfD>7O!;&Ck1&<`b#^w9Wwp$+sX)<#-k{O(~O;`Hnj8Cj8ZW;@lEg91Y>g%?32 zV<UWXK-l|2S>x}BNCc_dqmaks$FN{`rK#SfjCylQsZBv1NG0t<hPU;(MQQXI3LPDa zMKCORIE4ild7Sp(pu~``rw5jMQi<*HXdsdod=LqSm7WfG)aQvz*HdF5EegY%c_mwI zQBg_<G8_s!p+tlX%}H_oM_V_gvEAsqSj7bg=NVqki8T)wafzYGgFu)}An)hMT~_En zFFvV_@gI+^)vE2{3f3L0F{~d~_TMKxT*U^1XJ&;Zt&=Y5uO~IT?%@WCN7rgGFcLxS zMEv9ZGATTRyQ9ZRAgJreZS7xOcxR9Ab5dJZ1rar@8a@+tSBD;&*dpSCL{Niww6ckg zNN1ZTiJ#r-cViRjbgidKQL{(f7-6tMLeJAbg_X;x+G&=f*Fll&i!{4W>(t^lw?5J5 z3%n26ndQ`$?J)9FDAU>_pVWE=D>O1xaCVCFe2P+OeuVoK=klL%c{06r1Xs!uF<62n nfN=)7nuVxLAwiH;+$7LEHYr37HPmS=kdhm?l?5j<Xr$*CdC7+t literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$2.class new file mode 100644 index 0000000000000000000000000000000000000000..64cb61ad0ed308a411b3704ccf452f3ec96402dc GIT binary patch literal 1325 zcmcIk+iuf95IviOI(1DN8YtJ60-?DSFysj-2nnJfA%*f#6vXAlv6pl!XV>y>+Db^g z03U?JO+4@cd=z4AClp%2TP)eTJG*mccFr09`1$QSfEKP>$T2)q@z51oXyZxuRp<?r zarr*?$3`egM#D#56bU(W1L1{gsNJ2w_-Yg>EezLgci-nxa`u4;4Uaq1oodTMfuWYb zb3YW3=C0l&>|HL6cDH!Q{lx8F;6>!eFlV-fuHK}KdNWF?O+oGmDa>7lm-U%NY4jNi z9To6-Ff2GYhB+H~9Cu)$#E`Ei2Nrum^3CyRz~d+0Amj{7J>`30--|`Eo)`;BQ5as# zD%om_ic;DW!H}Db5*{!#v*P@Zwr)aWyV19?j58KaGd!IUYYxuh97ECbeXe!2#qfHD z+@*#7^Ws@;w0nPSjFN2|7qDt!g<<uuvj0Bm;3C!-96c>8X`OUYf1cIsvV$uq9$f1d z10xaCj>JFQFInLk>@78peNJ6RZY%%l!W%o@u19L?N<XBAmBUBeY^%UQ6B|UlA9HH( zj*=!;A?a-WDDl%<{cda`ov!szN^17d)0%6nk<jz>PhsV9qIR0)=(SKJ`#jBV(>k%( z&5cj=`2y!ddS)@Pr8|uL-k?lthkO$22`tgbP{GLw%Hs)2rTG!|SDea!#`$b|=>V>j uCh`^wct-&5Q^@5sL}daAf~?{yf#$JJA#$jpPGf<T+`zRoIFUgkJ-+~)xrbW- literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$3.class new file mode 100644 index 0000000000000000000000000000000000000000..e179af0f8d77cf38b516848849a228dca0d52a83 GIT binary patch literal 1095 zcmcIjO>Yx15PeQUH(i!C6eyqNGoo#fSVS&JMF<oH2`O+XN`>I!c!$*0#$K(Rwm*am z{EJFOAP)QheiUMy1P&nJlt>%f<9TmJ?~T8G|MC^UecXyr5qM?GVXB>WUYhi6E(g}9 zbVzFKwKW{{G?GQ3%`nZh%<a&ndzn{uR9L4yxwLzzs0g`Fb?&L`{Jd$lBh&=e13jr+ z7miYQz})*}yi2z!Clz2%GFdQAV8QQd*SyCa_2$&l78iM_jrNZO-fYaR%4T1n*0C8a zLf~YA6Ih5*#i;}lmISIBAz`_v4ZRqT22{S3gPa6bdREE2FH0THvtTWVBJg@%%{JRC z%F=<(hUBM~P$tltit{hqy1~Y+&3=qkT!?U9U}sLQCAf&XKwT<D&NbTtg4J4|DDwXf z1>$WxE*0^3GHmT{<9c^b?n}0%YgEpYZHCXu@7gTEb=+WuR7w02I@b8o=4{CAKNXsa z=+a*=fYlL5o*BchBA3pQV>0%iAD?J6!dURG!e4|s#}|3`fX^Wkx9)u8zfVYxCOOL? zHn|audxr*}6UKz-X{_)na0X{*ERT5&EcMng;?FquJI8yj_+i4aI?bDLFanownbB2T XVSEK^xXNpdJ-&vUyo>oRROR0fu8%!z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite$4.class new file mode 100644 index 0000000000000000000000000000000000000000..2dc1d045303b0fb5cdb9f0527e2091924947eced GIT binary patch literal 2905 zcmcImT~ixX7=BI?SP0vK6-sTTqJ;9zTBKM_i}I1SK>|n+#8zdqIY~C%>}Ga1EnGU& zUim9JUQ{o<=x8aFDSF}H=>PCPcvXE*HVK3ltQX15=6t>%=Xu}ryyws7Pj>-~z?9%) zShei5qC2|ds-}`M)P&_Ke4T3rSGP=>ba_tA=XEo!Bz4uW(vFf%x|)^CTaNB>M~SR! zJTLZM(+!u~Q{|P=sDuDROIE$3Duzn(^NB3iTnY6I7ll!-8G7E~N;aixT(R=pR)roV zx>ztxHDT}--OVi6R@&x{!%**LbSLyKc|2Pqm&0V_if-!eIK!>pnpx>vW(Z7KN!|#C z6EY+;1mQ=sj7GFD_<O~M=2_k3bA?=j+e-oqhEubarW(ttt&4GKG9W-<xLGS_L!$(W z-!7O8!yY2#sA-nX6<Toh99N>{FvTo_&$7dP%R!vMSqX12tkfu6GS1;mh6YvBC_zG_ z40mf7v?9Xg!_yT|iU35HHu5~&g!AZ>@D{__s>H6^CF5<pLl?s2cZJXmo$}q*G8+tw z{|nh;9I5Cek3zU0p_`%WXpbt}W%Qtz;bfY-6NV8lBwTWk(kfi-*r8MRd0BS^CL;d* zG6pcXAEHYP8?_73vF>;YIV?i~QAjyw#u(OX=g@xvGy>wt_ZTK#`GQ2s#5`r0NnNnz zf>B88ri@FVvji!C(>$dX43{C&+xP0MaFpV3kP5|R86V(7hDK69Yo*iNW@s&GcZ}3% zR`F)T60R_`?=ybfwW)AS7IY)Y?I6bSv4oEpdS056GgK&I#EM3xqR5!Qq<5+q-EcKc zEGX<AHb72J<C=s>Rk`tu%eamk4ALFdDDe3d!-d`h@?J>_zf@%yGlG#nVQ4!j;;AhX z+&E$~<}gnzPRPVvRlB`pQ!QiY?4{TrbhEq^F?f!fE_ocrr!p21r<z0cm77V1p@Vjg zbgcwuQN?F6mIXu&uI2gFgwOGXgjGU9fP64IGH!~))N$LkD1cJVqiTkMDn>b;*XgK& z8!F7f&|M{6O%auCR76gTH-o|5eObYRL^2)6-dhHy(-&p%@pT3-rC*?&7juU!o+w5n zrsj*aQi4jU6t@bt#_6d-LF%X^+M%b*u!tO$;E1Ui^vW^QG45upqzpsU=X3N@F)N}| zhUz$RZqUnyZX<&nHBEX2iCONTlPbKQzB;g$7E$Qw;pL;R5kZ=5qTXd1i<w~mz+=e$ zPjK>4anEaFuDBwkf5a&o%OoRaUq>sol$SW|X<=&!&@SMI{+}Ulp?wbzO1*(?bodYx zqruYDHoAP+LZ3Gr+C!n#+YPKe!}&S?Sl}UAhuQ+A>9)W~{9b@n#=8&x`D>^w;<fE@ z(GHQ)hv<oI;o>IV-$8hFa1&RzF!cmc>dkIqVG~Q+Sn=Ue@hIQm9+83{;;`drrvIPl zc#o-aY+{gH9K%z(**loQGs^27Wbg|%@GD9EhWpsVxA-03QTsjqC;~K&dI3TSAkn*p zFUisw==cg>6P(kyiZ!TY^E#E|1T+HfKDv+ur_~fmx1sJiW+a3pq*=?~=$@1?-bDf# WTJ({kEVThrc^f(Ei8zX=(C=S!0(TDp literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ExceptionFilterComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..7aff46b3c13e990205e46d389e3703da08f0c4ca GIT binary patch literal 10053 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 YDPGqwd_BOc{(H>3@T-mY?>X=CzlVK}ZvX%Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/FieldBehavior.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/FieldBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..67c17f52b8f46de7ac6b799fad62c16d264c0968 GIT binary patch literal 566 zcmcJMKTpFj5XH}>G;JyW!pxp7SYj<=plYQ`kr;~DFNqT_a_lO0B0d`fAAk>qxC9A_ z!ob4jclufP?!CA7msbF|hA@DEfY{cBBuCDpk-5gida0gO+IX^thh9~<+mR_`MyPG! zWSRNYRy*s+D<{{abatnnuq9guFcffBVvABEf4NUem3je_oV0$xL@NOoQQQN(K+Bl- zF6NI+Y^gBlo0^GYpSbzE$;xI*OUI^-r}Wd^szu#kchAzAjJn6-w%>YLDBmC8eqo$| zFq-e16_EcJ{);~WV@y4@+<<_Cs0(Svb~jwe(l&-u<>5xabZeVBRcq?P4ZqcK)df8g nz$iBkFywX)VZ=IMHGnbe2~5BA5$hQoGbrE$PMP60d-D7PVtcHH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralFieldComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralFieldComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..c12e3969288d3a8b1bc2f7e9813d4e0c4655f1a3 GIT binary patch literal 8229 zcmcgxd0-Uf75{yE&1N%PfuM^Chk!yhWECkb8=#U9AdrKS5E|6tWOtG*Zg%7DBq1Kv zB2_EeL#?fN6to3vX+3HeqLtDME!9?gS#7Jem)gVLt+v(l_sz`iCM1EBqkm*)=9~Au z?|tw6-tWC{a`^2>4*-}irYmp=G$xX5!DuR)GPHQGHKw&BjG(?n4|f^SM4W?$-l27N zM&oV4NK}g@+ET&I5hI-F=uD)dhMo$p)Z=<mi>-+2u}EcRSb<Am-O16sdU@jjy&i#@ z6Vz*(TA{aV-O)r+z_U0Sj~Yt_&Yojx*2A%AXG#yIdW>LCG}5LUsbJQC^6I%w0<OwL zMEAjod=(130^@3;alNjqqeV|PYArEcpr9rZ)?!UsGAf_#L6^}UO$jue=njVUc{$DK z)RKDK$XY8fa}-+=aHou3X|$*o@M>Wr+Rd;FIOoXC=FtOH$z&o)%M0ert=X(~YeAwT z7OWv?xN2TQv@Na~T}e(kYly&NYeGyTf*On@fmFV<T)`Ov6LXrDC6ijOROiDK6icTT z=0RYZis_g^n+Q4Eh0{jdkSS2^!%WOpFiW6V!eqE$nu03M!r9c!%~ccP+#5~5;ONSw zV7V7_1=Pw_Rh4TtRjhAptgrJSfO!f^1!f#|NjY6b8G-@|mtC$Inp}0Le{3I{E~{_Z ztcMLc>|BAVBdM?GGK@sri}MJ9%KF;1^$pdHRhycY)vT{l@D72CPB3G-wOE%P&Lnp# z*d(8`DDz<f-l<|TPRqw4(A1E?*j#L7SXC^>66Q@RdYOf*YAO0|73X6agFqrlYKBb4 z$%F7ikD24;`KSc9vYZIaDbBoAu>vcpJg#ps1SVxP40a!pJ>Hx;0Ek|!5oo4w%545C zv-qzp%YQcYmD$u+Hi-JlhE2mVUFM490|m8%7PUg@Lp|Q3V6DJ}oITZXLvPcQD%PQa z=rH|V-zwcvJrE4G7(u=s8x$}(L!*vthn`AlZ6xek`$olk(QKu+m6rmGh5_RR1Mq2s zaiB?dO3QFwpyEPYMB30I5rM*ix-t_t%0O;XaWM#erCm$anK2{LY$Oqzo?|ACAIdRa zv)r&E2{?@C(Rj_wZkcLiCU3Z14_{J|*dj1}#MHKuhth7-?E;%j(Gw_%M^6{7<Rjoa zGMp;7<AMQBwmr(=4=y3SotZK+>j?i0OR)lD8VoIbNv+mtx<mofYu0EOjx)naofV)m z5$o!Rr@ZJAfRlglk(9Tn=*4B^z=1*n8%M657BdgsVl}}%5~Z1QECWcnSDb=8ZIvBM zoz}rZz8>$F*>Kgd>DUgA7auqU7KIb>NL036UR)!v{$vxA4ez|xXe?&BmnGOv(p)*0 z6~FDs(Z!?Bhz@o}v0#c#W88>_gJ!Q)C0Ewu#ws&AWDhX6Ns`9(Dn5i8NE)n&k~9YK zUAFk$D6n?)OgB0cB$hv{;v@Jd6Vk%6qzyXWLh`5xV6@wnZk?zP^#fVQNElj-y%$+6 zG9<B2_NM7~W-bZZ1c2OcKDOf%Dn5zZ`GP^nhDcyFOX=|%kX6$pdj(dk0Pc`|-JK+% zV=)DJp-D#PZWW)xP8Ld=X-qOVTOEO_V<<5zz{vDslfGQ#9u@cE(`;F+RT^25Br6D1 zp4bvn5%;|t_bJ#TP$WG$Y&%Lh6`#fZtcWSykkgK+o;K-NPT8yC^Y{Y$oDBWiCo$8{ z0#A*`=#v%I{{bGuA0A~wjNDk#djb!tcnA+?!^5t#C1F<d2mYTs9kEVjyWsMnU<-Gp zj6_GU(zKa9>~=h&;!8+d#|}GSgZouG)Uu_%PfqAl@u-|2Gt=Z!t6&LyS;gZxKp1p& zM$A$@7zS4lb<SXGPIc&b{6B7#jaW1!3NjVMcHgSwUgZde;sHW-Wn>$J8MszUk^^}B zu&7|_i19bG+_Y<O0Nh~-R32f6%p4pC1>X`_adKEz!MBGw_6}N)RVb-<B)atmJ;rmT z9+5nm^5GnON5yw#S1yrey=1+Xhm~hld`}+UywSK}I$a*If1u)r_>pyxl`3TCbgXX9 zq+|s@rc*}ZLdL{MCSpE3hZj`*1ch875>2uB*S+`|>vYYsimIATb<1k2ym*PvJndH0 zZ(3JhQzhrTtl}5=rFEuZ1o<gMV76VvhNIqG^7`;=yrAGWM>)f1h2{QVRq+~r%QK7R zO@fEpXVIF8->dk8wA<Cm=35TDEOq}$#h>M<C#Ll#x@cBj=0L;l-^qI#I;8jyIUkzU zyEsDysbTsm>S@g!fU`~ADQVyG@CN>+;7x&*$BW(uyGvZbPfm$suZn-;KlF@VUDwdK ztgf<3p!&G8`v~1+-#75Kihed)m}-^Ik!XhBL{Fgc8A&UP*<s;Og;VCzgn>y`9gpZ+ zd{`yiJpT)R;5?!W&env(n8%tR@>Jmy`OH*y3t18qSYuKC@wBa3EoOeRGiUt~V^lF# zmLB=7O0t|>db}zo$VSD>rEM<QEyhUOC#j-PO1t=puR{);ri#<$Ry{F2-e$DR*;7<; zhMX-8&lWQt_gm#jER{8a80HzpKAbVf8xmc~u)ZQHzfevY{+o-;6wF{~o&0n2penx} z^2;oL^Y~QFaVM`zNuX#Sd=K%~0hPZ#UV+o#!RZ*oyXlq~#$p_wI054^flB0E0VYzK z6&HoJ+5pGpJCRf9F$aoFWvcbkR>t!@7jkeRxwv22C7z|N(u|#tVM_Bp6xFzvlstl| zX`I;{@*G&`b}n@7!Igebp=*BKyn;DtlpMr4A;qs8f;O*UzWKZ$<n?>gSQyIl=k?)T z0=J_|-tmKWD1Q%v{`@{v2pq(!kgs61`*GAXJB#+CuA$lG_ciQCW5^fq`}(lafeljj zeF8iBpWfyW+gzg1Rp{Q;zcuh6ZFHHIE;Su9ot~XR=bcG<o5e4hvvD5I#!}2d73Q*J z1ki?gct77<$NP_AK5nJ#-E3;4lh<)J_iX#c%cDmN!t|97w;^IWc_uD}j#dVvjK6JY zr~8+p0a0w`+$z-I63)ouo9T$5gEQmQIGKL6v?Zv`l1fmjlkeK#?nf~c1wz3hk^nE4 z0{vJ5)gDt2Fh>=fqhJB0xM(F1=%)(rP#HPdJwzehl*-~`D+MGzR+Y%878nKH<0qxj zv%z}2d_S%%=$?R`xuL7gq48UCBU^2u8|6?AW|OHIv~V0kbZj{tyBI6E7wKLLcB`_m z+lCKjVRx;B9qy!KUA)c;n1ESQ<cciagGnWU;yzsGAXK*R!%f?q{l$0ozb@CbLT|0P zj9#gr?&T=rbtXT($~8+YefFBv%%IDVD)jlyW=Qi1{9AbEG(%<CD5Y+tlnjs;j<+yY zi1B>>c-DgpXu0&Dr$o@C-2Sb+T|+O_4A`^BUf&@P^_(YDtXu|(8hQeUpmM*r3GCrN zr)nQVpjk%6>D-4MbtUuCxNC#_-4$~AT?IxOpDCGFn#SisZeIQFG#&_fs3JfWUlcfm zv3|F8o5nug?6<~T)~%fF_oVTd88WAtIUyPctYyg7(J75|T@&550q3Gwemf=9E@lW@ zC=uaPD}UROAkMpqaOvVz);6*(?xFL(!cC5&+(CSmjw;4Re9g?764c`B_y&Wrh<Wo( zW{sQr7trh{NOjWPv)~$YzJe$F=|C$fw)2T8pkTL&{=;CfTzD!I3damHyMWi6i*2^5 z9m-YnhvlltekF~kZ^ziuGe|rZ)oc?vf_b{s#G#48p3)2m>(h8<p-Zk&=t|@JA-CUc zQs5!1wC@h$xip^V!%s~nv>z;5v>#r~y!m+=zoKOJ`T30ES1h1!w>I-T>+*UUf6O6& zBdG<<YX=NcO&3GgLt@&(yz3?YFJpP>A~{`wO{BayuHxv`xCUE^!E10Aw&8we;G?*f z&c7bdQ0_V0fERhVdlfgDp|uF{wJdsHF=<c|;!F4o^T@#!&&m?w88#tah|9AX)q=m8 z;p!!zBm~^qEVFd{jXGr5FN7yUgOUexG&skkI5{?e26GfQShxT#@}V4KZoY*!-UZ%7 zKEe3+0VVDqX8!GE#{0PP-b{(J9LxgeKCsZ`B=6khcNfpEEzOoUkKc0$T@T}*eRzvC zOewX4c9?}u@ylW-#D3vQ3*{i5>=RxVQ_9%IFfG(RG0uTf8xy<JqCi&0Lzv*tON)tV zF?k0(f<p?6r0_cs@GCYVouatVwW~ihq}<(1cDe=A$V(+GQ9%~0MXa*Rv4e?v2R(fk zV|q7Zxs$we58vL4U6j9{pMG+QyVs7cm!F!7Om3V;gvcW2pw=EUrXK2TH`AK`>cT}# z>nFJK6__oGS>*DvF|~ALm~%B;{rs<~$0|{|kP@rb(13_4V45FRNG7aa6ONoit`$=m ID~Fi&Ux0WxmH+?% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a933bf2f62a746b531b39a0fce09608a6451e15e GIT binary patch literal 1326 zcmcIkT~8B16g|_{E?pO>RS`d+pat5ZEcGKX!I)@8gQ><yQy<N+JC?!i?z%Gt{aGeh z6CeBm{wU*}wp0c237WJsbN9|Uch5byKYo7u4&XNKSx7N7qonOhC6(r(`!3*Hk#@yL z;dQl)LJDfp;c+a(w(CnCL~Z5n_}Ys)aipXc%6%q6k?`R8lV<%OSgKjbFf18l;RP~Q z!c}_&yDLJi+)WV(&!9i@d8|dkkk#8#l~$>k#>rQ+M)(h8DD^{zH|5hHsI(X|^~e`F zFr0O823Z?vj61L}!H_PSgvo{s#mjDIOC(Lc6$pkxBl39A;)yipVK8H)U}&8}ouwK{ zF|jB8w$Otf2%n)kkmP@TS~q=LtF&xPVcNnahSw+GCI^>|SPu97z7!i|yc`i;b#M(c z3}a-wp+?2NIDb|=cq!%f6V_}LF>hgxVdk&}|4MXl-B4y??!7m6N)8sV$dDs}Uh#xp znqi?_IhJi?cw#K0YN5g~e;nf|*}<}5%?A8a)FlQ+R#-a1ad=h+Jz%gmqi*7fr_wlR z`X9r$vcq>d*=;@a0vge<{X*#N$aiSq?=XyeiJ*~w+|`<<n_=;2_YWi*6-=F{zHEdv z=k<UqB^2h!=xO>BVfnmqJMB{RwJ=8U9PRGY*+lH>@)!E~3g>e_XVS#_PZ-_XL7vVI z-7(Q~DA3Aq9v6lvZ)r6s#p*un9xj??A6I&q9qn%Pu=E?cfDENaR7gy4A25rgPcb!s h8B!1+ZsHb!r?Eo$DY#grHA8Nz;V$iLdS;5E&o88Ica;DD literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite$2.class new file mode 100644 index 0000000000000000000000000000000000000000..47eccc5f03361b9a534cc24d4e1f42afedb9fe69 GIT binary patch literal 1075 zcmcIj%We}f6g^HtryZtkC{W7#(TKJ|Vo+8{MF<E56@@Nn6xPnn?bOx89*vz8Ht<bI zJR}x;03U_8PEr<tVAGD|x%RQ|@zpuk-+z4l2B3x202P6*DYIBvWu4UVUM~B_#q@@f zp;JaP=x88|Lg_3{mCQ|M<Ac;CW>6Tb9NG9eX)0y@;%T>i1U6a$Y65GXnUY);mSTIz zv?J2a#=DeL;@KakvT#%i%(#7J8~3=F&hb~X$@~wLR_>v|>-CekV528cYnznjAaFXu zDa?eZVm?BE1%c|iKd{(Qns$bRK9ybB&q-jZV-lJ7WU2gm3f8<70=*Ncv(aKH77kUK zk(+oxsX%ig$-jKs^1f|u^g=9SCBOxNSI2Ktgo|FRvn378h>q&p=JsPb1k1HHmgN6+ z3WU36SSIvLd6ifG(x7(_<Vdn5TRO?Pjdk{t+`dU8+`vtN`J^On`zJ%^_yq{u{!^ie zh&KM!@~n<Pw5|Cqv~y`KS>|Hv`Jst=-FF1fDm((rGCs$%`@Hr@*u3+Je_s%N7@t}6 z*my^9-dogp9dV9F&tQootAuk?mPZ^t%WU%_!p}JWJI6b|@%@-%d2(*b!5O%O%bZ=s Y70$2VDz0&?vB%eOi)SJ4`CIw>2|lYb)&Kwi literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralJDTComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..d71badcb833158bdebb2b4336acaf504260ab9a9 GIT binary patch literal 6440 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 MCwP^Ar-RG?00eAbLI3~& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cb65a9b4ff2ecafb1e87bf3fa73426bad6fb032a GIT binary patch literal 1576 zcmcgsZBG+H5PlX;j-Dq}RD4CO7HNxefSQ=pn3$#-l46XQe(>9Jx0J=}UUR!G`eRId z`2{8j#t;4gf0S|dT2V0=KD9}EvvafaOy`+rzW@084ZsTSxfo&COwv{$wbX{IU^C_$ zi3!AO5q6DC6giD(^G-*qRuD-ZCoLUpM<z_#okU9`bnrwdk@EN%PkCDyk?QBdbW_#j zaaYuSg%y`wI1KX^ON6oPXc6cg0_q86bg(XB5n8-Q5${kAhB31xb#aNxYYd~lDj`0Q zN}7iZvNRmXa+ATSC6UO1;iQif81pcSQ$AcwFpQRLz+^)z@wD6C5a|oP5etT?MiTP4 z$x~_11E*u##jrJ$%8Sd?u8AEPwS?(2CnAPQzit0xw{F?4mYW`?alyrThG-b%`nZTo z4C6cuh0ca*e@GM`pN=-oK^$n(nldsB>OGPVw~DAGDw5WyzAQI$)VM1?W^k4M4#{x9 z{%nTxXXpFm=pYNIdboz`E(#1YhXwdoppP4N@|+G2U)eizK5k;3AxA`$zKJ}Bxl;K^ zv;(;lVi^lADh!3A5D$WV+_I=+F@KYE34zg&&;NsQcvJLeiNRY>x@jmLORJ5_v6j)| zHt%tgR$YZLEiu(v6J{%keB7~h_&kcTwyo0UqvNWg{Z@;))<RQHNSL%dSw3&|O4bN{ zU5t}IN7j8hTaQ;+_)I_h@IPfSlh&8LVRY{;@^tp;j`g0#6g?Tv;Orm^Ck&gVP}zmY zoG&<Mja^*c!|Z`o+(YSi@+mlU;T;w6o)UeaLO*68)BQvP5K4*LSR|NH1Qb7lB`nj^ Qp}AVYU9voSXUn3`Pl1Qu2LJ#7 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite$2.class new file mode 100644 index 0000000000000000000000000000000000000000..39b9b7fe837cffbe20c401ce29ceafe7523b4646 GIT binary patch literal 1494 zcmcgsZBG+H5PlXaN6!-qD!wA1McSeqR!vMWCZ<6{g2ssHHxrk;rCq%4Hn&^Qe`MlI zVuG0X!5`p{GR|IW6%0nd^pd-sot>R$Zl0O>_WjFO09D-fFvPH>(?%$bG?uGyE8&~k zhT@foI#y~$N-J8t-Il5m#*!zxVZ!a$M!MD3Mp|LQheC;zCr^0FTf&OeJQcQ+sya_P zqW06QSoM%&Sa4V(N@UxJ(CiY>j!@Qw8zK>r!@D2zHu+!}u}x`;%M{-FAmUpg#Jf^S zdyheu1_N2HGvsPI7I`on4{!`4K8A53fQK=L;gT~LUzbWe?zA>V`iyTTf?;x9M?9(X zRJwgnnRDr4XbvRuVwKW0wkzX?uwCXv%uwm3?QiU^I<{BJbstkW>){MTJP2|FoWpsB z3DeZO-QpB+R-O#c|AXrmQI&*-+Cf<vg$F#X?ohdNSHU%{V(A3>&piF-#Q@W|#4t)- z(<5spW9j!qb#rOL%wWaGEG~PPW0*eNF9!?*TycexYxC%(yE7l)Di#>>#0#|}<(gr> zR6Y`|-<^b5#-fJ`!`xAbed7Sv9O_8IU+WGbFsjLgKQInAc9(hve?xcDNIa0Plq>%< zJC?Tj4yR67RZ&7SM>QS^+thJ@n=X!k$8nanH5yd3T~joUY6&++7|IFt5zRVQD7f|_ zX^37AqomK1bcgm%<5w0x(dRRQkD1N5(`6@&?!7^Q_5s~-+6he3%5V~=dR|`iyv$bi z;In<4cIzH4>|>@c757p4<$Dr2^6{49ct_seV+J2GjHwKBwub?V|2mckWf&pZ4`CTM SXw6YsRdI_XpUzxV^!xzkkH2I9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralParametersReturnValueComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..e7b385404ca7824051ad884544668caa38b86ef5 GIT binary patch literal 12979 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 HjQ#x&nL9iq literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralScopeFilterComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/GeneralScopeFilterComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..48ef799e1ed3224bbc0ddb295340cd0de20be422 GIT binary patch literal 4864 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..df9d030127b6417dcd6f1d7c8597498853c0f65f GIT binary patch literal 2582 zcmcIm?^7E^7=AWMIY^EYv9;P_MWK)c%9UD0Nn3@G+8`+iG)Sw~&1Dk~FL#-{4bV@1 zvg7FV@9=YHECrqM5Act2eE0IhM1jE%Wae_ad%N%ZyuY4z|NQH>KLFfBSwo0n!}ThL z<y*ewj#0LG(UpeS6J}jnu0xAbRC%ptITfR1aoer<#&$`XZnft6mK45`TYp*;^V}Du z#f9}uYkhQDLxdr|&3CwAb2`0T+!m(P(8DmTR0`9!YQ8YG%iI)(TN55v8jaj)-Enx) z78{n_TJhY9Cw!lwM{ZgE=ncZVbS8k)481$t9+hMb!%(244Y4E*)AdBdR@&Kf+j1;< zmtiMyMrcmbpDZv$GHyxqfnh+0hF&##O-CQ1QH1fjju<X5gcEA(z>?*N2lZ-Ec<aiq z41-Iq$?XF7EH!T~MwEjYHqXYO(P?s9*sD7XQw^WBoEtcnK1i!d4sHcJ?~;REFP$vJ zFodfb-e$Pml{Q^5(eVz3Dcu~gtJ3klMcL$;TTdBQ|ChEC+}@U%j^RCwY8YV{IUZ4a zyN+uZV~ACRT&ovVdXbmY-KeOdIuk7U_yip3C=y6%NHRP;lS<Grfk~<cZkkkis^oUh zD$7r_Gg*jY3O6(u40ETpG~1%CjO&yv#V9Lwy<#~!rg4)YN?}+KWnQ->LpG5-eYPJb znBp;oTRJ|#hYWore#xy=gvW59Dc!frx3-POYFfib443|4#Wm>>wa(WqyCl3QW^r2s zRm%90iM2>%ny0$AvwNnfDcf}10nw1MDo?@U6{>Ef_umQ#<foX|FxN%N4dpsASYXhI z{pw=5%rKVdINzY{^pPTGa8EJKXABoRk2J(m=_-42Iu`LcL%+&@$<6Q9J>q+Y;RI!Q zC(PETtSzd-k%V{#c^wb1OngfnNH`^i>z#Uzh1PUuAmR%htI9>a(rw_1VI2hx56KhC z$(_;Bv7wAPCp^!k0BY3+2{BA`)#J&GMW(7EZ`VJ=wXW0Mwcg%FK@W*NhDJuV$g#co zzoDlC{eeUCyw;@f=$c#iOmWXrB!A`T#yq8bPE8@}m^O8Ar;-<P%Pr|JLH_MGZSMQa z<vCMj7sIn|p7M94v1^qml)e$@%+c*2efk<Y`UVjsUdN51pc1itlSn^OO-#=@j_@)H zo$xVC?Ji8uIfUYI)&GF_pz3~fuL;o;gHB)jX>^C?VR{dwCSKxvYVsxGsaF_$5p29j z|Iy$8l@Pwi8#Gr3X*(|AO?orDh09G*hlm8C7E-?=K5>XEA>?Uzep1a3@ooqQ82<(1 z`2$?v$NRryW^-~MA0Ob8SIE-n{yvuWv2uvD5MBgYhNx@Jl1zo;DwzTNK+vDj>W^gN zPZ-0`xJ&O0o(I@cgaBA*VpF3pu}PAs+2au&lO@9#!B_a2M&Hm*y5Bv~Fgrpjp3pRe UZ^7vup$1Zfpiz_#D|6}hHw>Bzx&QzG literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeBasedJDTComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..2aee176b22deb0816917d096c612f520fc137827 GIT binary patch literal 9585 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5f31223d20153d7304abba445cf9cb2835ce257f GIT binary patch literal 1237 zcmcIk+invv5Is&px7lpzHe5=%Ulu4qVhK;6BBUxRQc$20Ek*F=I3{)E*wNaH=uaUb zaT5=G03U@Iw?QDp>sqqLbL=_eJ)YSgKfiqka1S>l)EHjcVw@|doaZKgqxsPKT)vZ{ z^vW6ny`1vdOqp>$Qe4}y%O@i*>~v<G^3vt~-GiBYtfU^f-fuMPX59!4hIGQ;@?3L@ z-X2b*@DUam+JDgJr7?V{CBuT>S1#+)g$9+}XoFHbR7Uwn46oNK%5iItq0zG=*#yH< zf(VN->R3+DM9NTK4+oY9%E)KsbSR76qi=5ytl)Z&7b^I3un`1dcva0+vn~lzFG>?* z6>AaBFubTl_XKBgj$x4tA)U+aGQ6)${VJr|h;adzB3xwHsX(9vmqTSN2`zcCsrCHv z;~iTTg8C}7#@hdS>`rJRDyA(XG_|4`Kb3ypjuKoCd@DySEH~YO5xv08ko1j_MNf0* zq@%R-{xpw)rD-Ts`X|(AHW3rrqSbx!0}^*`e?rpvg5w_!&#VOOa3@4>p-p~5F#$b+ zlVllAA)T{4ARG2tosUSq;`C>n|CgpuflvOTY0YWsxI%$7T*WoA4Jy<OH)z!+Y?W*n HfttoI_h@Wp literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1$2.class new file mode 100644 index 0000000000000000000000000000000000000000..fad7c19b7fe5ffa5f3b1542e977db817c55d5fa1 GIT binary patch literal 2857 zcmcImUvm>x6#w0%?Y8N*jj@1I(P|@2QeYvXsG-mh0v40Dk`gEt^=5Ok-MHD!>~0V~ zk#Ej0BPG=tpBNteAbthk9M9cNO{A2m<78)c@4aX5J@=gRJO6(F>zCgEWYJU*VYutK zhGu%E=W|<YSiI)=ns_Aij&C|P5q;6(?Y3zfTHWN9V|ZG#?(0sg?RcgyJZ*LJaa-Il zg;n<o`_$xxWLCilL%hi!a?Rp&dcD>Zy02i2A<?Ja?$|c3S%P8A-!Z-91rn$<6p3;S zqYt^2Y%rV(ZV<X<wml)$(R9ZZ+G?N$?Hjvn+NOVn;fK_aWO=Os=_<oW!KsT0FwCe> zFfM0rsF*-3hA7@tF^O4*Xi9FKDVerd>$GaZ-3(2cC^<T}s@yf@x<?$5_GQ=_jz-BW z*)8gJ>=@>7O2In}cZLF^ig)oI!#LM<;d#mP3_lGEr1UUMm7B!-SWxf*!<;nGAzr8= zi4Q4$4B^Z8s+fk&{f<j<GMh@5`teioT?);B>7t61JTpyaik4^z+h5}?5km%N6f7}R zh5(3!<1B+Q6by1bO(_*wT8T1LPAa3RI1kDb`z}D!7sI*!pq)cXU!MQqA}tDNOY<n3 z+P<l4Mao4TE^}<bvFoOs1loP1;vzooYnNsCV@TS)#{F`KsUD>Ap3@yYJdU7yx*EeJ ze5T-2hWwEowYXoX{xRZ))iF$4#pj@e6r)hME*iXJ`3yx0od3<3FuH_g6<2VTVS?C~ z9K#T97?zT|XEiQ1wUC-qkY_mYa<pFSm{wi5F%(c#aGhcCl}Oy8(pi>HQ+%Y0wsa5` zH)McIt;&@AxIw}F1#T%={a2+8;ZgA=N(_qhGqFxp?{sPa)UX=w2iPF0F|1%s7MOL0 zV}nO}s7s&<_)5iXR2Zg6mWt2y?>AkpQ+Aq9rMCyJ>Hq3wB(mQM?x?8ZF4b9TEQDQW zI6HXHp`!Kd7O>b-abMbE+;>8`Ch;}CQSg8)@iGi5zLm<13fFZADMn(3o^T-d9yB>Q z(Nv&BnYVj|G*)psu1+nF>{{M_Rr_;JB2I<5XzLbrNw!fI{*F^uVPJ>IVRt3+-eX(O z*Gc{PFu)Ip(`!g%kylr3Tet;_d!FzxPwhaI-cdy2aoHaL@r3LSsIQCAI|-HkPSI?c z)=?T~GD}Y}ojLOq@ys(Mo&+0@(Ki+xAg96xj?-Emr0qC?w`e2<G23JHoGy~gMdoKr zcX5)2xP138&k#;d2b2Aud+4vbNOy6ri|mhBEOqh8E-wFym93>+T<hZIGn8qzv5U=J z+}p!;1Wy7nmdRNPB)=5&B*y4lCCWYI3H+PbCS32Mjt7C@$3x+Ig6FY-@4$&mjZRG< j@+Vdl6c&h?PJ{>@6Eu!cx6*(~vjoxRXq1n%06l*L&d+gv literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..48b5ef9a9230cd22c512f2e298548841fbec2166 GIT binary patch literal 4050 zcmcInTT>iG6#jZI%(6_(=CV;xG%=XKLb8I23K}H@4UtV^z#xex4ztZNILxdwvmtoD zM2)u>tMtj2Jmt+YRSCIRm1oP}VwL^^@#~odmdM8Vuv9HG+ui3o=X~eVXMg|u)@=ZN z_)bGi;5FAP<t^Xx1H;MB*v7OQ<mGv3Rszd)xERQJqg=L}Qod*zwp;S^bH%`P=gY2d z1=7!tPArz?OO~{Y{_x6bN3Vv2KxWQ3XXI^zvd5<9q#0;v66jS5rD<DbU*_j#3{&Ra zvh)n4FF$&s;yA{%EhnvD_PFPkJn8!aO~I_?cRWsO#~NVnpg_wx!|o_re%Uq_1$Kp6 zR&4Yag8YJ2EXlynABv7pqUkxyv4R5vi=7Rz=|4^AIw_DCc8jtZ0-JScNU66iI+~GA zBaUr4TCiOp-l>jm9<v;Iv@$;}y$MCIz}7L>H0+axXQ}Vi#e`y7V6qWDb@Y<AEm3mG zA%D>^hiz$i8Xly=2E?_ax1%?WHnb}u9u_#&kVw(1u9Io(#G@K^2|QAp-W#Njj@{@G zXf~ApBP=w5`#Z<hDrKbr2+E+<k~LH;3ha!0SjkP+V%~H;nI8>HkU|<d8^&f|8hepb zY<3GQG>Xl2ng4GG1;mU%`&~~l>Ai|0uzx*UAyeE4ta&oF(q0NK3)%I;D6&22XvOw4 zp1@NYo)j2wKw|3X$I}8S!!+66I-U^l8$#w_R~?pA&mL^Svl!GcAkbEuvulj2Q#zi* z^GsKEzo^Np6zn=(2RBN>G~3V%Iv&FwrD90OK@1CI9l0=GVW$rWd)Q*f_sm%~+Y|pQ zMs*Y`Q&%zR*$7_N@RGpp`kt*G*Kru5Y=?Al$hJchP22E&$v!x^-njML4A$i#<Ts61 zP|z?YFm%s3q#8na^A5XC(Nb69al2Bo934k-Odw4g56Ky$Vg~{vol$u2>GG}zJgBUE zRmTa8M^PSgOC{+EY_FpG_RN!W`Dm5d@*3OKTC*AtJWd7&E0$f9UK*2_((t;#-VIql z!fBwu`^p|UZ_2XrO~)ymj=U<c5R4LUC8hUH1vK(aoYin<-AoZF*YOq%0gV@UMIK{k z*i+k0qq&21umR)*Ox4QRRI{}r5p38ECNZO<gjs=2Bz`<F%(o{z4lLCgsKs2_8nNZP zbOKsDfjJ#-!{(^K0ZKa5v#(Z9UDK*`h7hF4RTQNHH?pe*@4(l<0A&=(wb9WLC})z= z^IYz0^HE<D=w4SecW;7p^^W>{Y@PJ_3RtZnb+P-ZxQC<4Q3b&AX|LBP!UAFB*JK19 zx{D&>3({VvpZz<tcz#nDuYyqyCmRi)P`oxT@5+OQ&jcQ>XMNP>G`zdk!#SJ&+>jow z#*2`cdn)sLpV7%sdfcseCWm)54YqDH$nRGv&M{=fF>TKKPN^V+S+}U;8#P$+{tB#f z{DmN(k2=n3@Hq?d0_G=)SSF(eQy{ZdjivnEk>sZZI(Ikm?Rms_64;#UzJ~j9J=c)Q zUB}idT#6yf|7kwK!)d&T9eh)QJdXSE0G}~+S6879AQA3ma#xZ06>U=ldT0rc+=(?p z>9HED%qkWytSZ*1GM)HaBCNerx$f)e+5qf0GB_K8?T7@bU=&3U_7RRl2=WoE_>(5; zguO-69w+pDH_&$z&j?HnByaa8;s-7x)0%AWE982v<G_WuXwN1tE&o+L*?ki)#!%>4 z6+9Hf(S1_`+U@?Pcz^OTo^I8$$-aR^YoZF;a=Skr?{B`0ZLKZY=DvYct~I5An?<%c zo4&OC$AzTGCbLbKmVdj9y@eY%vV`NmVq&Ui2`6vhjq8}^n_Pmmg!!8&$8d$70N>*W z_WF1jpo3%pko0Vpai8O@KTD72IW{;r!sc~`4eLC7e8}fTe*Xar_z{cv3Gd=6pEvP- z$lnQ-CAhW9-z`*dj@ouI6pG0h5vM47o^MBZXDw1bPV^k!BSM1fP2sr|(Rbqm>Wkqc zBEE;zG9E;e2BG0&2>$<+X|zluQ_-4+5e*l@oeRJ+Q%bMh(D1AhiVje8^D;BJj%YJt zD|$3c?#`s}IlhR3PhwOuumDv2e&I`$;7#FTl-w%i;`lP$yNIv&OmGhU8sGA*jXO$Q M{k2684&&k9Kb(D-9RL6T literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeFieldsComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..88fc6e52baf975ece605a6c60346965673fd5316 GIT binary patch literal 11707 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 I`Q*P}0GUIqt^fc4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeParametersReturnValueComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/ITypeParametersReturnValueComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..008ec88adb3f05c86cd3d3917986ed7900c570ae GIT binary patch literal 11813 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 YEl%U7w{X!!rk@y3Og%*D1@iF!0Y3Dr?f?J) literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/JDTComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/JDTComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..b578a6378a7069522ab7596637e22c54ae2551c3 GIT binary patch literal 11604 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboBooleanVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboBooleanVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..9dde5ba85f498ac4af631ac5cefe16d86f2b4ce4 GIT binary patch literal 1525 zcmcIkOH&g;5dJ2wO~N7?1w}v*Q3630e4z%c(kLZW5mYc&YqC4UiJP5Nc7pyE{{Uw> z#L|OD5B?~%XA?^;M6pT^yFJr0)BW|=kI!E|d<1X>cPzvheATKsGL)g_fwS%Ns?v^l zE!?)2Dj=m64c=_Zpyqgz`>GZ?bx*sh(Nv+-B6Mh3RjvxO2z0ZhcBCg-p;I#2drJ9& z2Nm9W+&i$4U^rgqJKXU(ncS$>g{v*380696D0R_&2f>h9mVwlF7~=Vv3PYl#Jds5l zeKstl83xKS5bNzmRkXHv)fWu8vU0gkkw~-eDHHmI3>kv*(Lvu&VUZ!TEqy;?n4zAJ zybITt%}_YuEA6=LP^*Shif$AS53WHh_)bXq4zzSBg@Gqc5mdO}7R8xL8YdapLI#64 zZDELE_0Vzu(X@>-7-mR5c=GISnc?C8LY&12#w?67j2WN@Qe@*C#u=<o==)rAhUt9y zM~QCg78QT-Cr!6#iI5D=<AQ}r2KUfR{Bsjg8cb{I(9kqxDsdk+6X+!y)5udrbI)TK z{7nQVfwPprMU%ie8<!2~ne~mW=MnKH7{_R*vUI*^(}1|jkgf?G<v;3`HRI{JjT=~^ zCJKd5%}ec*Uo%~li6+5QYI%n7zZ50IQ1`X)el0VG{!Pu@mydX}*JRmE)o!_BRT{ga z2h5du!wCgIDCtYmc#DywUZ#JBb`D8KGCBJW*|*WLP5)G+Orf9FcJ~5~VSsitrEr4& z=J9(n8Yj6@$mRBMs)MtIJxp|Pv5=eDL!rB$r~TX~3>D@&Sa<^~zKcYngKN7;7vdz1 z(>OT+CJ7bDa0Xd&(uZNvP7s7Ca=k>FWpZo)O>~|10Fis##H|SA3U1S@7>aaj6p5yV Zk*~CjTVS-bD19-KESaF&%XARK$~WtMuZ;iz literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboCharVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboCharVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..08a99739ce9e46d1230579906d4a97c4dd3590ca GIT binary patch literal 1854 zcmcgs-*XdH6#j0KW|MR)Sbi3%txzRpD;o+Z7{r#)(rRc+TY~r?ZZ?;)WwV>f-k^U5 zk3RaQ<CEs0IL_$!LLdB>oN@f_-8j_|wa%!Ux%b?2_S=(lzH`p~@#k;92QZ5dEMx?N zxVz;BNsuTnavy|VGghwrMEX4y#1V~3w!Ka#h_>8T;Dzy4;%>K;AGbSk5-6FtJT_xL zj+Bg4ryD;GTC$tCHEpdu^tuhNyEd>|$O#<W_8xm~=+WP5b6fh#LjJ!EA`R`=AO!MP zgD6nf1hVDnhCr?sw`2)f4BN0!5I9f|BDvCQH)VIzYlc!_v>y9j$V>vQ4~#kWFh~R* z)&DpCsshCaK^Pit1-8rPucaRbokY6H$IA74iHh59%^<4#kE~4!LN{ThBNg~8UepS7 z`5Ru?lhx@)0fz)crHCUqX5py7;=YsqOV>7zV@zOZ;r5;Ry1>%E6>$kKVcfz=fpHz^ zpHgJwWlRWIiBvZ{<q4cA*Z2B!Lv`8q)!$gsjwK;Qyn@pfP6_z?X5ycZkD0$nC7Pxw z-G+aNO(*)AjWZ~-oxN5|;K*|_&;>lp0-o0eoU!q`CcU__x_RFauaj}Lb*g~#gw1N$ z1sfMN%(}V0Fu%F5u0d~T8$p)|x}ZUC*{EvJ$N;qG?`{2t(02&EsG;*VuA5rdSMR3Y zZfFZ3i-cU#kR=<-8ZvAkd%oV&_NfvPw`{CnRiLmXmFZ10#LJq6+cws*!Rbz9$XkVT zU0&AXT{QR8daUPo;%^2<;Ar}_Z2f)&nBj)<{71LE&S3gW8*#7e%f&$Z9edtwcTN|J zq%lOUA>OzdO5QNsi_~07K{<5xDN0|P*EaXOG3GJCvz-F)0uE5)-H8{u^J5XyX_mHK zXLPiW!#g<P^f9@ESDn%6KAcoPXY@)Rv#EZ`=x_FMCDpGQ{aPP$sa`YsLLWC%{axxa zySP8IgZh{JGd_1xVbUq{T;aORHOIBYwdQ1Zu=Y7BPR_`(Gi2nXlQ;6XV;OnSDHvHW zc%6Ng*#aNp822K7C1yK}F<K|d#WXpnkcBI>&XI*>jA9Lka1V#^5gVh$@179-DNf)s zcEcAqiLWq@Z#dxJVFEwk6rSO<VRbTPZon!z#3u97rPxJ-J~Ft=^9YJR;fbZ6TqeiY K@6(vUy<Y%TALt_h literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboConstants.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..843c417a2172842e4e9056ebbcd7e9f5a7a46a04 GIT binary patch literal 2447 zcmcguTUXOS5T51Ima+&2FW?otU_ng~6%kOWwOll`KnwbY+jOa0)1)R_^lx!|(Bp$Y zz#rvtb{on;eDEcdbNWqY!+bm6&d&7L?;k$_U<S%b=px|wLCq4O2qp8ZJ(pE{Y4I=I zX-VOG=#;#{noZ%=tg2wHUkj~zRXTp7>4!q{&_c7~JH98mC!2x4FRDBUt(@}abO29= zN$4RkRA>9lav4S{R_ff51bXwE+gY1{VIQrPWPoG~1o{fa@^17(a%C%@E$6og3`Ex9 zO0QjftNi^M5538?(r#hf#?UDhB{I>Ov$LgA6g#q0xniN5T`QoQs+W%*Q;Uu(JRzSG z=*~>;5a`MIRi1(i1gfZ-8L4KrRWm!PMS_`;VCFHw%zp}I9v95ypIXdK!w6hT!YG0H z|30J!4?|YNb6JlJ3YXyuW?bX4EiHkG%t^f`PrCYmz%>fJkVwH8fm+Ndd%n!8tQGAI z3Q0wKi@;vYw6%a^jR%T#f<j8MW(a&d9oA05Qxy6X^}YB@%k@9E(={oi73VYo5p%kl zvy<!$g?>f+hyah7ScHX^t4nH@0#&4Q@s|`<@*(Ryg#pF77(c5Bb1n-*RmjgNoKdVx zr*dmMv@a<PD%w}^)2e~Pgr~DzrZA*vR|(W(E+;%$9BLir*A&h|g213HJYHxuDm*B& zip$kR^Bv~yut2Ei$eCEw(<BYuP^7R9!#Gjo2NB{muyNyYPhp&?>5|_H9KI~n9*6&$ zIcf&OIF?U0{yd;CsyaVfqpB5a#OA0GJC#Q49vbm7YsCAd5i4FJ)}Tf#3XOP58c{RE zE^M|23?tt;d^$i>A7-5Y4i~?|RpYwGapR`O+r}M@lg3?*_YF(q1LL8_$Ho(lPmKkQ z&x{uuvqny1-dNGNc7P;Z@CLtU@oEAlm%_gxY`-Je4#%)FWia_^T${s7w1gGCimMxV u(C=`&?@<(6M*!R~9$~b73sEJ|JM|3;M-+*+Q~wK%><!q&7YS_XFr_~>aO*|@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboContentProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboContentProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..8394b901883c18af58bd86ef1693fdfdaa333b38 GIT binary patch literal 335 zcma)&Jx&8L5QWDHWC;~5H-IK1(WYD}6%t5D>Am)3H7l>jTF(Z~M!^9%6vAF8DQHGd zZ+`T>`TTnS0DuSBHn1|lGWE!rv)YKKU^`KyH*&MG#9}IqHYJWddbUCOjDuGvW0K5D z8H?=1NmPoOCONaGDPvpR_Q!qxbsM-aa5LDm#bC?5r*0sp2DT>-VOcOR+&xwva)DDO z%&&@W&MG6e%fx<Z{|k2%PXTkmkIJqPMb9<U(T17!_eTTQFEUS#4jjn9?O({dO1m*& UU|n7YU`m2Z*i;2gsVlhp1~*`D5&!@I literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboExecutionStateProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboExecutionStateProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..c1a1221ced642012261d4038ac689f0d91bb634c GIT binary patch literal 2183 zcmcgtO>^5+6g}6Ht;SKCrmag;<FpC1wd1&gKm*hzd^j$cx=DvHnc-t2OE2LCS@KA7 z+F`+}zk*#ibj`*sEIO=M@C#VLA7L26eTuOSq;1C2>E`Ku>E3(JJxBWGuOA-)SVGf4 ziqHwdZA(Tnif!N8^6XX+TjGvzy0Hv=-i$@t?sTNTZMo9+g6+uKabqWFcY;X9BC>ee z3Y@@?g&%jqU{|^#jI5g4t^X5dLxs83KQy2dj_=sJw&mFzcD=PDoS2ZgCVd&N5VT@x zlc3iES7f1K!bBPw!c<fGVy)Y5iSQG<<q5)xX5iS~rX5PP?r-Yxmog%R&F77)N|@M^ zo|ix;d{ay+5RNB1k+7oMv2|Oz+am6hQ$2ivZDzu=B5s5qOUK%f?T#nvcRHbnB5u-v z=33ypQnjsG+RS1aCk>n++&DB5|H(6mo3wA!_PWBvDdd=VhA}uz4w&&<#nR_vV;V#o z=Bg?PFPJ!k8NwOP*kFx?zU?qT+ml}lcg=3I3QiSE&7qn$;*hn<@8(f3@FJn0;6Jtt zCT4MtC1<-XAy@o=AjM=Jb0+5T62Vkuup??g*JsJHQX5%Zz$F70|E1~uDohknA{e`h zy7euUpz)Ym%O)04;k%KDSMAs)Tsokbk@EIklQcRH%fu^ql`RwrFY%JjiMVjWYbIXD z6xYUa2OKLmvRD)6ejF$#oqLK_*?nTDw_Ub6;ft}GeFy;)(g|yXn`5UL;2qHv;V7@1 zuWs6%<a=S@ZNg{cI^^j<47@{Fd)B_l<2@7aqsDq+LGJ72;sJUY6<c30lemVuiR<`) zFg<GHge1Z`yJ=iH4knx=ff|JDM$io%aa}6Goqxg);<9ox=2*QN|EItss{t7v4PIIN zBz~qB9^lCLJV_zTqdEp(nB>vizrfF<ydoUK6p!lVUpbh1)*s^dr&lwNmebm@ejoEQ znVi0~R<87Lx`(snau4Tq_aR>9jfJ~9<@8+o-rnzJt%u8tKVxE{y!Zf1D!G;<pT`lN zXOZKS1x{M#`4vujmA_ysIEht0QH3o)SIPT@so51QC&kwB2Hs>SIh@8@{GNs?-z-7f z<1mH+GLSd8b;OeuV0MphYQt^C0{gs=@>^c1L=|m?v6Tx9q=$EZ!t~+~SS5Ui$#Q{_ z+{dxI8Wj}SdwahP(VS&6ff?pJ&trkVkh9#48U8@cji9IuP*eseDt#0wM*1NdeH4?> T|3sSdsXv%|!bcoDg&ThZ)rW0| literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboGeneralVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboGeneralVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..dc39193401a713ffb1a8136a7b0be2c30d667e78 GIT binary patch literal 2364 zcmcIl-A^1<6#w1jV?UV67Fr4jf<k4tLm58GmsDik^09ThP!?#bwJ_`sFfco_?hLf` z`}4v0;)5?fn3$MoG%?Y6!03bV!T8|6WMVw$4pL05VqzybbMNom-#v5gIp?1F_4gls z1TcvA!UzdiPGwUwUDNe+TidYob;r|;J4RvGGaZ|ho>9`vWz*i&il%Nko36H9^a@U? z?6{_9xEf8@oq}U~hV7Lr&YoE`Dz27h?W|!N72R6VD+>n;VN?smxAi?;vve{!zrJl0 zyfA77%!lVkI`HmKCj@FQnzrdp3RESMD+1MNr)b1bg*pXcL<H)yrfuYQOY25uNnf`N zfrhM8kS8%2A1JH6Ez=dSvk%Yp`$IS(5Zy2>OGa2=J0ZVr6fCps8k&3C(+az;=ajUx zWK102xe`Ue(p<{7?U@Bip<Oh&2v&4!*O*AIM9?T8`lC3FGhs9d%pCjN|7co4Gg<^9 zx%s8l+;TQ6F!z5s9mAt&52H<>oqc^^loULM4uP<1c$aif7wAc3?^S8ut5E$<9MJ@I zOEHP!add_8gh1ig!T8Vjh%&*q({nje-CT_K`Nju*Qb7+ARMdL0C~*33PQW=lM>!ne z9QG<W&v6fD@-pmv6peM=5eyJ%kV!)dF398%DV<H_^UNAyC9%ecHN>o^6ihHn;S?Ta zKCNJqJ&y8%+#kUd?Yh9bo>h>Rw$t;urBo&-ZBMh3Y|j#Fm{}PGmk(_pWoCJSm^osO zFmpk{Rc6*qUtLaR+0i^}h_XzSQKno|aGfdApF`U7tR>n_qKz@_mV#BLg=ZJ1Q%lo} zY)fYykqSf_XOf{{gGnb2NUMkTws?i8+XA5hd0#9ACFxpr{#szpVGVI!VvfuQW!Ga) zo#foJw#WMJ7=7`Mg1dN`Zpx<N$xA64ScY@|s)E<>I(0VJu&AR_PfKLDwMAunUUayJ zb^J@G5NHZ^8^yogeL7>_(+fLS^zuRHi{+i&O2L>h*>2kdntdNvDMgOFB&nf)PKZWo zu=I`+(r6Sk)|~qev2W$FLho9sti=hMD**wIpq>!@I&hNSv^lgxMyp8WsSOQ2PVJ*r z_0hSHvuZ=qhZ^8MiTiyF26$NFQ6J+0z9{iCK2ia`B=L-oxd1;W@f9EQ0bZ1N$;V27 zZ%F)tj~4^HCh@wDVt_X#Hht^_*p|5LqY~g<!o9!X>)w6b{)!Gr&u77aIvUF)cS+tR z`GDjjl21tHNTx{ENVZ58NUp0@`*`IGY^c?8yrtI2aYe0_V@?graYl{EaZ-&33&UzW zSm{;c!BUqRk4jFf8js1zNi|+4ClUD-&Q%rV2KXFFddDaub(9+gEtIuR%2tx{)lZsn z%GVSckU=APc?vhEir3Ht6KCjj&2+jJyopx4PbK^z+VC;j@hSD<FVTT-$kO*zK0l!g zKjW;3phv{1zcnK%I;o8%po)I<iZPrQDfEfU&_o{n;wE)31A}4*L&C<0a4{-tsWYgT pgIc1>!5j2#DnOdOMSg^2oEuU9n}~$v6XB;OR86FJ=$IkA`v(e@N<IJp literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboNumericVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboNumericVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..84282872891655f5125d1526291c9457987b8dfe GIT binary patch literal 1863 zcmcIk-*XdH6#j0KW|MR)7@&Z*wrY`-t!yZuU=XRHrPa`uwgmA(+-xp&>t;8Ty+QvB z9)0vp$0yB0b)3=Rg+BN%Ipg@<yK$<6Xq}Orx%b?2?sw0g-@p9!<Ie!*@u7u`Kp6M7 z-5?1P<wfrO&}+rYm7hz$uYx$DP|1$h?FP}d+YY=i-cH<|w({dnH%<a26PL$U?8lLk zk?Qv12SHo*61T3UtNo7b1%A`(tq(6O<OB}ycn>@`^r&*JwIh9HAukX-J3H#Bb$=Kk zkiQZ{fx0S?t;{wBa`m_^OUPo>hJ}K_p+*o%THlhrEw2?yfpR1Ey^x*+njZ>t>XRT5 zh#Jq%^e01D6DZyf!q7xmV5egKF8wg*CelqlQ?B1nRNQgv22ne>aUDh>bQ9(~Qi0DD zM(scsLDLKSvNqc+;D~^z7I6&6EsP5+9oX-GRBht~P6~`H-nzZe5Lo`dEH2?iOj?)_ znAC<oHAFUE!jyoONOj#)p1|o!W4}Z<RgcAA`;#OsS_Y(um+`8FR|Nb6N8&#>5!0Ys zQzbe~GrAI=uuVJqnvK(_u%f+oTj1E=c%Tz_h6y~U6F6t%bshBL>e|*l6L{^6tEDpq zoFi;r!_M2dpkdaHjm3qn#SIO5L(2%dM9_H+ddo&lgT{uSeSL518$#b9^n!*i*m&3E zy0LaA)plJ=2w5WJqJ}KnSkaJC1KHR0zLw9Fh`4EE6>9>8ZK+Icnm%69QMhGe1DkB{ zM1~wJZ0*X5?(m|SQX8>u<*9#Z7=iKhwQT>j1?b_X^88P4dfnjwC~e05o-daIt#{%n zGw-a<7vn}Nxkfm8Go+j|+>7K~Qb9U$=6jUBGuJlvyb<Ox#<QIQ@Ei`2;{?U?-1%6< zRGOu1&ncG&IJ%1$oB^hHamp#r4&bExS;JQcm{0kOhJSN_%PD`w@K*=8mhyGOFAi`c z<=-Pew}*RkyJ&pFpYgk$65~#V=PK7Fu4`P&T<cDD7wcc4>f{WqI3tEmJ9$G-IF_M@ zor0kSgV)|?=`HXPj&mQSk2bv>!%6x+P48#PRq6d@l=-hCEQzC7XHDG2I6mf^Hjxim z2wz|VUt$tpv$wy+6n^0ApO}P4n89P5GEtpQBR7mHV~8#KrBktoCiP@+hvzXAf5k&f Pf4NMK*B?-r!QI~h*01bY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboObjectVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboObjectVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..83d86aaddbaa95658e0a67a19f2d7fc54d025597 GIT binary patch literal 1723 zcmcIkO>YxN7=FffytcD^83><&&=PQPU_<yQU<yec0s$wfYRDC>*F%`F-nG1A;K-2+ zQZMiqkhtMPD)rD~5Bw!0#51!&1@X~TDwf`vecyRz{JfuU-u?L(fN3l`$Ot@$d#j#G zRHFUJyBGScSbOrZ4EkEd5sg}Q{BBo8t6p3AVZ54nYi%9Goo<{cEfbHQtvHAyEhF9S z#Sc|m_7bmdtjn!68R!+i_v?n;K~7-%n*Y%ELZ2_D00(&i_5EnnQ*s|j2;?uTNa-sA z*~-L<K&~FQWeHgfyKqnt*w#>yT<UjPvUl5Wg;Jp0hyy>QC(7s>#+<&d5`j+R`%(Wa zf;EBSJr#yFz5;6%`{yzURX34d@<@9@Khbf=t6M~E^V~WNLg*#TcBECn1V(LTN?^qg z`?5B%Qov3DF;&EF>~Sz6Fu!THzxlL_z1SyESX#b)cj-=}A#mgWB3;4(j5;_dFlxAd zHA*fH;jn;{NImCkU*LG9@lTO9b&u6w`^b`Jg)u4O2!3?%gFvw9VEpGUVkS&)>cm9q zsHw%zxEV)}xj2prYuazO1$KYI1CzrO%;9O1!$}t>P28P@rVYDs#WS{}1)L^m+JMfu zIBSzbP`xqRY#P*gV<hSVQD+S5l8c%_xh91lBY$>r#V{_K1AD(j_>7BL{KAZ{O3nrr zm+iv^<HMYbYnW$)CNkvYU~5(uOotZjkohe(t$6rfDqdhDy)E0H*08{qruKsei+*>b zflJM}-wWitGVdPv^2j=6f=#bUk}|}>nc>bc!L>-u<1V-lo%jQ#*Y?=unzzP0w(#3c z0oaOd)HndKgDWqKaXy-*?M1a*9$?ox_E!fOTgP~{JTX8u)lXS{YJllfKWFuy2Dq5& zm#I(wjpfO8Tz$pI_`62QQ-lnTYzj9j41RI}@-zr<KIXZO9;A-iv{=Ivgv=f;~X z*#q-r43x-unCxBbqhDk6XM!G0(Q=XJGbm#YyU@i59%B!luv(uI`3(E<J4W%GO=hAo nmU_Gq4f>AjxM3so0t>`vaFeKEIB(H)94D8_@$eQ+88qGlhQiTQ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboStringVarProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/combocontentproviders/ComboStringVarProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..791d5664dc53e448785a0da7b700b5f7c122ee43 GIT binary patch literal 2051 zcmcIk&r=*#5dIzuJG;w7$R?0qB1nh<1~Y{GG9gCDCdle$Az8r0U&-w307GVXwsr>8 zlODYImssU3d%!9W9<7w8RORB)qeqWcS!Mb48;n?qidAN|-t=_8uY14O-LJp@?VE1_ zOu;wMp>RKJt=WF$N3qkeR|BUS#<usd=WfP+*q|}?>Q1xiH`eT$?*!pmWN*}BH>@|q z$dA3q=4Ul@!$#~i;$|z{@@rlzvI}CZ#4Y-*IIYDUyMa!H-VJBVu>*$@7pfbc8yiR~ z_|K0<AtCn%35E1!zv0JM6jGyOD+-;3u;%5ELbnM68HJvb-|)(t^{Urea;kx+kS~R< z6YwOy=sU*Fc-@Z_>ZRvL{izI2D`Z#wAkg_$*cjD+?zw^Aj66H~D7M|rC=Tm(K_jO3 z&aKWQ1a`z~H)7vq0UI@6T42QqHofVwl?)CjsL3q)aL7Qv!rY#Z{g0td9L5oaOnG7H zZh5&>Qkeh0Nat`20|s7H7!a<1n<W!3VNk({y!e_EI|?U9OMf<LQiJJTmZWW&lPq4w zaRb8&?w*tJpKlQ>A$K#5BvT{Oi%)TrgT7+oBu3fOPOYZU_ly%r4aZr-(^A6;6R%3% zjbcToU5;XlZ6t%!1WgI(jES?lI0O|+vz3aV&Wn+#*N8eJs7ofM1!YPJcOzdnaYYzs zWkdUCFhj4i;&s(TLA<)I-&~$8N#N^ZVc<6jIVX^!iMIrz{hz=}VkN9h*m;31nz*T1 z78c4&v&FJzSrH>q%S2re)H^0_KVi8W`L1k?<Oq4+#0U70y}0JZy6yFZC`xwknQ&0$ z=!m?4Ba1_0v?#M9tH<B1P=>_dzuZNI{>0m>{q=S!?5o6%d;f;h+!-yoO1Rl_y*Xdv z9((pMJtb|xw2>rN7e{&rB?lPaS!y<=qU;*~8o390+vGc~jcM%Tx0wL&0(z)%G-E&C zbXJcUG)38K<@0SE+{RI>jiGIvu<~PVSc!g0>yvFvCHgt7UuffEqF>hf8*R)c`ZcZ3 zwK1RQZ)^QV8w-hkOY2K*tR(s!>J#7Li-~Q#_Z129`7{yero6|s&Ly_pYo7WHSCi`# zu0^ifR%#n}zr<CmQ_D+MmzGmjTFY_E&~n(yXnEA?O*Zyhy~$2SN02<Gm^WYx1AJ%s z%Q0`=I6~_XvpU9XPBNbtX`Nv{i^!9~0o=hsGVX(qelj~mW{2?^y*_7mJ!Gs$96~=} z5I-`?Pb}-t7{)I+t`u*OffFjn%iY81Qn#U`Ham4=mEfYr%E_0<m>pOpst4V_;-R6R OOjk!I0c$jOVEuPu2@IbA literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/CheckBoxChangeListener.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/CheckBoxChangeListener.class new file mode 100644 index 0000000000000000000000000000000000000000..4a8b0fd66a00ad97176c79bd2dbb26237b27a409 GIT binary patch literal 1752 zcmb_cTTc@~6#k}E7RqufS49-0Lc3g6QPiZyL<%Hov5AoSh}-Q@7Pq@icNTc`Kln>b z023dK&;BUmnca3<DZ~eO*x8wL`_4J@o%#Le$4>yOc%dN1u;<n*y5(7(FdTi~HcGD0 z`3X0DVYv<o1+N;ln&njVvSrwA#nTVV!gQ-O*RurobelZ6!|R@&JK*N$b@wE9U^o?? zZ^#wI8HNsxBSW`It`|y&+!PAB8PXD(o3>T+xb7Vj?h$u{r|)o^ObEUigFz+GToaUG zJAcir-)`(i;j#?9!YJAN4b{pp7sPH)>)0w+IOVn5G$M~aGpN=V!gUyCuJl<CEXbkz zrR7-S6~ou`jV6C3ax2>_O&ZB%iVX3bTjmLLVOT{!k_=txOtBXXqbd~i$lbV#UL@ph zQbiwBhQYk$@b`YT#OnbXLo)B0hFvu3mh4qS7#9bY$6#Ey?*CDZx;z%%)dt@;d|QM> z;$;RcY<l~xUL@P5Bwtqcf^mk0j;391&oB@|Hn9?z!$SorhIco}Q5Ex8U>I&=-RodP z7`8e~>m+PPHBFO<0zJquByxrA^}^nVLVh!WMJy{=Vwk-+rcK|7VJcRjGbl7A8-_3# z=F|Ds#P5hYJs;Ujn<#t)vI-tEOkWId`krvBdX5IP<jQtFQSlUOL`A<=ruQfs+@fLo zbX8wE8}LsELcZor97!Ov`TTf#034-3v`g%`e%<6-mQDFgUH%ZR$c|u^#;1$ETeQaH zWYJR`lXDgPX{zWi_5B#2b&yUr>ErYt)xKj$TRg*vwseLuZTSon-vY1Ow2o6mV2CV} z6m5jOM`<0y9g=FHKc;Y(P82D?Wx-A&$AX>2mdMk%*Fat)xzw>1OgE{3$sp`_sEoog z+{X;*i7`=#PeGYLN;{>zPbuwFOq}CE^O#JZL;HnC=UDyNLKz@0P~1UEc#aa1MTBUn O2rU(%JtJ)l&;J5_D)dqS literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ClassOfListener.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ClassOfListener.class new file mode 100644 index 0000000000000000000000000000000000000000..3e49f92985a5e7d53d40de6f1d7996d698d2b2e6 GIT binary patch literal 1644 zcmb_c$!-%t5PfAkHZhZh#11$M5VkmzWh4ZrAS9H4SPVHNvQRFlJ#IT4jXl=PIDs1{ z{s+khi31<NmH$Ch_r#8qfQV!c(_PbD{obqUs{Zlo+jju>v7SMK@YWCNjtW&6iKbKY zM8%IB`Chv1Ncl}(jATQ!TB=!hs!Di%J#-GLk?S{FeyAcDIv$^tO&NsFrYFL1yH+}0 z$RI_SJP?P%@dO{=t{g}=${<ZBYEJ2TsufBnJYvE_*^EMGM|$kSygdwp#cZ2BHp1)D zkaAyc?e^g|2&0jxc=81YNw{sW2W1_pYF)Cf-JTPl7(WzVTlO&s?}n9R00%N!K1INk zW3|9<JXbOhfxG{KKzoGrBh^&VW5Unku>7Y|a)BHS%lD6X_m<0q)TUpRStK!SVFEcq zvbbCx1!2ZQ2A8yT&B7?M+M2a+8J4!@EsSBDFi}!X`KH~d$iUnkVXEZ2!YhkF>AO5$ zOhx-DB<u|v(O-LjFE1Y#(Uz=<wim?}E~^APzPG`0JKF_MbysZYbdV%0ox7Sp`*VrL zls&F2mav>bk?`t2Hjf1xD_omy-1SdP-x5BZ59@pv4V&+aR8V%uZwIb?raaDF?#$b? zuAe0=a>XS18$k*QT~_=oCUjAmnM=ydTu?k~zX?q8c!mEyvfl{Lv-Vd^*(+V-?bR-> z+G|}D?0l+=xzFb8g7!h0$4TaxV(e)~%kh{;0W-MHI}c(c+`vu#)Bais8B1$P7)z^3 z8cXX*@%|!i9jkfB>)MM>NYe(OU<hX7%{~FYbhyL&gu8u+l1TxOvpXD1hePRbBpu9s Z!MzjISj;@jUl>5n^^tRZ<W(bS?KiuP)xH1# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ComboChangeListener.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/ComboChangeListener.class new file mode 100644 index 0000000000000000000000000000000000000000..c80aa56899caad1878043ba91070e39f6b953bee GIT binary patch literal 1345 zcmb_cTW=CU7(KHf2!#Tr7reIh3TT|f#HSixXnj!B#5VNBnCxXrhb%jUouxkdmrSfC zKKKLtQO0j}VOwcZA26Glo%t^3%=hh?{q_6DPXJHxAP<Y-gBtg_3}vY8fFJp`qcj(v zgd1t80y1hbv_~Tu^tmT(U-d&i@U*LjBNa+5Lhe(h2*fz#9W``R=hzPVqB}L_k!7e3 z?1{~Nvh#P&K)5=O97EIa3fGsTQ1I}CNGBrDA>S81g%I})gP}llj(V?r!LZq#&vT<t zt0C{i^g9eCIv=f*^D(@M6Ba1&)$TzGNAS7lGLZTOgKGX)<bTxF>M>+H$`eIoP$^*v zRfbHn)hmEurGz}Ln$>Cv1r!-7T^WeC(a;g&1KTl;Tj?s-_IvhNn*G$6)yFbq__$~# zmx_Rzwss=DzR<hk$c}uSd}84-w38lQCWAdAiyc!wqbeR=Xw$rGl6Z#YgmT7J#3r`$ z*kX9Spy1Ezp@ciQOI?pf9$l1FCOzAa=&+wJR`<79TZ{I6Vu;+C*h3x@r^lei7xz^( zcEw9+B+www{0)6#E+@80IvE;QV9`Tbq9251ltgc1UqXrIGVL6)XXw4!{*L7~J4LPi z*i4U3QU4NWt<k(rNTB#EArw%-GODPfMs{E;$;Sp7v?HXLhs7(yY!TBnT%YniBfCX| zoq^}bWzr1Tdg4sM7;fMu`5A7d5PKA3Aj<8psMDx@!|lT}xMJ+wpb8u3Aj>IaIfcAO IAQtZb0l+7DRR910 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/FieldButtonListener.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/listeners/FieldButtonListener.class new file mode 100644 index 0000000000000000000000000000000000000000..657313d5460bc5fae9a5d2c4346d0c41441f4598 GIT binary patch literal 1595 zcmb_cTW=CU6#fPf1h*~aT3hc`3+rVQ6Q62Kw6*bq`p||aqgj>#2Zvq44%9#34>A!= zeDDYO=npcUnFWf{XcNq4E_=?*_nkTCoB96p>o)**V5bmccop>9jtE7lT;FL)w-G3Z zzvtdSiNGhL;$64b6Moxi3Red0(CIXl7j%0;C=?GJNjtgE`=PTZxNJTgC>8j%u`z`N zL$>1%T}QeE@v_n3o=PFfP|>{HlcE=LCp;w5A@^12>~l#=h<k#;U=icagpuKSZNZSA z?jB6xwi%XNI`FB5;mx81Lst&?OpZ)urUXQpR&GP`CzM-;O~W>ui9^wBb4ta*WD)I1 z-V?r1_Zfav7LD$=<DY<hQNDj<qgrQ3>;z4oK^&_VmXKqJSE}_i7z!5B$mm(g!Wme4 zwq_xP(+n#$;qw=RZiDwtrWkUyz;k8Y?F*f`u`!|Eijd*;qR05F(5XVjsBF8u<qo8Z zWXzikc2uz00{<!XM_T&ZIuVRBY|Yi=`1PdRh;qV}!6vSyaFyZNf4m_Uu49XCadb<h z@ZLQz_mknn{K@8}yJ*@^pq|WrFz9=HPe{t%+A+`2ZT$k_GHEAH?G*JfEg^aZV_IHj zByrKG{YzM;eue%d`4co2>@UdLw?@d@H%BPiH%2IbG`r4HUm`@%`UF-9El0ca^cAp9 zRy*2{4V<GtLNdI}%rs-n%ybNz`8+O+neUQa``8gpl3YO9z?LHC6qey4E|H(nAtw-z l%`riNe?pmBky`#Ut{fp|49Yr%zA=NEouX!^s1*}V^%vrZ(OLii literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/BooleanComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/BooleanComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..64a44ae885b748779f3113fa0b7a11f4335b0363 GIT binary patch literal 3011 zcmcIm=~fe09RFQFvoIo}sEGRpB$%<Zb^&V3recG(MzPujZ;~+#PG-`X8y4;M0DXc! zK>gbG6zD1E^a1)XeS)5z{_e~W0{FoX<;&#W``>^6Er0#{$DaU(@O=U;0&|{UG3~$( zlyuFfjx2i0w3e+>UD=+?M`cxIt!BFwvusPps|4mkS(UtM%?oU01?Hl3>Q>Wz-18hu zx)Ylm3A71(@jn}x)kYg81X6UM=-s1bfirn+%qlr{EwIdBNtva3puDO%L4l$-BCvnd zc5QWCps#-y?~+}vSSm0Z%15RLW(C?Nyt0)>E7}btkQ6wWw_WQ_y;`*V`?9F*cICa2 zbY`V*>wEmzrsnNHK!$eq5M>=zP5PFr1TMTrPy+h`wW8e?(+sBMTTFB#W`WlJf!PF( z5zU=oI&#IUEAysrmnWr?X&gn5#-uyNQ?G%OI4p2@-t+C}o~xuY=GYatO2;()w1G1? zE6`K%WpQe`WCg*k24|rrOWL8wn)AGY3!3xT7U!(xE1M99e46Kyfy>(3p~aZeu$4f+ zz^R?CZ>xhe`p}+&K-R!M>`&ne%mi`*=bFXJzFZnAvl<-Fp9uTGRe^!4c!LNo&9egp z&hEmSKG){$lCC1kjc8ME8h8uW1P%n28kePK72m77WhQHP3GR>{nAP&{7<d=&Me_MD z1sZ*U?*9COT$H9G*`arf3sy;u=+v<wwgsa5pec2ciZq7Nlj7&Pfe$p2MpgP1+r4Gk zm3by?7-I&;HK9EsJhaPdK26Xj4NTz%8;{{cx?UN|W;aDFbS#Nm0%anci<==AjhtL# z<iyh^7f+kqwrP{wF>P`?r%g`zb?ZT`X8CE{Mm~X$1cr4&U#s`3tVdblP@9Pl24--F zQF0^{l+Ph3aJd=q=y7DADF^YB&e_KXKEXXUlPojS+cLE&NI>ojSbGS_Q|Sboi1cCB zz(ah>VG&pkONE22Kb&vLO5D#Zn_cDHR5!Zl^sI@VUNvi)nB%MqBv>W)t!0(Q9ApAd z1Uk2hHiE)H5hd1{^77u2<xj|fopq%D704z*ir!j#SwcxL)lc@&NSGGFuLz6Y9Xs(L z$OoNGBqE5|`~}6)F(Yg7c1f@<BV7C78t_o#Fx0ggCYSqr+AUkl;WX!z*Ht{_`<@@r z;3l$M^NyM4_NT#AfumZgx=(;F?_wC;?c?>41Qt2%L+3+HW4<p}w7N9v=n+UW^HZ)~ zi0pv2{>RZUdtqQ1D|(&22p17|4_OOd-7i@;Y`vAbcQv-QfpZ)^t^D&sU3zHqw4Y}# zWPVe;O_QqWiA?t7I?})J*aCy!G=G6EvLD6)p3X*W=)ghVD1c5Jq7r@TB2Nnq96@)i z_HP=~YSjjgK3d1|d^WL)6WO*^oYJ3j`g$?5fxbtX&g41<R*}j4hRm-RT*Ht)W!Lcb z28Jm+Iy2b1iud*B!wkt2n%s5scTBJ0Zg?(iom<!NU@L}k`Uo6ju*Vrg5B)sBTQ4{6 zNn~(}`{gu7xnCz4-87-PgYzhGi_YO9p5YP#Zp*FMRUCT~4j$n#Bc0@0`wX8mcK%_* zy*TzCc-OIK8N-(|gI#61_Y*p_tJ=MnI5ODvG<<8<Z*8&5ts(3u!W?A@-yqFhq0>1! zWzyZNO|E1cX~<$8HVyBis|!4}&~Y%cE&re=fw@kS9F$_u?($b>?6|hOhU$-K550Sd zWa!b)q(yG%A_1<2CXGlYHmTL~Z*bQnwUh7_eA*27*a8(+)DTZvIJtp3)3>CRMkN&~ z9d1&ZjFk#q-IUT5d7Iq2^g_UT*YG^kyN<87lG+i1JI17rQ`1DK?Pw&?K&1oUFr_-! JZ$s<f{Re>`CsY6c literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ByteComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ByteComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..a22dbd7e3cc7cd9e4c6d4eb7ca3edbdb7f01eb9a GIT binary patch literal 1609 zcmcIkT~8ZF6g^`b)|drS2S}Py2r*4;-0rqX)1;V^7L-Vioc4hzNT_Nw*b{fC?X`Bt z3FNi^g5Qvb<Ru|}=nv>`s;ZvxF2)2NcxYv5cJ7_~dG0;_>z_aV1aK1@4pIU?2Vv9K zk&cY)_|IB$CosO+Q}v$FL5E7C+Opf#ou=Q=vK2HVf45=kLAx77+Nj8XE?Ye{B(Luq zwQ=<9AoJg6c&zr!AcMf@s_tmBCUB!zv%RQ#OLrsXM=y;3LN}VqME=0MQY}3Z$ZP}+ zl|ve1E=DjaFjdnX^<%HSqr%5>r=<k)wV*CrPh_aAoG3HqR~-rb($DjMVOC*FT^Xv5 z5h$FaBY}~~?Aw|}m99Fn6A(xjOWQdJ%($4vB>{&(SmXqzi>2DGd@lW#<Wx6J$l+FU z_!yr!xFRrl{AMG$n8T+6V=O6Bap;-iY5&r?g9U+wW9Jyo2SM1D=Kfw?b?rj2NY=JE z<bS3aF__pivi{p6*-fw?WBvETFbFw-{80y7(w1N2?$TjwQ#U)(^g<@Me#&5VC}q;} z8k<g|=%Rq7aV+C=2j!#o2Z3FD0goFK>6bC6RSW8uF7mjT#Z7^y+&M4V1uy20H{ee~ z9WSAdcY-?J2h{OSP{->8#wv378s9j$EwFNKrnXfS$tKD9D7m<}gS&)?7{<+8h)yGN z#$H%pR$NrD%9WCh1{Z4B@u!_#RX3H=HaAZt)431_9ze+1%${V^e)ot`OCQ*tIVOSJ zX3z`k>VfW4^CV7o<FLq~r1`G~o+JcDc{-G;l&#)bF3-I~_6@Ho<ap-z1zZ|VV4SzB zu^BZJl<0s-OfiVPUBE}QPT7$sVI{xTe`5J9rVnv>EAy(Be$_Y6GW0xy*(7;ncwR&n z)0AhJ=u$t~Z0wvQ8>e)&-@!Fnv+{=yBar-9;>%~$rEtC9&F{R~w1wq&xKS&=M@irS zvy}V;OqKIr9pct|e4D~n`8CZlLq*IJlm(Ws$X{Woh(c1t2vdHCHKx5sPnX|V^F432 StSrReSai4z0zXhrVf|m~L8YDm literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/CharComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/CharComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..74ac4ab068dca63db50ab0189e28058dba0f9d62 GIT binary patch literal 1375 zcmcIk%Wl&^6g`tBb?dqhLLamg=(~A<4dvZb-Bch&N@0<zNC<%@$>2_LY|EbX!4L2c ztoZ=gw3G!Oz&9bpwc}O^Wzhv}X70VdbMBpc&iKc#Z{Go|U{ynk;guKImJDU6xNE(2 zc+FFmI1u%glAcRJC7Rs#rE6Oa$sNxQt=)#IdrjX9r4pgF$DNkw@HcjNuyOiXL;BxW z*b)cotO7&tnslXFXIRcvqPvK?BmGcV;l8r=Wy2OKw9e8?<@`27dc$i79X;qbkU=lQ za7DV}S*uwS!4|JMf+1V+>fG7pfsFhlm{vP7WOyCd`Cl_D(Up822v;%8U*JXznNS@@ zJ+m@HKi&695O@Lgna$-ZyL^vZ#HC|Zh+@L-uS(nHsuj?IrE>{u?E?-czN;!A+Dq%D zXi^gfvba2eNnF)1#W2(jY+xGKXt1GtPq;m~d|3y>4FfZnWzeXph&6`M(~6xHbj)K> z!ve!djN0+dz*2<U>j>9YJAKG8ydjd!WcX%Vu;!Uy6RnzwR?RN0nty23?9!^~dMXO& zDBz}sBE#y1pGH%JA-Cx@Y$k?*TQJ*fw8t0?`}}MZemX8(ibj0fz#Xj69C@R`FxGkS zd2LtJRVn|Hh9VN4N6xc6-Ywrl|5U;Yf8_p^aE8IE;`Mi%+)tFRSG`tH7f)sUHoE5) zafVr<yN7-&K#DASRJ3a3l_?s<wL)?F7=2&j1f5o$5&?q}2Qfg_OgoJtgXGZx3}Ki+ zB5MSfVpvij?V}V+VJwFKKvsmaTsX#frFeoX3?DI7IKuTK%%wkJxR_o3iu?(z6kZfR zQ)-$@gT$PU*9<{U64)Xp;x@+Ha7h~(%;7HXQ5*Lu+n~K2c|g`fiu8f~jHEkB{v+~J Gc>Eh+etBU4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b90ed946dd99827d22180b4b5fc6f786e94bbfc8 GIT binary patch literal 2153 zcmcIl?NZxD6g>+Lip>@%P5P0hDM?K*4xrHQ)+BBCNNQ>b4U{DP(=O7+-i(kul1!4n z?W6PwIzvdOoyi0Ap*lS)gTvU6KOK8!E$!;;-gECg_wGOc{`C^T$9UjiKtM%t-8G3x zQWd(70<{yRu70Y$R%)V<i>cmK&87+Ku5VNj)f4xzpL)@5GfGUV6L(JqEq!dh6sRP* z`)KJ1QJi;>6PU7Qv=^9WqTS>PZS3hVP25c#XwRCu<*R0@V}YTxVUpr?GOP8OT1DV2 z=@)l(*b=yunLAGLiSg^29M|}r*r5dzn)If?ucf{-dp(!wZGqfU<m)^H-jFzhA^SEe z;oximgLqRSk8y#)l7)`eOsLmeyE{7GQagbb7_UX13bs{j?EG*sX9F+b_1n4PJcBvX z4sJXB+7~FdgL*vv-4a=`lBrB@7jOX=9lS5_bDtF=@c}MTCCc-3l8N%S{^x%B)Z{O= z(liPy1x(<IgUi%xcU2upwvCkd2t|QBRlFFrLZ8{aTIxN%9;;@<c!_(DrKrMspeqip zo^W~xxDlB!&7*{}gK2>)-84GD&WRG&Fe4zIa#ZckISDsgd1hzxk`0O9hZ@?{8)*TP z_|$6nGl4UuYSrd^0$)gciLcuJY^a!G5STo{pQ9jjdJrR4!3_rs0++j~_JAdB;u{)C zqh*sc1NBT`u~(ZN53^8IUK7+dAWx6V_HV9$C9F7D7PxpC7u#?oZd>n%6P?;(wJp-_ z{7#~ZRe=K6x7oI{a?X{0vUM(4*;75@Ik}41Kw@TFpxCpa<60+qtk;1iu@k3b+g_5_ zX4Hy3ecRYJbH4jBn0u`D6dTe?=moq#!upy{8<8*ZBgkJW->>l^(xHwi)%1Ut+UoMw zD-HB;KgxX8{;Is^Dp?d|HKhHFxlX7$c2QoJ17l;h%>rZNw#nKRjywwdKFqfpoLk&z z`Py^H^2~FLlwV-%j|})0{|ng$1_;YI$GPN2!f_sN^C|ES-aS0(cN)rZ?M`_g@=v^X zfDhOH#^l49eN1u8a$NuA1wL8teE)p*0AJhb$m~A8<+yc#MLW$M;La-w7c76uXBeyW z>wDH;japx$(AG0b<+j;FN+du`EhDu+)H)rQz!dIcgPsoJ2c9*6d)VYN$Bw*(`+T$U Iu#WNfAM5&oB>(^b literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ClassOfComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..31dc07e2a376135d8b6d9a50bd4c54b2ec15a256 GIT binary patch literal 5332 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 F`!_8o4a5Kd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/DoubleComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/DoubleComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..737f69ae2ba0a0b3043f3926c6f57f5d3c331f45 GIT binary patch literal 1625 zcmcIkO>+}R5Pc&FuPm>yBW#6lFg74rVK;mw1UXK?K$TM>IhX>9qNt2lgBT-eRl6fF zx$-ag4IGk7fE@Az@|!3sZ+6#0*gkMbF0<1;-Tk^>cke$R{`woh1*|&A2|Nm;j;~`K z8`<|CcjZQCe6^*5q0wQVN~3ymFwp&u-`27lc4B|CZGx~j2xDzj>_3y;p&FBKgu{)l zTHQ8qP!M?dA7k86TV{kHFtM!r+N=nit+gzY3c7j_D?fg2{O7veQ6~0B=FPSGU4g=C z*j6RvG3jC-CIqHiy03m7_BK>>N3sBcN-GRx_pXezl{00*JkhbhuL;io$6Av`4P>PH zMquGHY7*ENn-?}~u_jQ|aoPoee69YV1c5mhReUMnkPOS7z-+DF+LX_v-<9m`x{280 zW(kLI#KB>KnU8O2EEh*{Okj#>#cDhJTy1xZ`V9vs1WtSmkkWc9jC#`C+zQmdjuum8 zy7OcHdzz7n^16}1)7x^8^<a`U+>D|yVk0WsRd8Ipev4B~hskx_=}R+=2ykYX!SWbn zR`v=D&!gsI0gF>u!dDI&0{fE+MuA<NgU88<^>2(zV%IFOU%RN_KoJ)N0?wY7&4ib3 zk~i9<Y>B*ViM&si$lI|*-i{^m`k_hLDd7^nad27S>Sym%PsOq9a8++-7Z=~+3TYyb zDFK$I-K^{}AC{b}E}B>-1G3%bV2wNevazWG)2u(>_^PZ!Gil%vjqFeL)6IG@*xs(i z9kzS6N}#kJ4x>Qb(stlycXDOBhIzIo&%Ydaayc-;)1kCR+3KC8#?dz@{=sVwC7vaI z0hfklO!0OyHKV3Xi4NG0X$G;k8GJ$OoNas-Rwgn~UiuTWZ*lN`;dLwjIx#OY^l=8W zAQcpnvq;AhW(ibHz^Vy&IRl%bbTX;n6s?*0PYxsSM}S4XoTe^^Gf6csd9!IREWN?m zR^uJ&0<Tb|<iEmnqjLT&F22KeIoxafPP4*T630l&am*z^r^b?4$da(H-(!WaKhV?V YH`V;en@y_-@gDOI=Rx2a<s7d63r3}@@Bjb+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FieldComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FieldComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..d82160d5b442e40bfd3837be520a2a9f836c7036 GIT binary patch literal 4118 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FloatComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/FloatComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..2bbb4730a27e2d9bfb0137004d8d8f0fb60f2fd1 GIT binary patch literal 1617 zcmcIk+j0{}5IrNwURhpaB3~fkVjCHdEV7$G0s$Fwap5XcB0QLaDhet!mL_7Hl~%Po z0+Uz%f^Xm<yoAdGAHX+J6lYdzTfRK-0Hvzg>7MRB-KV?t@$>r+0M29CK}O(l7`1#I z>)6PS|92qQL*uJW)#w==cBnL}ExTRaY57epgRm9*8%@&)+ubnMM#cV98T8bEyb^@c zEN{I#$O%09#t`?^<_?0u@S^T$vm|h~T(?N75$JBL{P>yipXp{xnb_Y>sJ2?UFOXXf zo2q~;MqCVGSYW)aJL=C~dtF8M<a(e4iuJG|gZnblR!)^U^F+r2e<e8IjkFqT>dHuU zj6mrtN)i}~&2yWySQT(|ob*5-Tdq7TKw!$nG>-6vR9Nl=Cd-xjhI}ghK(euGCSreU z1^kF(4t^pVJ8wxS7sqizpunVJl?I<G?~hPfaWEq=v*X^UbR~@1(%jl?sIHwV=E+>= z2K)~+BMoC~MmGMrBfBa8Bdp+76onC+P~574lN$JS4lo@?)^w{QO)nzAnSBO}1CVLa zODsE!vWpVtN3no&4ypo&k_xs1yZ9L%rzY0_GA?OdwY2`?qKJt+&I?G+otMso*Iy!U zdx_Hh@zVYAcI}V1XMeoi`{Q*&lV}R~4Hq5!E^y_mx2dh-Shl#MchZZCOZbB%k;Q)b zmZbfh955S}nkz19SY-XO+2l|SI^JF1Pz_V7Jmlo6v_FUYfwxIyccypm)bsAvUd`{Z zJ+M(6z_qX!HPni>vp%thDcds4u`gNvyMZUy0>eBVN~@Hu-dU&~e}nvMUNb20Ebt4s zG#tYyZ?k<fYQ`wh0f#WoAog|`KhQd3yPk%X{96C9h5s@67DpfCUe&X&67xJmpJXr# zQbdmD1oD`qJVl@*3D|VsIRzV~G@Dd#iq_2hw!;Yg3&1>IPE(h`nWUN*yjj@N!W*2e zSKpx`@DkIM{FfN77Jq$<3-53_g9p|BXqFpD;v`9#VG48nl?IY1rAZ7C@+y`HdySqh YzkSVh-fUWVh)<YvI1U0gC}(i<3s}Xdx&QzG literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/IntComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/IntComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..b81e8934440c04b1b54497efd4ef640b11b836d6 GIT binary patch literal 1605 zcmcIk%W@M(6g@4;9$6mSSlA{H;|DSzS;<U7LLingNnB7RO2EPtRFSY~OO4WwG^3hn zVViCKf^T3EHej;I2k=c4#c645%h(GqLaD0f-tPN6_a43b@b7;Bu3+6kO5pb}YWh0X zv5|rQv?Vt~<EtH2?;0HjyfmsUI~^S~{f3sUuo?SX4O0)>oiNr$#r`wd>Z$>~8kqI{ zR|gq^KmO+g57f?K27%#K9cZ&AaJg8snN+={JF)WPZR2n2MpK#CKPaeDEj<*-tcMMi zLmDG4hA=EJQPY9C*KKdA=z-j9DS><~tjpFz8ELC0ml^Y?js>3d@_Z)9D(t8uBNZ5d z!YLXO7>doVEm>44>zMcpq>H7;IS5R<n87&#hcH;&1g46m+LnAK{g&iNH%!FIR&w|f zUpx3pVDj*dfmBmPE@p9FAj_g+)eAmdJRYG`buce5f9T$a^L7}urMb0JR~@@gtdf;3 z4)~vFMi9m}jI954S9TKYN7%uwC<-GEAiv)OceLf#xVm&0+0e~Enr_4dmyQ{%4x~() zUSr#76kQasG>T<><De`s-s|8Xu#0cuabsfroN)<j)x!Fni#*O|afQpko%51i@cQ)e z4(O9G$4i*w9bu0533I$b=6FG9sORt_esXYCVCB>-YO6SwO)~RtBDlDQ>ja1h_FK0A z9mnH@y|A#XxTs*2y~{>}3pMC?e{)OKO{MghJFAk}oaqNX0FaZJIm)Ho&OV=(KCwM< zNCLTyup8CYZEd%F@(4<HSXksl()>pQPf`HGJRNFP>h|7QF3-L}_7%kxay)bV0xk{5 zFiL5mZ^oN3YIMLjCK$v@XD~_Yl%01HR`P58$Ch7XY7bvL%Dk+lU-rzi3_ZtSHc1{C zo@bH86!mE)I@e1!(|1mijZ$0ab#Q^!to)9{2&6ui_;QhVDO~Dx^EV}%wy^vLmuuy> zC<(m43^o4+Cd&Em_wd78{G7t0@;@}o3=}a(Q07^}B7cQ}A__?nLri%CYfO8So-V)r Xn_no|va%5GvFLCa1b(HS!fzh|nhc}- literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/LongComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/LongComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..81d384ff35aff63c8013984e9e614996fec919ee GIT binary patch literal 1620 zcmcIk$#N4(5Pc;Hw=B0X7~8-A1}}hQK{xBL$e6|82onMhCV(Iah_Y0OGE%pqy98#g z^A~&r2e_~u<^$%NCMI|#wS<g)-~gBE%B);p=Iej||N0MrGq~v>CGaGS>b{P3Y-Hd+ zZ^*UK_-aE{+eU{0l}0sXtEGdwU(>P?)?<IYW~yPc6~@}A*ncG(Z8acQ!l1s?dv=id z^%?G~4b#scFtnfpZ59QN7b><FRc+{2to-=3@n7p&U76VLo0nIL4+JtxVNK<b#;}VW z7!nw*=s?|VH`i2jU#>Njz*r@$%Ekj3X)7nnjCrABfv253zYDW6TWZNj1x8@@Cpr?? z5t}!*X0bw79oq>AqzlEzIS5R+n8aQIhd@~51jY-+%DQ|d{f6XJS53s>mUGyT0}lQW z*!lg<MsjfwhXjUMQmne6Ckk8ri?<yd7C8LfxeMoV7&WE2wNX_qyHG5Wg-#FnZ)-*j z@~cKxU*3_e1p6%OzZFGc#M$&3;Ep!@3Rjo*!>hU;NYjoO|JW9Tg@KGo$BXPaje?6J z=IGuFACI7flMYVwkmx6I;lbzf#QHDhAigUW-_tI}uqTVN0?)X9Ua}Tmmr7orN(qa+ zghk#a7I{Cg$lJssF9?lQ<ZvDr9Q-M8`KL+SRB<fp<msK{;^HDMb^GlCVd2_}&NeGz zfhoIKz!i2cYc=lHpyR!@byYRx;$tqMvV$U1c69^yA>^DUHxuhkt4FT6A8fZBnLute zY)4hKtP_?F{B1nDe3<4?()_`JC%J(ko(`oI%2w~pmkxeH_5-ge<ap-z1zZ~DF~ZxC zt{F9XN_4<Zj53J5?ZR$ar|ig+u(Bfq`T36+|BQW)GVdzscOCOALr*c7O)`cI&ppUu zobm({?d>F+>?F@8$wnw0>2xqdYgSHHO)=Ii=J;}yx)hFey7`+oTlVbyCmgSozF=P9 zEhZ_QdW+H0*qP5b_XU?zcvyN*v&=vdhX~3POR$M%28x(Xim<PXxXQHG=;`v?)m-Pz TmX(G057Q2}LEr}E6qddLiyWx? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ShortComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ShortComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..90b9118d5ac40f8eb714e4045c2503c3a751a778 GIT binary patch literal 1622 zcmcIk$!-%t5PfYs8ONCra29q#Z~!|75Bug2mI$OE0|!SzLLk(!8`Ht|STpS;aOE%f z1`cpxJMaN~6GFVUCyBEhIDjnmbX8Z?t9n)CpTEEV0B`|w4q^h&{h;RQP=`h~y_a>l z<Qq?|sY=^uze%N04cThxX3eW=S@&z9w_G(9ztQqTZB*#3$a-7#$mLglVCL4}9V7&v z{bPs)wYG^M&_AP_+RO@^&Xz2as?>EWR9?7hyj5MTDHD1d2^Hsaivo!`zp7G*W57ip z`UQqdx~U$u8%ru!kV|zXkS_TZSznZawsNFQm{&R!c+tW6Z=@AjQ%eS_X#_HVQIbGk zXx`YQ#k_!{!%hzb;@RBO6a>axjAK7vNQLE2U^JU6Ez1?@)g>ESHUaxvOyM97J2*r( zdfse1T^zwtffSPpRTO+IyE8(r>|jD*V$;1#>3u(FNONzkqFQ#Um?v|c?D5~#j5G|D zjjX(WC|eQ#1FYa)5cmO`kY2BWlUnym9AG*Oly$8sO*<gKsT~G0J&;k+vn)G~tcwh$ z1~H8@4)OwfIu&dLc5xO3PEDxaGA?PIx3r#fk;X_87X)5%?h4U76uL`P*jS=ye+tq5 z6t?V7VcY%`w(d{&`H^or>J%>Fii67nH~xC18Y&EBjf?s)y12NCYh;R4b~&(2?IdQG z0kQnta8bkzNs!elC#%=-@zS!Ym}2fJ$5%y7+S?7h!6aKWzICzQwAPnvYMbq@-QpCM z{dQ1M_q84Pk!^I@zG0HhiSsWGJh>a_=jl+Ir)>4kbpFT}BtP*QLyBjLU%;i|5C(ZW z-Zi6Uh!P#J2g3|vZ+o$i)-l`qD6Hhy`VUQi#^_fZc#`-~iht;sCmH$}gISO?5<Ewc z#3<!40`2dBjdz_Rut7@4I~AOuH8X$UFarMvFvXXX)WvYBQ_VZxENo`_3r?5v-;fh{ zk8w)gdkp8(=fC3OH(Zb5N&X|v5<N*ABPkP1VUoX0PZF6Zi9SN!#4KTN(bMI(tGUga TO)ClU3zH7VLEsMM81DW7<6*0r literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/StringComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/StringComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..f957cad57ef0050b4689301055273a9ecb0ee7da GIT binary patch literal 717 zcmcIhO-}+b5Pd~HR}@9`<U!*>P-7FX7%xN<65>U}$r#I0v1Hk9+9LX|^km|}AK;HN zP8TG`lLzf#Ix~IqUT5b0<Mj=|5jG0QFkEXh;L0lNM9gm^(bJC02N{l?(lI5S9El`R z@qqW0i1fhnVc&&%lxVA*wESK~WBDz<aE8FGFF*lVhO0l;xReiWuE3B#R<Uv?47>G? zSCV0*5-Yi#I6hJRfpnJ7;mvlV%aCp9z6`K{QW-hq87dtW%k%N5C(WhkMUtV~(V>XC z!YCill391BEW=Hz^M6xoQd5aAGIk6*zvzh}XWgU!HES~zspC^)v|*^#8=axJ7d#TQ z!Rc;@Jh;$f6UsB?OKLw>cIXSR4MyYfCqo|1h-`tPHf4Rju(!YYg5q-u2*?Hm1WE)9 zut?t46oxXED53%^qe3L!Tfu5dTgBRp_JD5xmSIoc5(iRAP?cvZPhV$j^yw6}{t1}2 B#S8!d literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/TextComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/TextComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..d57fb0e4a90a873a01d6d3109c8838b19066dbb2 GIT binary patch literal 2810 zcmcIlZF3V<6n<_Sx=FfFD708;fdXQhmPD!o(h8PRN;L(wP;3NrlPt-WG#hs}eZd!e zcgBB!f55NGNUAd9XUE^<sL$D5LYkHtKIoUb=iYnvygbi2=l=QkZ@&W=#kU&T6mHl~ zF>Se)>lu~w?Xr=xy|lS%=4+m1S9s`|OGdS7Rf_3?Wt8orn_et<d3&j9yOw9V>1Cr_ zGn@8T%~fym@wJAC!p;BK!@PKGxKN1sA&6gv0~v8<=F3*qHPh~jmtL_7MbmTBazCcf zF>X~X@2tWLiKnVIY>&+h%_~GE?SdIcJ34h}h$?httcrQLwv;oSt46MDDs*S;yiuMv z9831$VZ<w0uEH(f&;Nz6q*OH=v%=($JVQnb+gxu=VpcQEB=4AHxRJ0zdtzu_!(N5K zRv^p9nqBkK(~ech_+lKr=o3hKVwCpl=*Mn_T_xMG?%Ea4D9=@mJPSu|59l~3w_VGo z<5|S2>26TRVY%yEGMu7Sxo#D_lKgX2$MbTo2j`bet61{lAayzt7$Whm=>?%M_ovet zsEkQo!wUVac{LYE97%M>=pv<K8#<zRQ2}x|s^cZRtf0|lP-#7h%%ZVuq{{|dW6pD! zC|$&G5~nqsYQeAI7%QWN^rT(3ok_o~DxRz3Rh%IoD<w9P!l6y<6&<5mvhr^5-<ZTP zuH!YZdbcx<^G5zo(Xnfl!j|c`{4MFfu5hq5{U%y37@iTwIh+?#Ct3Ij)_;r#Q#vkU zTA`0Nb5pB%({(RxU|Gs3EAh?fcmr<+@ddbxQH2d?UCAw)d5>tZ+=_+rR)yOXRY;#g zTak$lZbGR^ReZ4_BA!1Bx;GO<0yzu<0{0|_HY-RD*L1vtIhGeyryR$2TsHV)Wsb#i zI>Tv6Ke0KhSTVes!}O1BQW)QC{p^^A_Y`*fh2vYAa2#Vz%*ByKpLoBe<9&QU<CZ&B zk!ixD*_1?A;aVJdm>PJrv$gni+(wbZplnu(UdjJwCJIX-N5)g(_(=r=KGhiT;cQQZ zvpuz8wx?QVdrE+7%!=T4YN_h2#c>Bq8pz}sDX(XmbxSNFqsRwjHWYMJU<arN?IfUX z#&8SLI`JV~4UWQ&C&&t@Iy}?}g;5}4Tb5v!h?ybBI|FCU4EJuF>uc4=v;Am`?v`Y; z4dy&H>8w!=pM*Huw!vy7ksX>B%0Jcd5k8jD@tKa#WhTVRGV7*U8~(iJh}Q5GU$@rg z-Pq#_@j1KZ<jsqg|0r#wOQ4AivWnXI`m>v4z)|X;%vX(TjJp}$%Dt8x?q5gzCyH&* zxyJbg_E5bC+bJCi)UX3x-0=tO#4Z{UsT;eg9ietlX!Z{}6SLVz=v`RHbD81xhu9~} zfGme(Ig%W%<5=<$k_*Z9b&Nd3@#N1q-kq-Fga{AtN*!a5aBg8&JJvBVI}&+_3vx43 z$E7Ecp7i6}$CUO{>Sr_q*oy;{4q}jTr?{Tti!*^E$lxg6<}0&+V@+9Q!>pp50~yRR zhYU|H;|jA<@(zSqO>i%$#3Tp?f8t3H0bIijV#GJx8z?s5is3Cf=G2r?6Pg?K_drz4 z)p7MlnhwAhj(`)sCEb^!p(TZRT&LE%zV3q0;dk6iScEc5uy14ndpGZ+FIk6CNA7!c z4R@D*!Q!u|w&D7)c#8Nmck>Iv6UAu)c82flcvJkz1~7-Qj1@+*N^OZKN<f#fM(Hk3 zSWSN+p|LHMR5n+st>rMT0f}dS9iRB$`-qX*AJFjt_sFk6*zSk2!>^c08oR(yE;fZR k(139OUtl_Px)*JH;*$S}7Y&LP&YgxYdHpqww&9z90m{_J!T<mO literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ValueComposite.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/jdtcomposites/valuecomposites/ValueComposite.class new file mode 100644 index 0000000000000000000000000000000000000000..83534e6b10d92bc00be9104f4562165712ef2563 GIT binary patch literal 1159 zcmcIjTTc@~6#k}Nx@D<c3V1~UQE5RL<wcVcUqB2=Lt-FJG%;qnJG4W#JDZ&;m!D-! z#AxCV@JAWXl#9qFCO-JEGkeaQ^PTUUZ|29(uipWzV%0~1;l0i}Tp4AoNcdhX+S+n? zB*VT{Iw7Z(J&~p=>F`L2Sa%HHk8G%WsW!?=!w*E<mzV68v)9kheRvG>u7nI@l^V&- zq2-4v>PTz&rLYpi>wjiK9Am>}mg&rJDy$-5b;d9f$vx4J?WRsF!))_v{Z1y*t_lrz z0S$&>WnLws9m|M;y<;e^5!po9mkh;Py~W_I>qz<-W4QZQtN;_3^iidvSL4om-cTlu z#c>5wm}UrQ4jZRr85U~w9MvmnjWTX9ly*f|_e6kE+^XO<?vQKkjPQ$E4&$QT4SAqK z*=X*I1HofKn(o+)q-|_%)my`$?kez6W*BR#L~i$cZJF)5xiD0lIuvnBWXjoR&c%GK zbG{eSHV8UE5%(R@xqym1sNf+gR3ywKU9XEs8nf*x!|-9y!GF7xBzP$mnRIt!Avdgi z0}MmP9=jp1Ee796yDN_<ce<7zq`NFWX?hwlMS|vLO``AUeiq72<uE7zd@w66-kYZ} z73mv70W(e#daxdb5zszF)(9$edX22-DA5W`e#7Y7FBq?0A1`|+xcLb)AIV+7Jz4|W zK}l7Dm>qaQ=_JP)$QvqFbP-F-Gbfl|`izC&$)kg#ajG*xK-B@j+-W!-VUf}tbPaU^ ebAL-%M#1x(#zdOoF`f+e6>vIdcuH#l&wc?Ri8-kN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..26257f4e699f0999c71a00ec795068128f991bc4 GIT binary patch literal 1466 zcmcIk-A)rh6#k|yEv;Lrh@emvr6Lq%#l*w}<AsQZq*W7y3uBDa?EuqmcQ!j)XnYf& zz-tr#;)M_3LmAImHpRp!S8cP~GiT2E&fj<X^Vjzu0PbS7fQ-N!6Yaa&Y8%VI-ScJ3 z#I71BuODj@kTO<18HPI8ciUR}X5YH>(w_9yAdHl?WYy|xzpWzok#D^2=1~1~XREeW zKu)02k%!XtC4oF|b(9wukQb<NWaarfw92(d6!uUBv2~lKZ&ia5Qh|yD^6`PTwL6q) zW0a|`Q=|tv(D6e7xis2P%ew-(4bxUd2$UTZFkV6y6Ap@~2xOPoV4|S|^{n4(spzF_ z`AT52VW{uBGSYlbl{s#Yz}t~#Tw9~|RC+v^$EHugH+=1N1s0DR^{*jr@<7+Qn6YHG z0t-o+|F;(?B$0MPfnpl-C@7(dD+OE@cs)uQIJk;=fpO`1L~f?t$jR`EOS|r1foEUt z$${?acPd#XzPaIG@%V<=IlLju?O1x<rVLXel(tPj^3)T}RGImE7gu=+iB_9|=Nn54 z-Bj^`X*;;Z=(Ap=XxCrJD5f>1)jio`0cR_qRow8UwaQ|iNSmc+45CtD?$W<Wj-Db) zq&-8@ePrkhl<F&=;nct4>_<9faE^7!4SRPmNoR+ASbH8*^eb=y(<#b5Ix~tman2{k z-NbP^1v++Q*BM--x4@;-A^cMyW`_`a1jt!b>!09!!`yq6S^9!&AE>@Ws&RtZq`JwZ w6Nc&ush$XPuzy6Vrd1MJn(R&T%po(CC;ugqGgwAF(N(d6+az&MxkL2%4Z|#l6aWAK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$2.class new file mode 100644 index 0000000000000000000000000000000000000000..207532a6bc4181192ab3fd6fcab13274f224a819 GIT binary patch literal 1537 zcmcIkT~8B16g|@x*48bpNI~%nr6Lq{4T*_KjStppNLnyKcreB|-4117yR+HZwixwC znV=><_~?T_%6MnHp(cLtLfh=l%-y-?o_pt>`SJ7XHvnt6V<E-xT7?})YN;dcJG&ll zsmKwB!tF&;`DBblmj{9LJ5F12Pj$3IFX?hm90sA#ns&8%(rb&*dF(0opnhzAw!L0n zvyfpZ?(;r(JWe2+t$pD}7A6_WCbDon8EE0?0fp@gKhjQ9^|WXZA>oUVVKUm2x_pnA zHpWS{N|7E)Uq+7@`0{u|t?V#lYN{==V949Ba3+T|3O2GRGNhNyhC)O7Vx!k>iSPw) zd4gfOp{VXVJd|dg7&E3k3~$EDxV%Q?DR#}lJW)LgUh|}Tz_2td)V~g~ZVt3+l9`Cl zmSHib`TzY4Rvc+NV8|vh2Ywcpan-^VhF9Zk0~^<{K)D7yB<`bTKHUm8h7uaVlUAxZ z+(6mF;;Cx#Z;@==G;LP!RU~)cZnm@t`y!+!%5O#7J!tYE>8;$B>V>X&Doyvz{VDIe zM%M&X_gznEx+9t*+EZ;Cs|J7G4Fz2v&v_Wp%|RKC(q*vMeNuPL<5~-i1=2y9o(ZsG z(a3==s0=+><j8uKW)F~}Kai`eeu7>3f~k+RO5vQb#b1nfAJeq9$;VjFV}?eC5@r*W z`?NMFY~(x{Zyv;svkB19(YVgx0=*e7o(yq#0>u0=#7hD+EJ~Fl*hjeZ9r<MT8P^T7 zbez@{jlerf<UJ+w;WzkFk{UrI43}arHbXAAXqv(@R%pzSXezi(GgC)X75e=G4pORU literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$3.class new file mode 100644 index 0000000000000000000000000000000000000000..cf021565c374a3b407d92c106de37ff42128c67a GIT binary patch literal 2003 zcmcIlU31e$6g``m2rDY2v_P9unoyJ2h9FA%L2F7IhX5`~2n5_|r^6u2i@mKPX{0rT zmp=8SpZ}weok;`J&hP{HQ4DA0Alevsvu0M>y*j&l?zwmGK7R7gBLHXcwS^IZTT#++ zRjN|$h3=ieYem|Xo6_%T6@@fvx#7jJ3OjCFc|p`kUA~m>1#&Y^WSSDy>ZzbD6Sp2j z{trvJ`O?isY2HFXVAkv*{XoU3bklp>;I0gH>aNQ``evVnwij!e2#o2jN=v6nYk8Qw zYTW6Z3Y9)D;FX8FRi!CVSd7}T2!U}2doX5W6t6k3uuovLYykV0RVY_`8!egK@LGWs zIItX1<ffM>Gu|;4j64FjhswA#PkHv;Q|*q_{RqjnK(#N^tD?AMqFSpoi#UY0EF2d2 zZkR!I@HQp|CR#nMnL=78id{*4rZRp0OSSJ!>ee%C&BhTNweYUM(cP)}f24!=FeOl= z6!oYVwz>FBxiYYPC-LI0@>BOZ^VthKfvj0L_JY-O;98_YT|@~p7LE%X+f5?}<|{gw zMOi>>vNg=is)G}m<-QrsIXGoTV_m5_U2S6;r%j4|Ah4(0XjGcU=XnPo;-kJlYhJ=| z2^@ccKhH#1j5gvZRa#Q9Pw=UQvjWq*sSbc0d<LdaQAZb48VBBef%;(f<Q`^H)LtQK zA7C@9K6h{)UkL2=e4n+aMCX1S_VFDE_A`H1WZ0_}sq>6^Rc$O{$-)JJBQI0P%y4kg z#AG~`+MIAx{mjhE4jTAMz^1*)a-7wGLit-$90be3>;R43HMD>FSZfmIpg?J0LN0io zQVh~aOzhx!$+3Oy$!k68CBD3<Ol>+mSm{rF@7?uS$Cg4rV8(=<6{)*X+rdp!<R<+@ z@+M)*X<j0{7@pq}0!||gWwID}X)04pu}Y5eei9QCrc|;w!e(JF?M3#^a%?Pi^~B$N zJ%IC9hS_gy*&il6e!>LD4(Ax_>o~x#z#DjTXO%yRDbTi3-GaS^gWGs#<zGyHb8-vs zvsKtm-hKdgHUEERZW|wG!-qIGw}mg+7Pe7009p#$xb&RJWJdgFjN=zN^ebHah6VhN zW&Dv5tM)hFAx0Xw!hg&P)Y)I98&jCWRjg5pQCuU@5nRVQzXhIx8)&j;6K~w(^Aua0 BOV$7Y literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$4.class new file mode 100644 index 0000000000000000000000000000000000000000..69826d5976a165157f3d205da01dc291611dc978 GIT binary patch literal 1267 zcmcIjZEMp|6n<{oEp3gqPTh3AyE<kCBQimlh*+x(x=qmSlZZFzS$DTIx8x?>{5vY> zSHTzXgFnC@C7zpxRS?~$Cgi@Hob#OLy#4(3{Re<MSaeVjc%|c>r;IX*jJ)ko`a1FG zfPyqpI$~i$eK{DYsONQ+40X?Vyr@8ibTEj?7}oMr6?Q519)&vCYafcAZmu?#9h3y> zyK*SKP%_Adze_>lU|OJIJyQ^>fg#WAv)ds>iSgESYN*46D56+kI@wXCahsWTCP{UL zJ>6H4N*)NvrOCRwu_aJy=`K|uaNLE1aur3?TvSjOC@xurT1Q2+p7wo;Ur0YBftilx zyl=@^*?TT5+4Km!o+#tSGN-5Bw}pAEQ+D18Rj?<pI7-yNirBUVU9rJTWwjMp$Y}mw zU%<&cZ4Lw~xzGKmiVL{p;G)3GNw$HD%eDlyNGEFh&4zC%9#YH+u0Gdk9MBVGD>3(X ztKYIc&W7zM2({sPS)*h}cU?3r-h2=fkJ2+4Cp<+w8RIb#a91Pl^j0X1A%iR26Gi@} zAnJA78a%8e{wk=l^cbJ+p};RtZQlF>xA_exKJl%9lUA1fvDR-f!*`c$tn?I4^Db}( zvpLFLzFQPAHlEIu-(`lgInc<^n$F=YuL9?ehIoGj#QY(|Lk6@g%FWMkzvBFu%qWr% koPm#jpq2AT*dixX<c!%!uHqW+C2o@iT<4R`mW`dC-z70k!2kdN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI$5.class new file mode 100644 index 0000000000000000000000000000000000000000..b0465f8d6eb22f06e9139504e5a063c5bb3c8aec GIT binary patch literal 1260 zcmcIjTWb?R6#k}3vq@Y{Y_;`%Yb-T_D?&i1h!~>;68oU-lZdmMlXTk6PT1K^tN%*y z0zUWy{0}PV{}9h4ODl->DZA{<oU`YA=l0E)U!Oh$xPw&(a{@1QJn)oJCXtcX52ddY zkM=1@6Qv_oCNz|zk%|UhPsvaZjK_-#WJvp?n2cd7KUHCmV(($7gWcAF`pIUy)^Ly) zsP4$I^g_uX8~zRjiGzYb%|@mmR3k&4+2gQdiW1{>b!w=?2~k9`Kq1*yrgob%?aVUO zb&hmTMJl;3AlGIa>c*BpzNvdug1~VX4vJ;uP;pU0RUo%!4JsWK(bIJ3Q~X@|AqgyW zH1~Z=#>&c>GH=@>@M@+R*BacO>d+46kxn^yGgQH@!0NP7{~BV;4s_iXGe4QFz{(`e z|Jw^VlSrE*fl?N8FDl~#E;+a;@M4xUaB<m=pc3gs^<QuJhT<{B+~D#voyGw@R(2B0 ze^dRI<v2UGq9D|U?@O1GZQXNGvv`X^OnjBvQD1kNWJC3adID}cVv09IX$%=$VKU_S zn}?`YEhqSv=J_k3%-Umox{En}fpY!kd${$FIPsRHIh?e*$sg<e6$>o8>|?cyIK{ib zX)I+Z4VEp6ICL&djK57BmolKKqjg=z8D0g>9u4vR2#9kB5Dys8W>KuagZlyJ50jZz m@`F3@^AEIQRtbA#3FWwBwvwy3#(SRmv4ZP-vfZ+^^Ya^vdrUI` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/BlockExpressionGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..af9723e9bd8c146fabb89910b47f294df850a58a GIT binary patch literal 13823 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 Z)4UGxu74h}H~!Mh{&~UPcywm|{4XW~#&G}u literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/ExpressionGUIBuilder.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/ExpressionGUIBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..5be5ba81819549fcca5852b1ce4aa0c3f10e1a4c GIT binary patch literal 5644 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..738d625827c501821080662cdef84fefb4e48c95 GIT binary patch literal 1134 zcmcIjTWb?R6#gcO-F98uSZlRjs|K1xaIH^5MJy#sA@!x2M{#!dxE<NfE;F-j|CZnd zeDDYOPXzr7;+Z5UsOVD`b}r}k9lr0(=kFgs0l0@-0U81?OOwaSD(j?<UllSbT}&sG z)=rh0jgAgwRVkgvnUY1B+n5)X%7RWRL)LOsQmY~(6Avej!B5AN=ewQF04;$Hk3wmo zDoe3FW{4xw&c^#xQ0kGkGg&z@0(0&_+0I>VY&hG_wixSy(#ky)NV~HJ>x~3jJ7q=- z5I7y-6y`!SaVA25MS*752P_Shrl<8`LgtxF3KCczmQ3|X8s+a(W6M({kj%K}&L&f| zc&xIV+(akJ1o{)I{-x!>YrEAOg;>SK02c&a%vQ<>Yo5fmrkv;X*Zc_x=5S-o)BhV5 z2=~j{r1V&M>ev1@&UaqRBgsMybXt^_U&S7|gEEV-jvE3isUdD)k9585oKZ>bh=p43 z_Wo#LLaU8^EYlqAYE5RRkk*prVmuN2Mn${r2Zc`!{sYXjeSuH+`R*-Y|MojxJ|KEC zj#=`yu}5&;7qs~vagMj1#WL>#=dd!Z@`!g|WxoFw;d`9_y~bBY{5Gz!I*FUs;0#>C cWzKHm3g<U)71wxgvE0{jlTRW0JSu-b02IDWKL7v# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ff3f48a853aaa55933970eec051788d339fe1372 GIT binary patch literal 1139 zcmcIjTWb?R6#gcO-F98uSlep7RvTy%!IeA-6|saUh18d79*eWPr^(26ChW|%{ab<; z@WCJ8?-BG#Jd*?;RP-qeJC}3&4&Qg?%a2c=0d%k(pd#?v6vJ3qWu4UVaV`_%Vmha^ zbjoNpIy#Z#vC_jhQ!+P08}p)4nbY~WAZs})DOH|P5%;H#-Y>`VSNn}lfSSOLN1-%V zV@t6;V~A7I&c=t7Q|giSGC6is2rRgfvW<t_Sbx5q?K0M5rImXkkT&NH)*1-Zx+bF~ z2waSC0Sh6jxD+A4vOu-z16KM<(~I&Xq2i@XauQhW8>V_73+3-KW6e_}kj%N~Mu#a{ zK2zC{+*BvZ1lm)o{-tHlYrESTgxJ8f09OT$<|}1{O;6%_I+A)w-4TzY?Ha9lv<#1w zU?O)WWc|Nuf$-3jMM}?<=YR8WGyUL=Je90gPp7%D{4@^8jZ79{3wH(9(t`Na9FQ*e zoGVmPI%2i9nyo)tm~v}lAIn@v``mKT&84+uxfqWHKU7h#`)T1*h5rDHY+vHjBffh} z*uMXsmyd|vPGVNPZQ>D}_Z4-%N1WrWm$Aybz!j{`syyZ0S6OVoL-+yfzt{N2h~FnQ kHl}g28k~XaxWU;~+~oWUZs9iXHP-wN?(r#PpGW2IC-{X=D*ylh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/LogicalExpressionGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..5909442f26060368298afd0f531ae80195cb79ec GIT binary patch literal 8670 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..98b90a7773a7d97c02c50c64d2b2a84749d08e17 GIT binary patch literal 1543 zcmcIkOK;Oa5dJnvV-nmZl%|yODm0Wd1x%5Ukb<~`fGQ;|QfLoIJl4)8+19ZwualOa zg;YS|z>xz#3Nh<g4TnN6jV<qEJoC+bvorha_xB$F9^-+56vGEU>{(Jt6>-n%y4?07 zOB@Mj7)jqFVI&4T2&C7uI+DA7Pgyibhr8k^2!&FlWe=s>5uw#4Emt&7<ga$O%9{o< z48?su;+D$^WyjtZPGlg<P}Z)6<H|q@OC6Hmk?<mAwfvzHO^Qf(B4o%$eW}WiDAeXu zW37>^XVR0=a|XLIWnb%i44Jy$5jil-nlNx7k2DG<awsySD_Wt@l%Cig4r~#=;kGLn z=9@mHevgMz?-OB0Cy0ShH{|jrC8#*iXY;}zlJ~kRodbroajO1xjtzaLHO*!wK3;~^ zIL`m;GZ?X_-GCvN_&oG-xQ?3!ZZN!?Y9*Msg%u(j@Q{L^6g0!fbIfsb+(#35>X%v` zcThI4%JBaDD4yoY#9duz1<#LU_tTE8L^u*5mC<ZF;?6;f2T671+x{?g#7n8`Z|RgC zf2f<AkQ$!j`iky=mWcX($Hazqu<V3_E|J$fjOhL#iW9yJ=9Wh-UU#`tLScnkAx+;5 zSh1)(g086yeL3VwdXZL7k)jvKS2w=EtbW7XXWFH3Nz39t+L~jY_9oeA>18a?%uvE& zg7Sp+8ih@av$3)r8!je5V?%9v1xqwCTs<4YIRj$(1mZ0L>L^OpW0=Rd_7k(o>ML&R z$kH*bIhuhk5$O?;{$KE=gc?C45w68nY=KPf(K3Y!)@jaA+f;F%RyvP5EA;#UH=C@u literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$2.class new file mode 100644 index 0000000000000000000000000000000000000000..1e53c4cbce93424453051f915e80a849d17ef2bd GIT binary patch literal 1273 zcmcIjZEMp|6n^g7HEoTyPMveUyE<kCBLzX2h)}BxIyacxH<6q4th-y98*`Ix{w%>4 z@Pj|VA0?ifhSd-1J~bit<>WlidH?zA`wsvetU8zzc(0S8r;IYGjJ*9&`a1RKgn}$p zI$~i;BN@jk8hQgILp?MeFDj5Box}+l!&-i(!T}}T4r_(fJC(oQ-Dq_jlm(iHaxA@2 zGRu~KNI~kLBG9s?DF{_;$TP=mcT7=gyiJ`M>a#}_Q6f-D50q&=W>@<&^>v+1JyVfN zp9}bFGq&|$PoUh@1FAvbybA}_I!b7`sG%uPTC)m`zKZBgHu5QXEB%lJ7W$e~zb6xA z?}e~z6C@yK>vF5Z32KgPZC>h(t#?Be90{yWQuVJo_H0epZ8Y<Fc?DK-KmV^U;N+He zV}V*>^Ej&G25vdHDe!Klo#5iOEkYyGsoMXz<r_-IlyHjcJ331OdZlbFmj2T3k8Gne zvKIxRHariTlpg4Ti<Tu^4ie&l+LlSmv&7>uofQFhBjR@NhSC@^xWjEx;%^?J*|gok zBU|RLhB`~n@#!h%_yy|ihhN~fzv03szRlsHmF0gd`UnercNt@)mvEVPfh$-nSf23R zvWO|Tk}HQfaIqko04?+?mUtDob~eT642tDbiWf|1y{NW7!~KfuQ)ecT#GHW-f3Q`H dNElH#RN{=;Nbceu?`3Y372M~O&6bUwpWhXoPkI0V literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$3.class new file mode 100644 index 0000000000000000000000000000000000000000..3becdbdeaa18255e1b876aaf80cd991723e336b0 GIT binary patch literal 1950 zcmcIle{&N>7=E@5JrdS7RzawU1yh=Ywucsfrhv4R8f|N(5JzVixFk!m&h_r*Zd1x1 zD*9FY1kRK)qceU0Ka}IMmvS&o;lJL@-tCWPcc1rtpZC3g|NHA703YFd2SWn)!?@$> zL?^}z+=sr`42`RHRI6un7;w_4Eia06&~e+^^TST!@}*mzuXdtXB?(c@p7z@+b~lOg z)p9n!a<^WZcaRg9wwI`uucJh{$s^vdtpby{o61)$d(n-y7a0``jF_%YN|(uN^+<`; z1deZeerZbuJ%MxSWiJzaq}v@uhHG3Wc4R>Z+FTQOQa)l{uV+$e2;`Q+w#q}`4T)nI zvAr<~2geH-#+wp(j0+5xEp%*E2Wq{y)l~5vujwm+@zs#AYk0A?<Ne8;b-I9ew5FBj z>B!N(WBY+uZGmdvp)dRXpg5MTSZb9<9uqk0;9Y@xN2(2p_i#?2*z6fYX&Mu2b`?D| z`O4@lrr25mlepmEJSBBd^3N63M@oEvl0cp!TMT<an}=U4R|byn#9q|Zt;D^}Jn?LL z)f`+r<n#=<5$eF?QAX84Mc~3g8W}J<QQ{J21jG(o-R_)|aMPK`cJ!fSt>F4dSLsgI z6flJ=R%9Ow94puBm4>zXQ;E;;dEcH5FJ`<1rVg>^xf7Pcttd>iQS?|1R~;+}oIgl) z04#A0*LjHvZ|WrSy~hHJgYwBNOkGiXjZ^!8JT0o)*IWThSaxtz;Owio*m@vw%UXXT zQO0JItzUNMR}yu6El}WmgB3N+w_N#0n}~v`H$4#D!-dWaj~Q)&(!hqyv@Cc`siBD2 zL1kvxzLn&)8TR6qx}|L$IDJU5p8Lt$_E<EQgO<<W1f4Zyx?x-5uB|8&tyuAIz~~zO z2w2-+6nX(!4+0f0`CgK!gnD2B;y-4nShN)iD306uWM|m&C~*A*dsjKOxUuS`r;yc| zrx>k1L-EfP_!i%VbOWhl2XAvMxsh<3#3_CS-ofepqyFGUInJ$AcOiFiW)JVL{f(&~ zW_B^nHp_PT!86RSXX~HL?%@kN9G%_8muxrouxN+5J*>Q-Fk$)QXY&1pcKyoCctREa zMhX0$QmXc^-KRtX_y(&fsRgWIod!%|8sB1rmJZ`Po;8Hq*yK0Ia&`v|_N+gwVSN4v DHPtiu literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6325cbd1498cf4f94dc7b3924f709808109c0404 GIT binary patch literal 2263 zcmcImT~8B16g|^c7Rmy(BBF>OR4Fa8RPnRwgS8rxB8gReGG@CS%HVdk+1&!a#2Af< zf4~Q$DDgoPA9(Ob8SivU`$D9Ubd%k=Gjr#DoS8Xy|NQ;&6TnquHG~*U$E_H`6P|BM zW6d^8j&Ja7Zq<F^NE-Bc)vVQotQcis+D^qY=p!uC=G!%wdmd?(>cTE_*C>*f&GW7C z$Iq7%i;0Ye2t#bc+%yf_Bs(jm4Q}}wdKlvE(WiAO&63R-di-_aB{CFRq06yl8KyQ( zJJHIwsPbJ7@_i(1zU-8_&9KsWAXT-($nOJqph0rmb5}^=-)H!e?A-S8HXz%%gN}lq zU1f;mD9t`F4C&C&tE7`U`VfsGj8i)LG0YH7D%GKako-x#TH@}rV1MHUhmOyx=?c|v z4o1|bGgzGmdptA}8A3no)@2l97}s!~;Z>JUnT`vXVCXe1i|$Kef#G-eH+{CdKxU)3 zh-nQ|3@^J1pN<4BwZS7+_|#?avPXa}xG)}3r1XW=zV<msmW3iv!f6Jx8j=hzj*OG# zRI83Wz-pe1JMM#kc6FqXW|;KWoh>!d;+|Fz4;#eI@aqW39iCa|2dpz%Y1reIEovS& zDtygQ>6^0b8M#0pEU&=OFi*)UEdQsgV?j}n7BD*%6|HHF82@lb3<E^m)@!N+O?rwJ zow{prRTCIS4=8l=s*(}g<)vji9u>l6?yoy#9k+0sVQ@>7E8H(~n<^hKGo*s8*iXUR zqN2OWrSBPm4jrAm>Sq;&>Pu2`H)ork$309E*@o#oflw@_*cXV!757q657FBXon{9} zx<~ymwL_`&4hB<mJBX#eBmTLec$&V^#sWs|8;nq2EhKfE!6>y1XEEF~RVPhlJem56 z!Cjo&#pE8w+Z~c(ySQ9P??Fp{!<_OFhVn5&fdX$Spm&(Sdrad4U5Sqke<Oj-roRbF nB}4xu4A&Z~*$kOjBr$~RxIt}%DElVvkQAq}F>2MLLZ;^*S;5*A literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ff47128f99763e80f887e92232ba86b21790fe23 GIT binary patch literal 2085 zcmcIl-A)rh6#j-5O4pUvqKNoYgd%N07O)zVs)=GX#G=M3#tUPnyJNd%yW8w+`FRX) zd;p(7q6DIe7hd{M#xvcDrV!JRbT4+!o;`na&Ntuu{Pp!afMwi>VSwR{=hqBd+A`p- z@z&v0FEGTGFk6A`xugt4gEyPDTQe-1J6=s1^s-Ivh^?kCq$I0q%XTc`8x^v0MCm~P z@WpDT5JQw<RwWUpV>hKR<R)d<5N;riig1Lf65X|UGY~$*P*AsJW|8VD_qDJh!_)?M zG6!3&sI9JrTYX?VV$HLJ!|<f{G8)RmDE;Z(kpU^~&@J1wgF6g6+1_Ixr}xF)!}nBr zZk-{zLYs_(;iQg13@It0BZgrO5uDNyM~WemRi=ru?TW{(MpgLFdDRgNsj^47S?9j3 zzB|gO8aM;*z1ZXQB2%Ewk8IjjO#~t6gvF2#C-6UDmK0EnxpfT_xDdm6hIBWU!>H1@ zZ_B2`w{={^B?gT$t+aff+!>~`x%U44&D7;qjA4@6&{xoB3YjGhX-ug>O*4G%GXkmW zy^pm=3~HFcYz$WzGTnnPTQcw(#=Vx@UUe<vsKE1eWRYWt%euGuvQFok;pX9~ch92y zj&E?o;lz5+TCS_$N*G{Z<UV_7lHFt$VuoRun<g=&VzVFp?{tW;zA-tSAFblGd{ZcP zWEek!?H5$r=;W7N)A1zT25TaydsYm~46pl&Y#jx~JQJobh{m6CKcLHs?w`Mx5re+! zy24*^xRgR-lBg>}_uxP>shA8%rWB8nMrq^F=>G|lZeyUWN#y5tq37p!F_Paya!0vh zl-?SxAY%>hahfEZWFUbv7;Ed#V!RXT5hYT#qx(4b4e3|;{1=Su;qpE*-QhkUg^%rU zW1&kY962M8Ik4m~=5e(Xc!pM$bdUn-pGXKR8)_@Vs#M+x7TW&|EYcdq60YGoNhz{d J?&?X0%WowXk+=W= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/logicalexpressionbuilder/SingleExpressionGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..57102d0418c567cd2984a4a4784e602f8983877a GIT binary patch literal 13187 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$1.class new file mode 100644 index 0000000000000000000000000000000000000000..72e204a7bc4c817a9d35638a5ee89ecc8fc9ee02 GIT binary patch literal 1452 zcmb_c-A)rh6#j-*3hVMCDyS#|R%jPxDgML+W1<ZtMo^QQUT`<v9n0vl)9g$^A4T87 zMA3NR1NaUm#^`Gp&+IOska*QicIM2P^Z%VQUw?o80$>@pOXy?RP)XaDT57{%|9Qk) z%J|}y2)ah9n3zUv^G-*`Z9kMeQf=*PlMuK4+OMnaj?&VIM$ReMN+>eSTazM)WJe2M z?~=V85gY9{L?i-h_I}7aMkEaVW=rbw5=F7z!!TCJ@Ld^8bC2O^rKgswO@?A!g<=p4 zCtaLCzk>pXT$C`(P^egek#!l1$KCCgNS^UlBpAllRluVrPozEP%%V-6;Ylw8EY~Rc z;awTFg~`e-LIy7@!v7#ywGgdTn-0ctu7nAOM?FNu#d%y{7~nx5bP9N{aoMziUvzN^ zQ-^+P464WYr(peE$gI}df6z5X#VZb`F<Zh6!_?6!_*c@!6_gp=1E6Rw(gvbTrZMMY z9u>OQ`#7f8#mZ&|k>_Fo1BaO|GcfA2`D5W79lZ=^hM|Vx!OIQa$(zw>sBRL7HEG** z{MckKzTi8YI(sz^A{zO)y&=q&3SHd5O@^5u5%eUi?mruK6^GIe`hgvWx#K;!UyuVS z>OV^PVH}I39&xROrczK*=(%E}qjuPc>Z8Ae0pbr5b%)ND<9G`nX!!{DT`DtTdFc%! zy>A$$vr9UbdkSN;Gn~em+=|Yvc;0(BpK$gqCNpYs50~FyI6oBja5W>V)=L4_%NUBZ ze#ZoUU=}}7#jn)cc<SBDy#XGs;X3(SOf}gosry9sVF@+bi`2i%xJ8shLN-wP{s4=m BrsMzs literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$2.class new file mode 100644 index 0000000000000000000000000000000000000000..e3633a9bee1647d981d2a489308c1100f4deeb60 GIT binary patch literal 1452 zcmb_c-A)rh6#j-*3hVMCDyS#|R%jPxv8XY@m}mou5!9rn7u-#E$1=L?G&@t!N71)1 zQ8Zro0KSNcG5Q9^GrJ2YBwlrsojG&n{D0@n*WaJN0I1=134IJ3Drx&tOKo`UKaY4z z8DG2-LDxtX6Vr%o-s#A=?T3;_s;zx(65_UB`*pS5QCb?&$T{U&2}Oo^Yf=P}>}cWZ zU9z_$Vx#?rh(ut`-Vb@lh=ifvY)M^SqA1pT7{&@2zAIyC?lC;A^we^-$xy7TPz-|M zq>B^icTm8PixP$z3Kc6bvMyusxVzmF$ur)H1jE?63V77yiL~dOS+vPBJn3bC<r*bF zyeq@DFj=`p$lzr~_#Y&z7NV7E)4@2-l`z5ZsE3HSIFAbq13U<XP66*VE}J&+i!Lr< z>d?<JgX%H<DOi6OGOM-rA9RgT@rr|K%$6|2Fm-ea{*`ob1!V^J04SP^w1Fs-Y0SBp zM}@BSK91>iv9g&#<hfYDz+t8}21b20e=NMCqnF{#Fw`(Sc)7tlc{4f<)lCAiCT+Wp zADisO7kr0PXRpRVL?a)!H-y<zp^IhQWS9vOK~KW!{<Be6aVYJeAJ}1-JKlr)1v!wS z{-cy1#<5815!YI1Dg_mVo+~ywYKM)eKKe@-ApRgxcj#<6j<@iEmXC1Xr7|Oym)<ba z`-V|EyQE{er!Yo4!)ct!t?1l}=e>vX31{D8GNUH<aQO{}^Fv_|S2MC|y%b=*jG;*D zcTC_1X7LkM{7Suzr{2BX8{pv@u9LsTRFln;x=&;umT-giBK2<#w}^5`$OcN^AFcJL A8UO$Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$3.class new file mode 100644 index 0000000000000000000000000000000000000000..cce0d8b1bdfe66f497c518bebddbbdd66a1909d9 GIT binary patch literal 3249 zcmcImYi}Dx6g`u;c5Jqd2~E;MpedxqkK!$)DWwj9)O8`$p%p=qcnGvvPn;?1U2Aup zl)u9-0148nNC@$f|AR#NKsmEs+iBfWTS{!%Gdnx?o;!EWef;_FgWmwWgIWq>0_&dN zFjb&}&~nXf$J+8jQ{I(!J5-*_#ZWe_R!g}Jv#u=1YXoKx`dn>%Z&ti!%L`N}H{z9r z#S{_(**n&*WjYpRZf)I>c9=p^;P%Ksw%2TWu34jPRYx|Z8&-GuciZ=NRbBc5$#6#n z3m18a+Q`bEeTp&_FDqAtD>OQHsG9Se0*Q)OmuUzbH;}?a2IH7CkVaNuJf}BI)|4wh zZ8x{1|GBm0NP(%EXIsvu<tzOhFDCTi1#TUtfeVW~yy3a4^?K}afp2p8;UStln_~v# zj2kN3+)&MyBdd2?z6=8LsoEu0#dGUQGpwA#DS@?-udn7c6n)ZHeXXq=l41fc(`2eE z#hfm6I9=*-I;L|ergN!Fgwg<=DbqEa_HL_2o5ZKh8O-6e6kZj$I<(zQI>2hkz+8_f z2F_q!Al;B5!-w%Da6VV-M^0z4oF81u;B_pd@P@$6q2Zq&y9UnTyugHI+q7`ulE4p# z%>A#1r%~5jCLt#<x0Mr0-`rGk??yE3W`MGGMb1F}pyf*$%%Z3x>VgonPjTt+W{l3} zBRJy`sLXF_AC(N4m=VYXJKo;)D7g!qV2Wp8)#7j>$A))T_tu^jo6If8nFAR3z2x#> z1dfe<8%LVB1X8k7l?1*X-btgMf)&AYKa)*wSN8n&?a}&;Rp_x~)G6bSC8KyLg{uNz z4xNWaK7EFTa@k<FvM6wpm8hQ}V*~Vt4-8CeCQl!X_O8w3y1+F9m+>ySzTvffTQZHX ztj-K(e65~Ic|$c^D{TAR^v59N@R!|<i05=N%fo9N*@5L1hTUY<wH>x<Zev}BJ6_$u z8a@#?ZTpg~T)&9+91`8XzEx>Esuf5x*bB`)RcEyd`h8znw=2e)>q@`kSV15I%+uN9 z{2hbHW_5qVRx`z48u}Vu;Oq*<_ysbB;x8}?_i*ATK8@i;y%xRE(tlx!&jw}m>PtAu zkr#}aSc`>ZwD;_<nEhhv^nJV{3O~cRkF%ZO&3h=+iu-u$M+$b7Pa(ni-~4}wQyk~; zPXsd4Q51vB5&R<FCXCRmi{ZW_+&HECaK!<*^$Smdd!!p;!ac&AU?WEr^BqMo997~H zmI%`Y9^;%`je(aU^Lh5ZlahP|kvw3#=qVE&W!Y8QekE3s=lQh5(}m*icyAx&zDpui z+@|f~7K%;d{aEZANA3M%g?+62pU7o=7>hiKwEBe6+!iD85-JhqbyTDA20r4LU_JjB MH#yU6(dhjA2WM*MD*ylh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$4.class new file mode 100644 index 0000000000000000000000000000000000000000..a22881e01a889cd0c752ea012141520d59aa2bc0 GIT binary patch literal 1438 zcmcgsZBG+H5Pk*<g?d6osIO3k3Z*EANYtdpL>o+ut(w&Efp6ElwXC`BHn&^QpJk$G z{NNApM;T|Y1r3dUYP{rbZs+Enoq6V&{qghLcL3Yi$zqJq&`H~uMj9I^|7{$!wDrY% z5%#Rqik((;f^Ju;wjaqL)@|b(o3OY2!LR8~R~u<XbKog4WQMTjAVnC<t`WXDV!T74 ztnr&77NLWE5(Ql=62hcCkfyZ7S=2|EMwNjdNhR%L!t3%#k=OSKnVOEoGzjNBOkgsH zah&&%#SCG*>;h)%Qi+$nPD><jf>taDb9EgC@m`Qfw;nh%u6V+$Q6^a0;o@hGWYiY6 zPq&B&l|BjoYRRr^QFVPUhXO8Vaf$F^gdOp41y>1EK^O{SO7{tB#C=Ig{IkG52gZrC zrK_&2>mC-d^gD|O1pU9Vc-pg8D^BAEmb17?SUNi+C;9dxJ*=Qa@J`#vQ<KVTKZjM6 zvsfc6{tY56*~2<2gq#s}S2@+O4l?C^r%z%<t_=}(c1Zh*V1%abC82mGosbJdGr##R zI1E_xyDE(NFi`D=um?Kwa2MNzVwea%ENVStb*H9PB-3N%6os%ltj!ZDPNP_t%*Au1 zL{f_bV}xNInGQb2D4%yj$ZunOXEDY8X?}aiYv;*THa_#?3%rkM%&haJUkDRaM4s0k z|Kq$DFvpf~5%U9-#sFoZ@(H=G7?^9vC?4b189-XbJguaFg>-|30U)q|4cunPaophz V#;^&WZH6_ug?s7N+!VHa{Q{MTsl)&P literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$5.class new file mode 100644 index 0000000000000000000000000000000000000000..a486bc2fed1fefd25a957d33406f3633a590ec61 GIT binary patch literal 1442 zcmcgsZBG+H5Pk*<2lWI*z*oSRN?%Y8Q4$QsL>owq#h29d1K+N9Ygu#MZEm-qKg&eX z_`x6Gk220)3mAxgYP{rbZs+Enoq6V&{rT(r4*+X;=wXPkqtjL(jWjk?!Mh}EY8!|T zBI;VH6+5kHhn<d8tss_RqFW{~Hf3+?V^G!YjyBSYdf!u6_mCqL9i)g7*)bw82aLBb zlr=$JBqDOKPvfv-MM@a8d(sqEIg8o=)7WI-$5KiAgz&mFP~>uhkgMugjDv8_#|TFA z7{+-Y9wrFGB^NMRlS;howwoe-8#WU`n6Bw4Od4S--Ma70x#9`02AN=Cor|A1ka0`c z9^E1)RC*-*t0h~mMVsYD9&@<t;S%A+06XI23a%2y!YC5P6gCKIz<tR`{IkFw2gZrC zsW)9&*L}=m;UtSk1pU9Vc-FO6D^BAEZh5##SU5c+NBQ<5ecVQY;2*b<rzVrvZXQc0 zc_<R*{|1qj?4yhdA#a4;QciWOgIsCX>62KI#WRGR9@3s77@@AaX(YC#6Y|`dnO}Jy z?uV@TEfpnv7^v2cuzNc8aUW}h#V8egSX8^l>ULGDSZ2q{F$!VntTvCRIF4dnG8fO4 z5@|IFjS+@<WIFg5qp2x3g#0$dw}&zIkMr9Gubn4fS^mP0ukb%*F_X@heIbm{GNyR# z^FPje0n=;=7ctXEdDBOkt$arQ8~WzjAr=pD=LB%Vr9vz4D8LM@W}tJ~CbNA|U>3`` b%do?^$D0gc1p(U}>v9zjvhBGsZ29^PXwIrH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$6.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$6.class new file mode 100644 index 0000000000000000000000000000000000000000..f35ef6000ddea6df6597719d4752036b73486031 GIT binary patch literal 3038 zcmcImZBrXn6n-wG-OYAsX|yPcS|k=iNtR;8N-&j%w8kcsHWkH})@5^>Y}xF_y&Guz z3!Kr>503BSXFoeCRGIMy_?sNZbF)baFQeeZ%w+fMx%ZxX-kx*LAAkM!JAf(F74$F^ zJ-=eu!WMz)8h0FX#S096k6Vqv_FQ5Hyk^$xwp%gEw&{2kVTiydZsop_^=frb*a0uK zIPqx(5r$DIl3R{l7u*o*ByWwofiOzk;g%FTS2pVb_Zf}`Ra?X-NsB@k)ku@zS=+UP z48!7BS0yKw7$RA(%%fm9rsD{XYUo9u4h6><ddK9369wDl3ys<e_ivgj4rhoJJj-;J zOy8E@EoMX-&v31q3dX0&_~Yw#xx$0c-Mq{&9y;NlLXwjqN+*^y4B$xxPcU5VVnlQd z;wgrxX<1x|_&JLB?JftVaMxTj4a!=_C{Qw|k6{SUDtLz6v2#Vob2v>=6!rs(3`H!j z;CY7Jq0KE>zUL5N9G)kT%s0`YA|662)q+$igjDJgq*`c7wa}DmqbaoqO)2jCo-Z_< z!I*+khM5DaSR*f+6)ucoi_nq4I0ZnaMc@;f8P1G_E^|!6cF0U8_Oet=Fx;S<yJ3-4 z<<@GhW!5lK5;g`EjD1wut4U%>!8yXqfxXZ!STZSu5qi^*v1)3t=zD8+nfn?h(WhY; z=XJb<X$DPHz4b7h40cPk?Zi4fT*Lb<&kYD;_13kbsYzQ2LS7UXFr(lVhSGs8tWhO$ z3_&H@4Q$J>YjwxSwTpMwbIZ0Yw|QdgNMn{^u<rA+ZBhNs-6K*6S`I4}1ItVBXLMY| zYaLi6mz)0!Ryz|<#U+NGnWTz&g62$8i)y%x*A-l0=x^e;W4Dex-e6FCUUy83Ks?`> zKiR73m-vSb?pi$EkwrWB`zCsUR7gyySRfS=6IxWoqU5Ah+@L~{NNEagGRz$~I_>-` zQ9e<isd<K3rGlEo^)5k*@`(h?mZaishFe`1yJU-o>DUiUnMxW;NXf^$5-jgAoa%Ia zyNZx`jKVV7gv!5n9ctGhI4Ra)z_!swUADQ_#^aU4!*9PjO<hvk_MB|cyOWG|^l$HI zU!VOC*YAox2_D!v4&1M|M}qh+^Jn*}m7()}rNFdSi)OtwNoXan;amK&EoY5^y^TcL zMq^3NwH%t)+)9xLRj;hWl{3qL<#VbBk4{}`1OZKc40_&mxu11RA-KS48hCnXZe;!a za_S+fhyDsw;zx<PK;M$1ji3F69-GjAZ0<QBdCe7uBkUve)3;7%B=;m@^k#SrkB3s& z5F#WU5aT~Xdx%rTiC^(F!#9X;VR$(<@(?e?&eCHO$%W*^7ABWBF|~mge?YePC%hb< zdUYWgn~P;PkR#%1tQZp4V%H_Hh0=2DO)2NCrkv%O$Y3P7fp?_35lD5XNI|fVp|VeK zl6{I1_8F$w=hPd%K!$xuHR&s=3}0iJeG7+u2cLc4G%M3|i)fieM&NziBEwXy;x;}Y zCybDM6D#D%49>$snJ9-&aonN1D|EMXO}M{G`)%Sx(eo#!6bxOY&3B2>L*g8IN2prY N;1Q+KA?Z>2{S9puvBm%Z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$7.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$7.class new file mode 100644 index 0000000000000000000000000000000000000000..32bb09b52ab944dc79f35d91bdb7d6160370a72f GIT binary patch literal 2635 zcmcImZF3V<6n;(`*feaRR4pnmf{io@C0l}8B$c-iu#l8uFb<!b?dFnP+3aTaZd&o5 z_}v*CosnTi+bT2u0EVCBIG&r`)Y70+W@0kCd+)h>?|sfW_j%4f|LgZZ02J}1fdrxE z2Q5n~sY2Vc9=P_ZA6nuY;q*f3du$9v$L@Be*Rq<@cKw#JR2Z<e^~fswovyEBDC)5# zvtS@enAJ-P$CX_rEVa(-tqCtwR$aKl(aT<K+TBnDg#BS#s?0p2sE!aui5Fg!o(wM$ zR<a{qIoBX0%YIXggK)saKI~6p3=<{{93+fo^$Ulp(i6+Q&Z-FR*{iM~OjUiyb{lpe zbw4&Hwey5KqXd{)VCN66%VtZ2QMg5ukdK1!Un!~R6qRy~G^X*kfg^<5Bg}}2cknJ@ z+;$wHROTFK{HqZsruwzLW?Ot}U8~B6xpV->aKgZG4#&$QCf>tI&Z3gva%MPVO9tL2 zR9@TNx)b;=6UG%wOp@z;cBGJrC{>6lRfs56*rrs>rb5i7!hlVMAvP665cq*g<214c zW(gPf46(yewp&73wYXs-hdd`hAB!+xHWN-~qma2ab2~DYa>J$+<_LFr=TUg%w1xAq z!fvrwr%=$Wu~;u&fn*p+u3_LD(`C;=80eKg6UvH$Y3WpH0KrP&ugRte(wN7DM)RSG zkMJ=et=j&2lud$+q5X5NUZ1Ve{*Ld3OtEgft?DBgfQX5A!Ne!H$S0Q5v@F&KvP!VC zxxMe(VR>>b#k%c<(y{8Y({)8<An9e_Yf3G`+;|{cJ=SvWlr--bO?(R0%x#($2~S2# z)Bo9vNWZR_xQc5#{5VhWM(anEj-7%UX)YJJws2hz=XKmLP$3-G=k;G-G;vec4WlU) zmr~Xv;%l}arJZwj7tlzpxy(hUnlQOr{<u2z#|8)a=H4Se;LWS_jjPM_%eCxLcTmqV zyD%&cbNCX^pQwkn^RQ-j<1(18`@O&sH>56<)59vL)thT-#dBQ#*zj645w`uNi7#~E zrkz0W$H?}qYrQb!&lZBY<ar_}yS7q7;Urh<G5+YG$w^(Zxs~9{K#J|-+`7PhZAs_P z{K~gYm{0rf9MZP_2w@+6k4f&EJV#p(V~U@IH}Gb>$_pg<58TfGg7g;Ns?Gg|qlE8} zd4^N>r)IYB!PFVPZQ|_m*|}$!zrTs%2F^dmQ9VOn8(7#vDVl$I17!^(2@T@}!v#G? zihjUh`Vlkq6N>aRuFw<QqNjam`DptX8Uw*+SYmJ~lyQrD3C!?XRn#~b%e<y`B^tZK mV=HVKN8(Qu4IDeduiRxr0-vMK&m`-^Jv6wL=1DpN{QDbTzdq0a literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$8.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy$8.class new file mode 100644 index 0000000000000000000000000000000000000000..c958014020fe591dbab92918209948149175133b GIT binary patch literal 1379 zcmb_c+iuf95IvKobsJ0?5(w9F4WvmChVl|A2nnJfAzF$Qly}G8x{I83<lVIJRR{@a zRS+M*M<Het1ErM^53#hKo$>n2?aY4varh0uI_^5i5jK-F@}!p9_{!Uk{Xt?p@m2(5 zBNN3&BZmHHBvs^v(vOo!d)lOIjox{kWH?H+G@_STYApwOLft}&AeJL7JiW(wyFwZ5 z^+YTJ3;QJWM@FQC1+yb{?LJ4bF~cz04E#tcX&w_^t<Ds=(I@0PNhp>;IOSp<3kA&K zv<nAC!rZDou)HCacsU*pMEcqv#DY-XNCH3Z`>C{gX3X2<30t!au-4+_i+eJRgqfCG zgoNg_2>)tH*S4tL=oe7M1qbH|FJ{;g7Z-7fu;d4U(7N_uo$!9Pjrso~4!L`=r<vBu z$iVB#;V2f}UySc0DwLL^yxEq~n5oW6R+uX;R&e!59uEm>ws|xri5%_Jw3$3TJ0gzT z1zg8X2R8^S$EWPCgD!4aLOP+;JfloO;#EHZeta^gG$0gu$v6$fGiljdJu&F_-uSyd z6TPc~m~Q|TZ3?rKgf5!aX*Ea%-w?n5dO9|S?-GLhTq%)uVqa^aIT0QhzKN(*vU9|{ z94`lpY+vGCi*;)$G}k`yYai~1$(dzqn|vY6(>_Y9yZn!}o<W%<p@Op+%2tL_X?{e3 z4sg!O16=-$Yk%O1HV`_*B7H%bzD^*k6Bm^X5)4_xZ3dmg9d?mJ9jh$!JTDEbO`LO) HS@QD}%n+X? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..821bc14c129f0c48806c184bdb8d88a9e49fe8df GIT binary patch literal 20758 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 VPszRn{;7%f75_h^t?FsY|3An*xZ3~# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4f3f1cacd5d52dfc2b962ff09d6a357cb46aae72 GIT binary patch literal 1046 zcmb_bU279T6g`u~Zn~~*tXi$#AHlW}T<eoi5hYX*Vi6;GpUhsjBb%9JXVU7UFZz1~ zMe)HO;ExjTYyyIczGPwd&YYQh=I%LnzW@084ZvO8h|mytW~)5aPCGA6`m&H?>r;A7 zYU;H$40@W#veYI|Gc607yVUuL(fm!?x0BL3?dgRa59eTaCqheLGq92>bm=H{M@)H0 z#=CS#1*yRND3hh9N?^$!XxF{Ng$x#3$u4u>*GBsX0>iCElW&g%T78?*G6aq%IEJMd zO`J#&VMU<16*jC6w4wd!WK0!HRFJ^hz$#gcWTnG=4z_{>0?!v*V|RxoSUJ*JPJX64 zWdgmK6#w#OFL<@PJ&Li8a}mx8>@U`u1RH1zw53wyYV!qavswTD{|gg{hjv;idaQ$_ z8-HuV+ppxIWCQk$D!4^W{*?TI%@SP2H5Nrx#4X&n##gpr>2Lli%1k%+tI1gqf#iuX zRP_t#962Uqr}-|4PA4<~j~e_&XfwXdqkB9LNZh;ii9er_e5m)V2CQBYoc9(To+q3W z(34o>C~yj==PVC729|d3BjPVO^E<~oKJk6cu|C^3=im&S#|6%A;v(laa0!<=w%FDy NxXz=P*TSj%`~*;*D3AaE literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$2.class new file mode 100644 index 0000000000000000000000000000000000000000..7430e30bbd8234fff1ceec8a27734f10760575a3 GIT binary patch literal 3346 zcmcImYjYD-7=BJ0*<@LuMlM!S0V_16%|f9H4Hs(~pwbJFQY>CzyE&u_+ug9cX(?X# zgg?O<9WNgo#L@ACw}N)YAK-6t9G{a-Xek-2OzljwXWu>NJ@4gtpZERq@8ACb(2H9d zS_IDcLD_UdCyXr5yy99@eq_oU(ym61?@<`Z8LLupys}wxEY~lGW*7yOmgmj9KU48T zCz9jVRIx7X=+%%A*rT*c+jT0TG{ZTnoRwY_nnmeKTWKCBS(Qiz0_&n_C+yfqLx$JZ zk{op(aXcqFCQ$5LYvq{<fkfUf$rJ?E8+Z!qbhKiF0Sy}kT07N-O~Z~SN2@baGGK^Y zDUcraZOfgo0!O{qg$We`fpcqYV@EGTuyM{Qm1PviU6us8;!r#;HwBfeTxLSYRy?a= zo51MWrp7=!o)dUx)^eQ^v9t_70)3sCW`Q6cT~n4E1s<~yKZgj;A|YB0b17`ciyB@K z*x$s~#~(KE5_SmagM||V=ZD8Hjhz-a@B}t!*hQzVTC<i}yKo=~todP9mX4j+pwq%v z4D7}pW`!vkl%X9s73Gh>W;$Iv=vu5a7846Dw;mbn)zHQLOG=eK1KsE$$gC0*x}|g3 z$+4-ctgl?=q6Sl-&?FR(ukE58_%2Dnl`6J_wTe$-e@qkEI!$C_n#ev-RcDB7oguOf zhR8N!h^!0(KL~XkK%a(#0{yGDaz=)sRhFSSQePN&6|V`T6vAsU6WF~x9Q8mpiER>x z1<v#4HFC<HmiDzm-LoumiU*F62b);4EL{!zCNz+x##SAO1{Euqg=QR3Q)R4X!I{9H zbxJbOaa6%Biva^~AWwvc)BaqXQ~{@MS`DfSRk>!6e~{y*tsuVN_PvOVQK?@W)+}il zK^{q=fRh?dkcU_8;S8zOHA6NZFLG?tnW?yDq0yG|zE>vziVd8?kU)DSAUoJ(lfn%y z!;p0qQ?Gy+QdD-@z%WJxl9p}rdk0ZnTKm56Xm*nr6KLu0N#ZPfMt_f<(ow{D4dViB zD~sO11TF|@fvmWe&5kj+96|YMD=5nARq5F>x9p~e<W12&NfR>NNxV%HGTnMAiFcJG zo5Up&NhYgnumlEHou38*i$oMt&A}kXRT8$q_}bMKK}FrF(I&xYSpSFS2`8+w6Wz2F z7wfo;ocftoMdPgC*9QelP|=({wUYVwUdmBK)lZdOeqCIxOnsccrSjt(QTx^?(3AhY z9-GlOhX8#kifRN|i8=0QTiVgMKK}&QuK)uTZ+&>+nXfd4o{kmnA9>WQV?4is{oTGc zVpZz1l3w(yfh|usYMN?q+Fz7=oV^O3?Q%Nx$|EwG_Dcpnz=!Olb|A?SWRQr+Vm{a} z6zG@dFdmu0rTLZ|CSVMCo(%G?6^1gz4vu}T9HT{Bo0|Q&YT>_zB;_ft4)I+{^sc?X z^5-6mA8UIyDOv4{;JHuG#&?5fl=Nw&`Q!+J&9N3SfCP5|A9wu%eF0lWx_`p+cW`(S zJ16hq<<Xw*1$6v|&K6u)M0PU0?>>6dhxl_3{r!pdM9(6Qa^vv@ynYw?)}Jw`6y3+0 zqdn=-^qB>m<KnIK#dz^f`aQK+#O2BKl+skHX}VI=w1BemAOYn;KQ{9BQ+oRu-#^DT ze1To~5`FlJT>mwOa0h4c4KCs?Y<vqB-{BU%$8G#j^Y|1aMX%}}tJPIpqt8iv#JxKh zpKWYgGw>MWKA!MV;mv1p5Z4h<c8d`Y5m8p99u>cM|17`FQIbN-UnpqUew>0E6trL- TH~CDk54_JyRJd8feDd!f7G)G4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$3.class new file mode 100644 index 0000000000000000000000000000000000000000..85c54c6da3e78c606ed594115b6b014b69755385 GIT binary patch literal 1076 zcmb_bU2D`p6g{)MHrp86wQ99${ak2w1xH#0VMUa+f)I-|vhTCWH66(&Av4?R&k_{H z2Y-Nn$QKpwY!(C+ec3=VGiT<WdvorYFF!tg2C##h9vTAAiz=1cXk%3_UuJ4tSV^xb zo?2bx3|g9~vebDh6Rol$HPYCM(e#ZR7L&3t+R_U(j^<!@*F#HS%dt|N>C%ui$4q%d zxivDPjAF<9C{d-QN?^$zYSX>Lg@lW(WWe0_b*}9LfoOZt<h_wVYgi<-41tpYPGHGL z6Q=@rSP^J$y92AC&S`%-8B@g)WhAf`7O~1ks?u&f2U|`8frACt*xh9bR*rR&lC5>8 zM4(?w@vq+Oxn2!=BOmLy;NiT${$g7bU;}M|wu)mirn@5`Sevcc|Np-*0Y56HRZLH` zlXT;6HoW~x9Vu?WULI#`(L8-d_OM6-T*GyN&A1}AaOB+mSgW*B6UP<R))ct=r$)7m z=9lLOz0l>5d`~hN^7Ub{gQs~;)i6`Wkl|G91HNgZ({c9TS%Y5>ZN`^*c8}K%@%y*l z^XCJCx3e>=4x8-=j{AxZuLF*8=xMC+C~yX6=PVC-bS&-uJNO@Q?stxFobmgNW4%5% h=imrj#3hby;xflKu!$=?wz%n6af4?*@42k}`~+<kHCO-u literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy$4.class new file mode 100644 index 0000000000000000000000000000000000000000..08853e5673cc49dd93a88d2a76dc3b4bf5331b79 GIT binary patch literal 1078 zcmb_bU279T6g@XdyXm^NvDRwpNBs!2iQtM>5F(<42tq8<NZu#A<91{-v+PV-{aJ#d z_}~xlM~Qcmh@he`S=hZZXXc){d+wQU-@kkXa1XZvR0uCknZ?Q~>x7P9=VEMJEZ@px z>Xgw8Iyn(Vp>!6fO5`T9v2`V**}J%BCWW!e$yZ`LT!5{E05!s%XO&5=3M*rK%9JNk zI~xyWE)&oEG!=!DC1KSaE8Duug$$NkNtd}FDXrXN!f=1t<n0lm)-$PG1K~`B6|9D+ z;%tNf>xAmQ->@-IS{_a(V_C99xg=~3Od|4;D3zZtz?zqUaJ1waTL&z``l(7Y>E^o2 zl+c+=@vq+WeXqLhQHX6^3UHBdxZKu6XrfN2izJcOw(b*%wb`5f|NjdkghMke6ZuSe zNt=JO;hi_)L~sN8I?36hI(s4Au}LFb#|^@6QcAXP|EJA+MyJZVayU09;lZCO&4skT zT;FXE{3$Wtlsq2r1!B3Q=UU6MmkVp9<-^zseAlSa@CM;gh2H>m#@BfCkmnu=JGVdb z=M$p$vppLgo2?L5XbTOVN1Wr)bJ*laIFGFb%M*^CrQZ2~@G~y_#z9R4v@_$_p6^?5 ga0Yg8nX{|7!ub_k#WjvKZu>57@+jmre=0ve0Pkos+yDRo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/CompositeTabStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..78b5ba346f3b9f554256593f1873184f36b6c076 GIT binary patch literal 17252 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/EventStrategyPrologProviderTabItem.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/EventStrategyPrologProviderTabItem.class new file mode 100644 index 0000000000000000000000000000000000000000..9d6836eda97c9e056d1e337792feed676d54e6ee GIT binary patch literal 5797 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 VXkRzGrM8T)ee9|KN8r(aeh&qC%<TXG literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionGeneralLogFilterStrategyTabItem.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionGeneralLogFilterStrategyTabItem.class new file mode 100644 index 0000000000000000000000000000000000000000..60740f5aec1c9981603dc1ac8a04ecd9479f9c9b GIT binary patch literal 8535 zcmcgx33wFc8Gip94B3nV0g+IPs7RB|u_%J#B5lk8t4W9if<Y}#Hj~Z3?#{Ba%cam- zdumU6+lwAn+ge2`36a)f4{Yse@7vyYYY%%__38W1%uaTf*|6cUK6$cp{qr5~cl_V? z%_Gk|@F0K-@r;5Bf$e5G7BVcu%4o^ZNL(8-Ga-Gq9?fP9Gs&A7J)xyiMlu!}Hng}I zvqDxT&AYKZq0Zd0b~8C_$n|UWq@LE|-Da%Ih-dV4zq@p!HWVQt1yusGw`n`IP+TL$ z^+VhAXhy*dfp$MJk})Hx7fIuZk)yqKQ>06aX3X>+ftfkk1dMJ!iaCi36ib-HdfZdX zxhh|`u)r(_H|nhSNLm6be7O^(kj@`7?J()G;r3o5rTM9}?m*Y0CAFBI?yx}@==UY) zt4_{NQ8SS+lcByMitT11Wm-l?C%e<5qqKwGYi5iQLr)8|`LdbP4($abNOZ<(BWYyT z2vjyS4hU4W6OsTbF;~Sb%qCjhv}$iQF{G#I7ja#nuG@@i@c}Ju$ZPjzRc6$%1QNay zO{sX!38wF$l)ic>Ys7~I9&4}}>(RK8vh<L(D-+sf49E106`DlQSGJQ`+4m)1h)ac2 zxO@^hXDG5#<3J4ro~NP)0eSX(6{q2J1!oJyo};)4knK4t&c%7s57RnxN-m@Y_B!Yn z=cSWD+gLs@C9#!ooUcN`Oex_DR5YN`laQG%lQ!e@%cbS`hxC6D6*$k9YieI&4ty4* z7dWjyqeZv(Xel?20`ysWY(h)YtCuu55amRP=_4VTC-~6zYk3lu2wb3|7OH~f0-OCD z!q;CtN}E!{G-oM@U1<W`gI36#uu|ZLQ?vK80GKq<?5LJ(w>{7Uin(ixwEv|l!dNX( zLlg;YCQH+=a6v5cPVSg-JH2xw40X~~d6c`J^BPfIgBK}yA+hxVbn2H?wBd4rKu2d+ z+otY~Ti0JHu-s4ismX+88tzchi7uvTeMeT4o_t0_ckz}SmddZg6$&B(SNVuLb%h}P zV5*%*#g*t5s3oSIaXq0YGZdqasM>PaI&`xj3D=?*eG1ky{0g6_xC$G%wOGbpZXdK& zM8QUZi+v<5K%}2_Ok6*~HZ>T))e1HXtUMWo6W(32aZgHDF^DbPJ32RPSWmewnZ9Xk zGU1uHR$xD6Xmx$7)u}96J-ppwtkuoyt+~Cfwfus`Eyh|CSu4|@(xW4LnAJv%Se9iS zT{eIh<9Y>K>H9ulc!F5@rC~z1ELJO4sK-4~p<yT&HEE)5C(KDVW2WcLuxoL<7<6w1 z(2rr66=>KV->gtzQGa`c^E^7oig7;64q~Tz?bQ<GFfZqH`6A4OA#l@kWCah<6N+Z0 z@)1^2)~H+F)?yLjDiTNvG)PU1M2gOwD}}rwyug|Qnt!(P_!b({DTP_{Co@JgR2B<n zwiMC|b_lF3-(!jxxg1?pRanT-ee_6g|Hii7_D+F_Urd#!L?LZvl@xZW*d=jnatn`g zpp^LUQLz^{5Pz#|{D*v<xID?r5i8s{P>X$diGuwC*PXHf%3-DArMQW1N$2yr3TE!} zT@T9@6?(!cD!2vMvD)b-^PBMs1utjSCxx7Hv5HsXRotSq;o-J8+o^hYi?YeJoAEf? zMy4umQ&RQUsJI2UautoT$<o`I*UUsw6jU{Aad3K_ir34<3!TLs`iPc|vp~wrfC6(Z z8;+v8TTk5u%R!fMbQ|8H;LX$7a{YQ&W<0w=x1Z%j)LW<3MwUyN@pK#BuHqedr@%5N zo=!|krD{PAAWk7a<tsRiE|2Y<^xX}5CYw&meVdjp*Z|t&nq_fSO}`OKve-*=#r_jl zte&<boT|WUD2!@YZI&ekvYX{D|9s+Gke5Q8furF4MUm*+;s$U4AC%kihu8}_oO6-u zyFMIg98mCKAJTDckD1Mc)~1c&Zu>NVJ8+jI{Sj794H3qtWcD!?cjMzU0prtI$M&f- zV`m9-pn`h^&d$#)QocN<9a=^U;2zv3Ssr5X*g#Qhc;kK*hcU+LdQ>-JqnUL^l3S06 z$VW$1OyB`#mRMRF>f9Y=b+gV)8++LWYVrP*7Nvg(mdXe4Nfn>MgY+*?Y{{=gaZN=9 zj;VMEpK)p=S;d$fzl2M~g6w+}OjAaRRaVFu8}-QRK3+R7v$p>njw|>)%cin7fk=`= zx)G|;7teCm=7p_nS#-9La_*<%VSIsJ$iVR?RRXv8dto_(`ZwvhGRCJI@fFLHg^I7k zBhsi}65_1Vp2F77oqJ8YlsJh1*OZ?Qa^o1eky)V;dq^4@F!Wu{(629T?lgw=bol>3 zQij($d_~1q@il=t^wYwbkU)pOO?@*<PLV<yj6=!fQ5E07H`(Bk$z+2!H-8hiO9I(@ zD^X{pBCB(z1{pQncIA+TIm8AwKi?F^Gj0Dp{6N9?i}Fp@2r-KFbW)3lIKJ3Eq$i`J zDt?F`IbCN&PPUUWdW&lp-#2YGKT+`*ek!nlfzZbCW2f#>-fSd?&0R826;4-3EK;<H zyXDXEO9j6uN>)BgRs0ISc6Ka>pA2>?Iu#SSge-oG-z)eX$9nnsuz-bJsNxU!qtg{R z4035`kq-;!S)Z29gcbbRzt`5w2!92C;h5PkL;3nysU1va(7&m8FWx6`YdJxm*AY6O z9rAm`+?}$;D(U_T{=w0VA03H}1gOODUn=x36$?;b)GE8O<+sZ2EpA!;W;Pv_UkvCN zE4?(u03st6$feNBjR0grF7T)iHhvoT8YqWEuIQZn9OGXlodkwyjJ8WD7q*M0NRpqT z?0QaTi&7=4J)A>~EBRlIDpbe`FTaCT$Pu`G<h;{9auCkrEUx3{3jWUFRftEyV|8#G zb@$oJ=J9uieX|~C@LY8kU_Q>|74rn@`72+(i%hF|TpnybjD^Aas>3*|<v0Q@4`I>m zs0#+0$FTSq79GZtJ5d{KaZZCx<5((LRYI~_M0tVpNoXl2vkhbu<W(zLu#9um3v3ZC za@e>ckRjJJ*<vlXwXBdrkWMpc$}_2H6)8|JRL<x4Uyz_wRZ6{)kEF`=!TYi7IOZP3 zg@Zg@$p0ndxagob$cK(>r`z;akn+V;epMbE^{y<E2a!LM6fedlE{7EaUvj7oj$zdy zTsDUGyLnk*>+3*!Sstxg4_Z!ST@t!0WY7`vTzMG7+6nXs+%9GAA3TIjb=Mrhb>oO0 zB$HyPFDKOwV%n9*DOf1=QZgGs%w@TZM=AA;x=~V<<njf+GLOs*PvC8yBi+l@(hOHP z0(VL@C$L?hyXj%fKLm3ESzgH7O%vE%0sh`7;OX_U3T$qwoWQI3gooEwVA4gF(#Sv` z&9H$M?58A~=r#j%ma93$9>nF?f(Wj)C7ka_;Yv7%HhBZyNWG+?YEkhN8Wik%5{r3@ zUugI%U1BR=lAcq42ydFe+gNEf=OngeZJtEKafz*z=z6+@X7gO^yzKHM8QUpY0TUe= zjM5u!$GdoZH<?u6JvP%8-j#S))-9SO?|6rv2X>_gHunTq-c>wGu&bLGX~nL!Ef0rk zPo`=+JmhQq?BkFT0m@cIGW(9=z+hA5I6lzRd=z&K&fw{tWBBM%+%q_*65}}7+cHP2 zJd97YFvQ23TgGrScogdfn=6?%K79nA6=ED;Jd9=1ocup)3}2R(K8_{wVEe&wEO4JX z*S7h`@byVEUux&4B(s)DXj8P$4vLy)=vs{FEaPt{O}&dAou#>VGm!Vvd2i(3ep}_B zql~BWJ~vAQ`2M$;FDgj!8hjhyp}8D)5KrSq1qT#%L>01Wap7IVqqNMtBlzwZemsGn z3ARhWVQYgw6`ShjJX6hcSkG?b_TA;uY9wW8s+wTaF+4tozZRQ|trQ<~313@)zq_w3 zW9E{nb#}0+`52yH>U_MuY7GCBXyu1x{@dr`-+oM=U=l8t+Ix*q{KqEwr0bji#Z$bN NoAv;|>pYE`{{azJPaFUM literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4209b944d8ee71fc612a6d0fdb39a2f285dffaf1 GIT binary patch literal 1524 zcmcgsOK;Oa5dJm}F-=_JhVp(>18It|g1Ddnm#9dQ0!U38aoyOPWP`Jg{0Q(<kl;rk zQ6V^R<HC<Z%sQz+T#9qR(t37gXTP1D`DTCo{Q3>ReQcX3FigW}<jPpa30Lkg;Da!6 z#T((Ji3}AP6EWqpnN%a!mplkZu^T55Sx0Z(-6OYlsC=pY_ap9!jv9(cC{Og3j{AJj zAsDCWG))v4><OQ9H{gW%VlWY2Vxq)Q`)%DzmEwayFqD$9jGZQh+5L}kwiq_%JaE#P z&l4R;Uy9cZ2l->5EC#VVltCgQ_uvTbX{HNb!_rx$M^ee;3B&h#{u5TOMl1he|8Sk{ zK0~n``eF?XRSPCg>e+^cHI&ORaN0rzn+!%>yH>kWiRbBbAR?lPE_tmRdOYa!NNRm) zENUJwg!w~WJwHy9YGXvHs^Ai?n7GW)%T2=LGiKo`t}$2{*~Eex3_A-d2rrPcSh$lR zHI_RkzKAGxHE%?;aBb-<mV03ud3rM?@IlVLyr&zFDzU4)AdIQgpNV7~`X(HPSGg~| zdcG~(#vO+BVb&e(F})AMXLz|nQyic5ENxatDG{{;9>*fab)u<3;{*z}t$7RBHO*Rj zEekX%uxNFiW{*iXNLCv=hd9-^dkDMn8MTj@;~Dywvkg=iyu(@2^+s~XIh-fSZ~>c3 zsE6dK*D8%qu-O+}EZ}dL_XP9d517gl#-NCGWH)e=WD#4qg*we@WZNRCKMhUaFKk}e A;Q#;t literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$1.class new file mode 100644 index 0000000000000000000000000000000000000000..6ae06537e8590850d8e7dc0b0fc5e8b73b36f979 GIT binary patch literal 2308 zcmcgu-A@xi5dSUI7Rn)rh@Xf`!4~um6cwp4(Snf#h_O&KJ}q}kyL!EAZm)d&6TbN5 zlmCJ~7>Fjm`QjgCoaGLJV3b0nO}ewQJG1lgo0<Oj`Q;mcTga!-#PG%s%9d18h1|22 zUB2XpmRJ*ZJ(Rvj%urN$ttP#)<w)-OWo4-_AZ~fxn%cfr@I6QB`||;}#k9990^!-B z7+;*{OVgw#GnztzVX@%{$rM*v%hC-+V3nj;eX>P93;Y%7h~SaKYjnbp3@cJ)M#!g` zhTk}>Q+ay!f%Ihfkip9y<GZ;ML!#h2q7@8n22LQEMl;$Cq;Qg<Ijb*p%t%kn)vHS) zpd`40p=-vsxm)6a)ccs3(1By99-sM{Q3_mJS%mXqEu7<3vaCCsn|aMwxaD#J8)1hq zmv2E2LqORyV~Cm&M9m$D#^^L-beh|VG#f;x>G?(5uZaj-X`I7_6wWhD92iPfp%gC* zWzEKffs44r&`NGb?l25y_xtz<w;9?axECrE4B;@mI0UwStDA+I!$Y0($U))gLdxe# zX<Wgz6s|J#X-|di%9;|ES`DpL>5%Elnv|;M@^u6K$S|adSEvV6;UPmmCG8(#)Mf?= zTL%u~(c4UBG>rjdbtU8&z8@lT+aPMZ#pN5Xp#!FA7&lY6!I0S-Z@aESziK_MtMzH> z!!{57z<>#hpr<PS>S9Ie${&y7@RtPVcVY8+-SaeB2q6T<`ZjnpXc!j$i<1PcqF)be zjZm_8tkDA2&4XIrlxMrXqUJFx!iw*taF;<I8~O~4<32;L9S9ndMLj<!B`*iOs=X=- zTaQVKU^e&ah(X*x2&ttS)1D`Sg3FZ>iYl810nK{W*{SCPQF@m`3-Mct8b=d-f%MSu zXZqQI@ria#=+L~a6Gn1x(MfxQWHk2_x@cuMjqX^>2(9`o*>z?UXFn1ZX-IBy-|do4 z?nw9IaxDFnUeGplZldoi23`&gZ{YeShW1+Wo~-(?rK=~pAL}AXj9`?sHPe3@{q}8) V(VD;=+`|M>UBuJ&>CZs4`~rJ+<wXDh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2$1.class new file mode 100644 index 0000000000000000000000000000000000000000..48d82b11852a7405022d5e56f8e5792af08cc0df GIT binary patch literal 2119 zcmcgu&rcIU6#k~IER+RGsXy@t>Z(wX;fJ@X2P-BdsEGyQb-Ft(gWK6=XN&qrnP>tL zJ$Uot&8vTm@lCf#;sx77H`$$?H*dc8_M4gS?T_DIzX4dox`PZuD~g+38D$coc_S3{ zDB<#*^gD@)G#L}w679CqO&%x_Moq&_5|g$0o^PDERU;iJ>%ScfUvBD#jHUKvt>?Hc z>YD`Pt$C{satwuiaUggo2=irqU;2rI5r*Qa^;Jh}Q4b}<NV2Dlw@PVl4KdFO!}Ng& zy-qt2iA`iz$+rwU{pUa|hK4s(n8=v#oWMQn_GMsUDb~nCrB(8n;ro355e8q4O8>$B z<8u~v8FJMqkYiw&a^YaqzD>IrLq3lzW?YP;#E_l0u2Wk|%NLziUB<Lc?2;F^B432N zB38EFGv@3*V2Jupd2oKbRa%>D+|hZ=;+li23~z?G30+*r4Te$S`_dS1h2ht5x5vWp z$gbpZ6Sp1QVo*b)*oB8Xrv$Gv{2U^|l>z8YkKX~QhKy59F}!9a`l%AlShQ+>)b47P zj8loJjN={_9LzJ+`sVfQ!|tMtMFzL4lQIp-u$Zza{ZO@y<ogY(2|P{Oa4UI#v$Fz_ zuSK2Mx0C7YKj^chEZdqvBC?_VFfvr6p37t}3S6v!YQ{v$QFV_hjSLuG53syvlTfi= z;cjXz<7z03kp^=lcv-s7AyX(=1q2F3tAA8?Gjxx`rO^p`dqn*#wNvHABTSZ;j!-Cn zM)6bE@jN~A-3de!KHviN?L>0NMO>nm;WA1+s3+uU$4ccx0y)IwF|HhA?hEc_@Gss+ k%#iIAuhhfKVu=tkxQ}IObEJEmeiVQr*=DJ=myJQ!AL)g+7XSbN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$2.class new file mode 100644 index 0000000000000000000000000000000000000000..87bc5b78d00eb8ecebf13f4154538aa0e2ab7713 GIT binary patch literal 2603 zcmcguTTc@~6#fQk7s{%Lig!^d+JbfgQPHZ27L6oGj78M=H0%!T=ytc+nR0pY$N1ut ziAIe?6W@ICC-`HGXS$0~G)ghHO*=DZ=G?z?W<Gy?{}I4Au2|?`coIexM=Gf_51d7x zFNE3=E5dDP83shuqQ>iW8B`okazCsnN9l;Dl~w1)`ms_Nc+#Aoi?}PMgGCXEz!l}> z;2d9=CNbG@3n_;CEh{8beB~@kUyI0@mty&5b9yHVm!v16YaXxD4nta3rOJ+yPctp+ z*s4=SQhQkjQeR~Va&6R`pJzywLQiyqp~uEHq%-Kmb{iIUFm&e3ft@ol5VMWif`}*y zzF_E^30>~b^GKR?LQI*!G1S^;es-J!*HaOCPORuzUL(u)<nl9*`4V@0PGBSK5ax<q z=x2CJ*(@XwEyNHle1~X)&O(CD!g?YLEuym!2~{V=%LVC6y;^p|x`=U>!G0XHaDd^` zreReRO7V(N&h2Dk;}8xrbd$@mYYZoIzxw-|5HM_yp<k*}V1&o;U<)|=sfO;=J+4ju zV+Vz2imI5O&)^tNSUAowU_2GBFY8J;YFRtW(j(KAGbL5s=c_gbk!8pbt<;F9+BL%< zCGan7MGGehXPXY=zqg$1SO!DLnX1S$eA+_f)&bReyDPR{Pn%5B2+mkI&5+#~Z?~az zSaYs7)ao?#WS8qOvQdCT&{NfL`F>TJE-)F#;SUKe{(#N9jUX^+A%qYZ8|&aPpkcW8 zUz}v<;;u`zW7_$b_GT?caa*oLYJ!<^*oa(HiIkU#R-2Y-nAGNP1g;+{YM8f$u7;k4 zNe0=rDzkA3<jD~?67(=An>WLh<dulmj8|phnx_FFC6|Bnk6`)r@+ZCabP$NB<a4Ej zq7FuvAH8o_Z?Cx%X_lg&g)X9Z(`*tQ^aV1*BX8;N9qd=M>cCDzYwj@Odxl<G+r(q2 zyU<4?!*1+Jq>R#N_R@WO*Rby;&0-1ZCiVFb-0AP!M{qRZzC{|04ZUj^_<*5@!z1r- zY7N61EqOs!y>80tkIyHvh!dk2BOkly9d|a7Iz*$fY1{A{WHy=<J7ko0Vxnp8Ih?04 Tg$uZd%QWjF6^7k>hT`EHx)w(s literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7e3af5f268b6b1d66475c72e5b21e55633ea9d71 GIT binary patch literal 2119 zcmcgu&rcIU6#k~IER+RGsXy@t>Z(wX0pV8lV8w)_YGQ$So$gM{;C8mz*`oegCJ@ns ziHTgidG(JmzG;gXFW4Ts$?ojDdGo!u-^_e(zyJFD1;7KWIY==yqqxD9Q6>?Z*F#Z@ z5-#6Kzn!Q^lQEG^(P}B(;DHih)G*v6F<Be$`NoM`Insf${#&u|<)*I7SZZHZdyZS8 zwn;GFnz!m8!;sq(`+|ppFkja8q@Oq#VaT6aU$wOswNNsQB)iIZtCVJCh<TP6ruRkY zwOfHmY$7{KzGc|%KL=tlG`z0DM8<sk1nya<F9Qopu|^&$t&+zK$MgM17<@HK{RjJx z&so@E$dsc%j)7syg@aN1Htk{z*(}nSaWRepLwer2PF0kaFWSwTjA@(LCC^tPUxYg% zR<_?WX6!y-i26@?aDKd1TAOs-)>+KrnuDthZ-%%DU0lZvhEd`B(im@r;pcF-$HMT) zE@g2Ow;kMKP(!2Gg@-$*1g|sv7$U)?0qE@>zkN~-8Fw|s@T!&Qr%E(p(X9GWtD{vi z?n+E)9QUx`V4k7cH?L<Ob{9n~GPoU`l--aFi(M9_AF7s-e6LP5fp?QO+)Cb`?5qG} zt5G}l?PNOp>wT7#Wm_{yL^iY^Muv*ibD8W$fr}MT&6wzNRNkdZBLjxl11#^^B$Vt| zxSLwbxEu;&q`@2sUYhQ6Nab=?0fAiJ>L1nJ6y4)+X>@|#9#KC{?No8`5R=8FL*$Ad zk^j(fJWtPTX9CfLued;cJCWRR5tpcCxQs#%>Ir$;u|n~HKn^f@geymw`-HnG{EPPu kGdTVWuh7FwV~G$_xQ}IOGo*W*eiVQ_*=DJ=myJQ!ZzU(US^xk5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$3.class new file mode 100644 index 0000000000000000000000000000000000000000..6d3095c880ace8bc000c9323ce6239420a3cc622 GIT binary patch literal 2598 zcmcguZBG+H5PlYF56Y>C@9%E~ThJbgFKE?7t40zu#v*9^wA?N2>h-p{-GclpO?)Am znE1h%_!Imw#@XIs6pd1hZPV`F+|JHCGtbQK=dW+y12}^#4tf}#s<`G!Ew$m1w-EAq zWjygr_$?z<L_#APyxEjd%?l(CRZV-^#3ZdPdpB2?Ra6v6yM89-zL<&@L@Xj-RMUks ze13|y$xk@QFwAvqkX#A1w;)3!VsBQ8rCaUky;v>EK*ZMq-lR7SSyPufKTepYJGQY= zP-QZESw_-aWrzx0v|F5I$W&Ay`oS>ZViU4C^kTCM2U{3=3wFWQX&H&Tt;W2FDG8xq z7@Af-4`+ES?Q<&3*uXI~y61j=f&w>C6J|y{Gk1A|JljzyPCwy`+zUC8jkrUcEB9d+ z!!l*Flv1>mP_*=&qA5E|DLYH6i7a)<&XTVhO%;jARDIPH3B_{QgMAM6GF)0WqZ&eM zUK858lTKXh#{q_ZLYtss7%BV;^*87lHYcpF)F~z+V0gFziv3hR51IitHuVWW5!iYv z7iV)gf@2PjG90!@g&)eM7M@-*-jWQ+b?x1dx*76i7sruj$dRnlimA{I!*R;pU)0JD zMu=kT4&%RfoBZh<hEcEuQDpeIfyk|Lsq;=(?!1)NnWizEa&VF%zc$`}OB>bjuDA5^ z6t!cY8x^}K!6WMFx>}m6OWOb@lQ{e#!Q~&gdA}7!mMz2(B4cZnJeD*J5B>{ChCc55 zR6Dklf9Y=45*BymG^GBQtEyJ)+e)Ooob9w<*<MK<{$}KdN>i`ABTQWd4kj67*Q(6L zB@mK>ek|xtP_@^E8<N*z-ms{u!nd~qVoIU-_#esg>$y*M-Ki)NaV6wh3r!u2&ON%? zu)#rl9MUX9KL>pz@2A-$dgu$}M#o;!-y66u=&1)=t*rfqk=|<z(z8oCR=N#CG%{?* zj&zrC8tuF6(9RX?eonJwhiqH=?g#DcckP2Xlxp853)Y9h6&!wt;YXumZ*XD-qia3+ zKwf=n@3kvgpYBDP7{_VC*hg2miFDUt8m&*8MqeVg)};iHHQI}_ZFkS%JdGJ#z(ri9 O*$|nq>h?374Br3%$wgHF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7a585899430db4d2e0c1432427baee762507b5ed GIT binary patch literal 2242 zcmcguU2hvj6g^|RS?X*X*C|lSN88kZ<Fp;zgin_iWLn9{1=J>iO1zA{*UqHt9cy-N z;J5HAkf=h5#2YXC8zkTnac9>~K&hJA53IDFotZmx&zy7b9sl<C&%Xe;j*mU$1O~?T zrH*x+s7Urg)iH^rZ>c*<w262yp@A9>b<~%ER-x&~GEOXy_P>+2r)EtP1=`tfTGgdi z)FVq#m+nstH&v&_+f+6xbq@uB(ykgS87kiM^Uf}H6Audl<-^f?qbO3HkOUTz9UWKd z472?|;%o?<8LO}|8U`wHK(;k~Bd|3)24*pgWlx6*S-Cac?oQgLz-`OE7H;TBCpQIt zt<LUYel;4iJ9~!XtZoYwnkJx=5Loiz;W_tp#>Yt%i^yZy$0E)O<g3nfsjVaWY&7VQ z<uGxQm)oYR!fj=>>rVy?E)E3D?2zZ@r&4Ea@^%z?cv;}8i$CgydKi-&X*p)?Vi~Ei z?yJODd5>Z<vK;irvereM$E)t3uQ40d*6Oy0ivl!r3}=LMR#G^$W~>9UvHXO(#-(8J zrLhk?oM}64XYj?upoj}t_Hg+q<^jtR%7ay$wh2Ya;kp$p7x4zF9^MqV^UPo~kVmV* zmJ5C#tEdT_>r?V6r~O?Afwy)b;vrWHfy>p^RMsiEyFnuPfFxT73mS{Kf@>bG3NXJj z)~n-#)`!Gf0;ke^rwJ_r-)HG~fUC!FQ{9~iE_cZ`&0wfl3uCivda`ZnKl(h?a?{cj zz*Lt;`>--*^|ImO>AJwzb8_Kgmuyy*VtJR69TPM|70213vhq|!9m|gQw|%^WcLn^6 zo@`cN?Ra)FQ${OLyq{(VkFeq!M`PuwH^((c0N0A!Q8zR(-$fZ@4>trJ&dkC56~V_% z+~PRtrS-eH!#5ZO0$<HhwvP|Wls3N=MI2>L8;Ws}3u&I;6UdcHuCfB9va73npXc~p zgwM05`0GRN=eb>~tv$l&+LcEr)%H;SAvJuSe~ak?)&;-g1@60rY>pRkj$473aCWj4 zu{$@nUi%THeVl(#*uyLPxbR>Pm-ey3P30%N{upZ~kXh7uX#FuZayWE%Iz{sbR`4hP m^Z4suF4re6^LUS)<nTT|;I@DUpW!3^D)U%_TlY8^{QLu31<_Xk literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$4.class new file mode 100644 index 0000000000000000000000000000000000000000..58eb81793074e912f0dee7d867f81636d2de8183 GIT binary patch literal 2321 zcmcgu%}*0S6#ori3uO^R#BWh4*cR=Aq9QdWS}~FoV&qHXY1kdw(d}-tvrFN>(u09$ z;?0YHh!;=ZJQ?3~7lL4vLZnSPZ{E!N{=GN-^7F$d05?%cqJ`m&=a)^Xqzbret~h+z z3rw*ltT2$COUyu2d95bhvS~~1cx7d(z$b2b-JIIGR`gt3>ihFPx5Tu&B7EUmVlKWo z&zGl3O?o_uHio694U#L4GFPM%2;W?kqW+{oKJ&d*X$$|M&1-bRkO(SLrAH~IQqwjL z8dQPI-j}Wn9x%9>Bea`cWN0gTw&(yur-5Tgq|k~k14$fbXwB#g-6iRY*|54Sd@6z? z7<x;d#hpd&OTCYoZ8~ub)uVGiJx+=1EQ?@XtOc{YN}ly)vZdF2m75MHun~3$bA@*F zGx$`^d<@Zi1kwC9L}PU3V|3=X3Yl*boq5-rv%H#!u$96YoJ-;?!{ol9R253`vQXws zOc*$i3k)3;W)u#?aAt3ee+ZkQD}sBmLdg&|!;1r8>$kpHsM$QwHID)mwr-?Cb}@y^ zxSGTjh5;R^upC)a!c_IZtV^3*SLS1>Y7SpFFo-lmig?A)rw$Jo2B~QO5Th|OOxW6Y z8V^5a(qkzMA)`AX%kcRCncD(U^CPa%d=KrjOe46F#C3-B?tELJ3cRZMC{*jyG>0u7 zc)o!=OoE=Oc=e@<)SW*O<>4;{F6_YO^U!rQS_mNo#&8Qf8Z-<G|0PI*)|?mmmPRP~ zJKk&q>)}BoZ_2eCPtow05kbYXleohmj|_bVCUB1-M@=#->X8e31DO$SI2SfvMVh+{ zne3}WW_0hXNb}X0c3t5Y9j=s6)aLXm(8JGqdh}yKl-?!LPW%p{CeT7(Ae9?=Pd^(l z-qEfF-I~`pVI=nzJ+wDSMsrV~msW<8=!><C(yGrAy{9&D`YlnBhD3w=ZHIJXTlyj{ z#nMm7g7%?j69XSH^fEWHfoq${?e^q5dG({At3SFQ>mo^vVvMx4(jOdc`xeG&ZNqKc Q#UxR^#MA!i&rr1d0<GihCjbBd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5$1.class new file mode 100644 index 0000000000000000000000000000000000000000..163734c287fc447c7d9487388122273f87a6b098 GIT binary patch literal 3151 zcmcgu>vGdZ6#h1LqTq<caiFy3(vZ5vasp~-!p#H<u4zr}KuPcv__dZd&Ze^Dk>mic z($4f9Is+svGyLnHK0+U+)3cUb4@DC&o!T?@YFEeS@}0BiJAeH3+baO)@tuY-hPLaq zOzBHM;EuUv^M)Ik;)$@jfpi@@3`CoEI?`#GP04My<(q!s(P`_cS?-IKT&F3O{HDh( zQE|3}Cmc&`M1q^VQ6V+C)!ed%Btv?K?{d@Tr1MT=M_7S|35Lwz^j_C-c*7P96T!Ch zbIasrb%cHv8D@96o$Gd*JW!6*rFhJ6e|R4VMcX&Gq#X#)yx&)MtG5?TrIu_>T$PRt zt}*<cAKt?IXQMd0v3Cf^s52x>Zc`ir!;B6Mlj><!$04LrNMKIK6pk<?@=A23Djl)j zZ8wBRWuj7^sk#=o>)exS9~~xD9Wc1VyZrw6<d!Kn39svDIL@#ZQ-A%NA*lLY&n($e zIDty4@aReew7KiKyRs>~6tXy}0zbtto`3kzsHZTG1r4Veeu&Zhf89VGpCHFD$t_Fx ze(rOIKSx`0#^^FwOyM)+HJo9PBZF9nfx-abRfZo&2yihLUd#1Fn{K3S-V=U@y1Hyg zTLw=Fpe3BsaF)S{0jOWywXpx!xWik*(_w<jCe;!_^n$^P4RK(${DkfTS+zyk7Hzr~ z@qYFVMr-JDWTcnO^E$r3$^hL9qivb74f8;!jYo0iu81xS?smw36kHY;bX>$G23<Ox zZcy4LdK68DN{FqnY}xUJxwAzKYwq@XjBkd$rdS<NXQc4W6Qi!-3PbULM8~wTDsKpT z(8Mm|s%m0u)Z+6MqdtY}xS`=ohK(4t2lueIQ;Ck7C@~!Fv9O35D#K522c+b-JDi3T z*9%h?4_@W9;0~1B^hDo*J{U2eD?XbG-V|lH9#;na%87yfU+h6VG`SOImPqi-I~El| zN8{WeeZ*lyy74+dbm=$Tu4f4vUx=qyh8+LSsUju9FFTg)`ZQ41M6m5Pb*$qKxf;$$ z|CIgru`T7lmQ+!tNUt~!5wy*HU--nrMDp|<$5=Y8rWGKaQL_ro$Yb=Kf=+J_)6*L5 z6SU407N29fu=E`1!X7fe^aPL6Z>skPf{7i&2eemzByk+WhqN+$gd>rvpUGU3&ThU$ z_CX@KhZEJpGfeN}<7nB(r~6pk$8v3vv85MSeTmBtW|MP!D6W%8nw?!-`W4s4F|eM+ z1R2Sa_2XDzCt$Es)GOz4gPrbqQwS|a-lT8|U!hF?ED!{@@HP3qf@yq%3I&<KZSrmm Y-=a!uk|b)lOHUa(o2ONMRBZJ58=SKY6#xJL literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$5.class new file mode 100644 index 0000000000000000000000000000000000000000..284bef62bc2cac4c87e6f5906b04792207fcbb7d GIT binary patch literal 3116 zcmcguOLH4V5dKDzwYIXcg%V;OCNC>N52CeAY)q5{i0ptI%cLUPKyg~H#_~9;UDeL6 z9bY){BjCs>SEz!D3#w9ZfCE2)13v^PLXUQB6k8P{S7EzWGut~o{dM=(J@f0|-#-R0 zg(VF!hWoD9G=vn=HyvZ$HrHI=;19SJ_`-Ea=<}A@ZVRVrG=yopO=(EqBWZKTnBQAg zah--x>z6&#;#Fszd)%>jJzBVIu2pH9?6igiLweKPG7a0L9Y0*#<d&}?$#A!C7zEIk z#=5Y5?is6sZ{O}r?|SZ*XmF1q>2C;`ogfz%``-MhK9<Ssb>RsACWDhZM!We{hD60} z@F6gq)S+Q8g*ZlZ3?a=B.?i^AbcL2HeBloOjXWENe^v{y|}sP{;iP=RA;9UuJc zGzIQNll#m3fxl$72-)dee(_(X5S566<w3l}@EK*Z6fw3GGPbnO*ods9h^(c(M3(v_ zYsurXO$8v<gf0A?y5+WcNU#)M!I*|u8LmAyty)}4v&p4VizYf=!&!zQayfL3;d1V< zzdb_0FuY~jqCq8ikITUJ8FIN#yHvxXD(8F1G+boJ_CT!y-6HbX#zLr`LKc@bTw<7f z=JL&kZ!C~<O(`$TEw4~f>UbSFf=RxqPxCf!afe{u=~)klOqcT=-f_zoZOIK~!E!xr zRJ%4)Wkw0=cz>#gqYO;YQ>9X<`=)ijX0{`4p9~vDWrO+;Z!mn^6VyJPdN#nPI?qa* zQlW|`WCw4kR#eWfrZ9;&HB2#_QxV*AM{fJZwrEgnq%kLC+ctM}T*Wj)ie#0*qs~dO z8YlMuhgw;~TU4Yy((`Qedlk`t`_4|LFoU;MOS#7I^ARF<blc_ro6&Qo={jy|xDnMw zcbcp~`fkg(708_`oo|-uyPl4B@GjM@+;F!)+7POR&W3U5);y5la#wZU3miwWg&0EQ z4ED&QNW-x5zc|S-Xj&FE9(5M}cDz{&S$r(l3+f4}x*K?wszl1m)qXp^>O^!#&O4Uv zN;++7+~05;8mNniW2-V9cd*D%pk}bdw?hbr9jS3As0W=}6&=(oIcoNOBYdhn4&R?B zoO;!9xL2`FDY?XXx>&^N830SC)%}7lkpuJ$Aw|*?G@C_?{()4X_#O1ZBMg5-Z!x@} zWSuWc`%h%(T_+tSJ%!UWGQ5a0(Jm7-s&C26=q_IVnr7h+$&U0%mv(Yr`&<W|!tezW zgc6u2{(>v<8xL`@I5zbYE_{hhag3%v;=(S*>kpw7$5{RI7#k}-{_4r^MP(=6L3);a z1540VHHjfMhzv{N0vo2YFo_b&bnKrGZAA9T8uBO*z9e!e;tfK4h4#}i@E2_{8jt;< zqJ|O-`c)`Dpm!Ci^e!fTz|1Fw;v>xNqI@7;Y!oAGykqf9xPISa8t>s2WnvH&%tgCi qqESU|pztm9gMkafu8hVpProtT#``oT2+RU%G|P}osjI)4aQFuq^UPoX literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f10c6c4b2084ab1fc81045505f595fa6e66112f0 GIT binary patch literal 1786 zcmcgsTTc@~6#k|yU0PbH;QflYDmU4b7()Uv#0HXblcc03yiIq9c3`_xXQ!Y)#b4ly zFFqI(A547pM;XtQg+S6ocz`xL=ggTi-#KT_<<H-rzW~f()<KFvDc$sBEMvnXZ#U!( zWjygw_+2AaL_#Clywj0U(+eaIRWtTtqe<HQ<SieoRa6v6tG}(eFRIb5&?53hEm7R& zjVi&ouidg+c93Bx?ePQdg`7~|HTHyW9Ap_b`?zv!T#x~!z4uD*#~m_Km*P-pGHgU- zwzN8sfzWQUUy-2^njvdiGIr-E$n`$Zmlx#%nO>BUG;bL6#1-3~tTSXPDiAp^6bo=L zm`57J1>{g-NKaUW;dL2_&2GCPG-W3g3?u8x=V6^|Y4?dRV;_*=!_|i1mhA&_-xnRj zu+;YfZ2`3@$k5vhjCXik7T)Sfg;YWw#|t}?JA~z1zRa-LFOc&>F^sl&Tx+RA`$CnL z3<D~221XWU{^R88ThZbNQfcdugNF?BeJb*-C)IW*l)f}n)YNiapX%R=7zP^&7{j^E zQYq97_xCq=C&_KTrn=e})GL(zR~PK%S?em5(Q@R6DyHeMAxujJ4xTZz`$Tqmy;i`B zURmodrJ_)cBAN;|+ah)_#jt;c&N!H%a_wXALPLx)b!LoVjQTiD-vC&tWZRjhcbdK& z@+2K1ZXPN61No`x?<h?Dz_o9*OX0ee^-kzETfqqJ3v|ayM{$EF!%f^uP?m^V+*IbP zU3<5)R-3K$ZjK$DCO56dZQQZv#NEX`S}odrTCGoYq86<<{TmNH!%2TZrU#rp1-x|% zxOf6w#3MZJ0T&bCF#;MuYG}z~KA}wt<9JFm0~gORLEJd;lSJ*$Jt92_%MM@~FSEIS D&sGqv literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a0bfdae821fcd456af1927f27492163c018c745a GIT binary patch literal 3399 zcmcgvTXWk~5dKc2Mzy0f&V^fmURAK2w5m&K0k@@%n}Ay<%`}ONDKE$JaiUa~JdzyX zxA4mF&J3LdGQ%4@@Dunk9rj4_cv?JZm6=*I_PKbq`|X}R->(08{>PsHuHvDFF@}!k zZ<}^t2O)ROw!@oVXo??%)eCLUrOi-uc(-f2+h)t=j<+3{LFm)&_K)UrU##M}EnCWO z`rHy#w=I0(T4Ey++~mzFsWGk_B@HS=ZkO+I)8VA^VRKhlp@wmWnZfR(p6l|aBN)cR z9Xl{e1hY0moMndTJ?<F2Zi|N!NZl6SGi;^DKv8r8vu!(}@Xf8hx|L`xT2d|98oz0~ zc6giNuY7t7$3Km7dSkEQPNB}AR=k$TfMH69hLdtOts{eM77Au{Okj>d$xG3xn(d0U zUZ*L1N)vhHGd0iRPM!O<Tqm2V%mW55J>=uZ$0*U+D1Oh?@IILyVg4B<qm;!wK9r$4 z&EStTFUapgUBg+1+e3Wrvw@%+@A>9q&wm<p>DJ3!7JiL4g|qH^dv;6sS)9Rn>B0p{ ziF{Qmy~uDUwNj#&P`Keht$~lF+B`!e|84XP%ZsCtzNFMh*74P(0Ax|bqJ{;Ar$Ye0 zDTdT>36~j8a?27yU|eDNccf=uE)0w0oAI`s#T8uDK<sXhEW|oK!L>nvZ!r8a!T^^G zPlm;}pQ*{%A@+34bskdDa988%8wKmSjvM%FfS#s*j}rasgYTmr?ys!$v6J`X2B18F zFK|->5$;CnRCsk!(s2t^UMHh^E|Qzh@KYQ+VL5g;5aw>1Xw2M;cq}kuKC5`0E~j?K z^W$ncT(<fG?Hwt(>5D#qKA)9qgU%-jhpdc~R!n;_BQdNWl{v%N_-KwJ6V&bv=$fcG zy@?k+XP6ED?;yicdc`kcr_9K1cs<_|6c6eWuBB`~FUuHHyRqzAju%inyDGvRucf1k z`xJ<F)R9$os3#RIhHs8>t6rUkR8<)Cs_P2B;_x64freFvwILbbXM|&%D|wT|F3udB zrS?mq&k2m>a<U%-ax=0UqkjQo^qGK8zfRKZ7OfQ;r-}>DaH_cY47uVyW`2zX-=gnq z^a33PTf*D4mM@Yx-od*xGQ5YmMAgq^K&8EVhnR1Wk`HQ!IMbL`XZLY#^$<owRTM>4 z7xwYdTJbmJ*y1G`P930-3<od|@agaP`~(K}PZNBw6=c{JCRv?c+oD#oK@G+eRM>YB zrebV2!IVK6U*Zm-nxkrS7fa;91)M_#_sCTR%Y<<ZEBJ~=l}i5CctErB(VQmqNDt*R M9}lR(z}k4`KUofK`v3p{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$6.class new file mode 100644 index 0000000000000000000000000000000000000000..01ad08201786164b1014a2cc24f9be3712eb0f41 GIT binary patch literal 3111 zcmcgu-)|d55dPLqe2IH)j9XfMgtlqj;2+eNq-{v+ra+t&oW`N5lK?_Ox|}!8rsq5B z_AYMT`6J+wr@n#&Y6MaR5AeXBzyp5>Lcpx=65PZpbtIDLynAyyJKxNFGrPb3_5D)- zQ&`pzV|eI#4MRvFebX^EY;)c94gQE*fiGN#gg$SYt(I^aMqQY;+mMFzJ(4zdjD@{r zW!I?-wSL7jEnaapxW^rf*P?|h=6Z#;$xLe)U`TD5+ooZgwBv{CTio(BBpB}Z4TAvM z(%2BT&pl&J@b=x#^uFhAi#qoh68@%;nF(@nsqf8?>SKw_-WHDV?=U#oW3-!FV;CsA zbv_J+lR7jEB@xGnj$x!2;#sv|WJx%DIcTnPk8)yjhV+tanf99L3H2Tc2UOq~n#Tt} zGfjaz(cu0Hf8;NlO+t1in_K#qDMTfrU}*@iFziq^ixFdsA!CdCjE%@zjL2HtOJuQ6 zvKB43*>WB3_%+LI@sL|dyoON?uQS|wVMaB%lxBlVqZ&<gyn*u!!{lw~6~lP;u&X`1 zXE?QO+M-U?_khd5_8GF-PrFpZdMf35$TVDH$n-$1V%#L&*v4Y0o<s)Y8m=%*K6m+6 z-8U9VxvG>G=T}y#9(BBlEWsq-)TafTHz|S)_j;DXA=9N?hjQGqMN4u+S+HD>8<noj zRE2qw_osU}%D@CY6{>=oZ(0wlW-Frg$*@<HH>vgTI>X03LG3fCXYYHa>8!RW6{>DR zcJR9DLZ#eV5|g;5VT$2`ir}6*vh5pfQK#5QV_wLXZSLr}jvEX~l9dCGnkL2SG7<kj z)JhuOruyuWp68?AD~A3%cV;q)Y1~xZ<QBuvM~K|fZI}A*Lob-7+qk1)HmZy6G+BZ4 z-KH@Y$ejuuZI<b~o{o3$F4e8vblV?o3e`Pl!Z>tm9!PMht2!S9j-%K@3?Xs`d*o51 zVOafNoMad>EsGkDItG6`-mHZzK9-vW^@L>24LnO#BIV_Jzs+8CB03%y9Lshk9W+($ zZ@P62)J4RxRhf=^SYpUiGg#*B5W-<cs@w@`LFYn6XY^{8ntk60pDB;SS0@UmUU3}m zm2Fc>E^(3W6mfb6!BQ!8wV?asAU(rKlJo@4W)P!)Aek?G2R;7;r@o=L7+zAc&KJ^V z<4DuHPC80@8fR!^co}D-T_$K$-xBF_yLk0$nuR+gl$7PWv=jT<7dq$^hA%KcD1nK> zFSr_?eT++m(W##>_9fDVQJVgUv0YrQJ%&~oWwp;^Y_#z7tG|CQC_C{E((~jSm_fJH zNer`VNV6LlV>jt6oJ5h$cI;maZAA9T8gj@Jz67!;;4MOYmG;vy_$O^~E*|?sMGZw5 z^s7*QK<_G2sa;I`fay>2g(sNVMd?7i*c?XKXB~@Y!}a?XQ+N+^l!+mfF(2)Eg+>** m!Th(-4+bs_yD}Qb0{zBt7w^+JKwuV8rCFL}N?rX;hr>T^c*#lt literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$7.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$7.class new file mode 100644 index 0000000000000000000000000000000000000000..7bb695ca301c478334ea16ac0644a9ce47804a45 GIT binary patch literal 1913 zcmcgtZBG+H5Pk+q56U5ki0|(eTdH@&m|(;hNrMSVAtr@t;-}?q+b&-3n%gVlztRuJ zmk<5`f0S{ycO@z&P)ul(?(FQmJTv?3^vBO{-vK<tl7$h%+bC|iN-Ld+&}{}{CrVto zFTGx(qL7t|?1*kxg)P@tB8Xbr)k)0S)_ZqtU{;MnUm5$YSa@<hY|2=Mo~&nvTViLO z!xWb-<Or{ZPRLLK?KV}A$k=Tt`R+wud>Kc3%9rt~FS>j}$R};3i%VQnZRi{)Eoz0+ zK2@Pgo)N;*DdsIV2)SzH%Lx!BZHysbz$m6{SU5u%Eg6I9nhND+ud^d#zJx#$W^0ir zf`*8d*=Nd}X&j+*dhm<O+_=e>Ot$2HvMD-@Y_3$U?TS6&27<}P++ohGjANb<^KCjA zMV*wQ&H+U;b~+h5oxw#qL$cEeqq-M$Wy-ArF5<F<ON1xKrcy_0Em~5$8<}9^3a%0+ zxXiR1!b0hAjsGZ{FqP81+U90RpYZww-1_6)Y<GQ;m^)7kl)iaLE9J%{ZsN9uTZH<t zD;-RNqZ8P;gCfE1ne16=LM1ImdV%U{>FzdpYPfrhN5;DUz-64GWPIF;zO#XDAQQHS zr|Ho^nT~~e)Qdd>lG*rZSo#?1@`GCoy&%#|-3^(vBi}-WpoVVjfW*U&SQ`)E5Q@yW z!}wQye?x}7dapl?`MqzK%5VO&mxre@H_~1YLm5{Cp|#XZFP=vHheI<nW=OGQb{582 zKf%&tjPMsIELJ}8&u7>lc{hS-qwAj##;A=M-rMYBv}ZBPE8!gGvM5WunzQ`u`7gNe zfu%G;-e{@wn|J=e`x>ri-p|?EU>L8^SKJuEUkFIUqNE>VKDEnYum|p9fuoG#UO#6E SWnObw#C^Cd75L2H;?FNIQ(IF2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$8.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$8.class new file mode 100644 index 0000000000000000000000000000000000000000..9f7efe9810bcd201594c4596cf37927cf99b252a GIT binary patch literal 2170 zcmcgtTTc@~6#fQE3uP;ai1&NNmTDJ~2eih7G?0)KVp6CkK23M0WpKOO>}<It#s~dF znrK8H`~m&}|Bdm??v|*KNJ~OD>6|$;b1vWc=FE>@-@XHw!+Z(@46i-EX-Xwkz+JQ9 z@VXb6Vpmw5Kzc4I1JUB`wsf1OExF@0m8k-sw9P$psk^Q0xwh2%*L`k@6}KUL;aZ{^ zZ(Qf~6*7}uNFl-SqGyK`ilfYibOPa<H7RzML-D!qZA)ADi#Bi53PUp3lqx$*IaPZ0 z(Qi^Ea{E-eGI++|=1$RXzQ&L!d$t$>!>EBFB-0o~#y|>Z7zT5C!&pVSVy)Av3!jSM z2!@G@XK|;-eW~ZMGNFNEXq{g8*#!b_v?+phu^X)M7DYCh%U8DeHa8tkWFzhn=Sstv zVt7l{EXEWqMiea`P&8&|F=l76TgYOM>@501wTbbvE*%-{RV}YABA%sj5tmcA#PH<U zv}y^ZcvC2IH5Lq9!BvJ4N;yi6VLEp>-y<Mk$VAjHZxS%VW_Z~L&;GhY8*Q5hy8cmu z!q%6nl&__66Sq^i#UPKJ=}EhSfjh`D40FpOsIre4e)f@Gx9Yw2q*A_j&PPyg6J)}V zDx;2Y8xlz4D*OoL(kP~pOW__vwP$qyUp@nQ%rF=oUE8>@421|wVL7s`gt^tA{%l5} ztFV<GM5o(DCOoW(p#x{w=og#_7V~JHF{G<r$G3ElbnoYTy{NiLP-|OqEyq*TBvwVR z>DdMzVvZq87woXXMcZB#Zl~G_A0ldX8@c?e6DFr2iYnWEh^VC*E3Pa2vcr`Uif$7% zVtQ-Y__*%RB<WcS!=xV}X#oTD0qL2-XZrgB<0H)mFs60k3d0cF!8pwgI-|8`F+n54 zIZVb@W@*%G$%*s(xbT6b$U;(U*_%I3Cl5|v!}a*|GVRteoGHwFLV6!JzT)lx{)vOV oLx#N%ElowcV@q@n1>7fFgLn{nF2bZSLAlT35lLxU)6voIH|}h_8vp<R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$9.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem$9.class new file mode 100644 index 0000000000000000000000000000000000000000..f0d0f45ca421788261951e754f196e8293865a9b GIT binary patch literal 2166 zcmcgt-A)rh6#k}^7Rpu-5&!=ywp4ckxe#kiNCOE;Atr@t;?=M_ErZ+LW@n4=0^WF~ zPojxN^uh=51$-OhneLXTkVs2HH|flrIdkTm?|kRXk6+)u1DL~n8VQD1e$cR_k}Bk$ zRd@NOA6jBp*zHjI9tlIy<gJ$U8kQru>o=68!hocWJ!`3}R`xwdYW?+q+hWD5i$Hj` zsK$!xd~=1&<QCFMGCc43LUP4bR$aQG2&|eEua`U1XMw*X9T6-#yhS?<sc=iG+ziE3 z>G_U+gDTOrPoyWqrwm^H6z?t67?Ne*5yM~@F))Z!1_Q_%NaGB{Kwc}1R-`A^+RaT7 zP!e3hFkbO(?$&r9^*R<NHE;~g({n$!K){VOM7S<?!!_O{&nEJP$~NEOmdlB3#2w;X zX$X@Hdz4Kxrl=WF)I6YQ%uX|Ar`b)U*&{nm+i$jfPk3R~_FE#NSOynyIgLvUkB`l$ zrcjDEgtAuSiGeG)$}mjPMo}?L<qwB?MDz^Vi1p<y!bCU>FZ!U^U*)sWa(Jjy9|b5J zT~DP#ErXl5oyIK&dF)6}+7JxfL5_gowoOpwW~p+2_7Pt<<GuEyQlWRgM_BF<W+I4E zqmH<?!ypZ;2qKtEBbY)yje88$p5gs}{tOf_&0w^3a^uW06eBE!?aG!C)^?qGvlY3n zI&Jj8JKZX>ox_?L+Hr=Be!+=gv5qDhL#FDt16w;uH9y~Lk?ICPZEeZ3U0+dySQX)x z?--cH97B#O?6AQ_$5|C#yV~wNLe%Cq@`aZt3{FE7Ww!eWQ9CnMJWm8=mn$U{l@m2# zdS}_#nC{Iq)2lRwNIp!nM@Y~IWTuOs>F*1SkF-i)RLeR$41??q#%OKO87)1FaT*!U zVIsCNL!;hHji2Agg%31~ETpuQz5U~K>frP>T#rvLleYHZOmX@XGW)pk6?YT(#}D=n oS@ynTX)@A|Ezvm?ai44r;6dkR6Bdn0ihTwTX_lcq?H&Do1N{BEPyhe` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/strategy/ExecutionConditionTraceInferenceStrategyTabItem.class new file mode 100644 index 0000000000000000000000000000000000000000..06be6bdb8e4177fa45cbfe9c4bf5d222002c81d5 GIT binary patch literal 14869 zcmdU033y!9b^ebu@{>l-JGK!v*kIvEBiUmcFt%kDA<G~m$-u}qk`v5$=2;pe&8RaY zo24ynfzT#2UDFa1(m<2AX`Pn1;3X==Bn1~pf|If)h0>I!3oR`zEiFmo{`bB&`_*_9 zK>6zL)4Vrt-aY@>&$)}A{_$5H1F%~5Sf~=j63M|}EEP+o!|~wm;qb0RI_TW&M8?vw zM4S)P&PaH4G!`EWMq}aO#9%6zN+<br@Rnd_=CzJQJQ`E)_a(y-rz^hONjmX}6Y^f{ z3-9V884EtatUckq;oxwX^tSBU<3!RHrU^PsOvDFcai@rvEE5^pS8nav6po}5$y)@| ziI+naZ0W9;tY-X*aLS2>l*k*Mw38f(#luRd3{;z7M$$=*QZ2DvvEf*nkjqUFkwnrN zNkpCD;B^JBlfapg#0UvE@$@y}G%?~mu5wd?bvsP7GRpU^F4@AdBs)J9NsKxj8QL3T z;lX5hghZnzn&r()!w;u|dt=T%C%HQ|OeRx7S1B&lkb>H#f8L~jCjLT=Unp&ki8Bhh zb4LmGyg$5^dZCHK1_Or~M$XViNyX9*JvC!(!8McTFXefBP@AHNBK0(FLo6OkUn;0> zYThRBb<j)vs78a0d6+Ml*-e-49UIx@B+1IKBbd{jh=hl?g_AM$-FxUu55;KQo8AM1 zrCQS=Fj4H1_nKW}vEiuT<t7d5M22IdDJPiPmk#cWMF*X9DkpWDiL(jA!t}CZjQ%pg zSviqR9_tul7IJzM>Dca=lWc3=RtLekHs)Zqx?5^vmV0-;je6MX*@tY*#0+)UY-756 z*J5KX&akjt(DT0L8w)|f*@~n|*WKY=&afXVuuA#PYVuZzUAmgL)#5@yl4MtSS$~C_ z^;cxmf|qMnc#2w)@#+<mbeinI&Lr{tScA0|E*7jesVP%SQu!rk#7U*XgH9^g<K5U; zhxLLwx*G$PRY|a{sXJFw+=p$=rH_=VHrTiXj6N&nr2Cwk(}H=X!P*fnw^0YbGW8WU zEYw=qDCn)2^Nf>abeD^byd2{v^-VUe#8rYuid3rK_Gq-niI0WGbOmM1Z*6Ke)`_g~ z3iOxZ!p-S!HV>-Y?WVqKl8L>sD1Bcsvf0Mfije>r>2>z?IO(B8w3MTKcGR#Q8@+1S z*^#8f%IQX^TPX<QgjnKPLoHk*xV~cTxn*uNnP9^ajE#&ISJJ-lV21ZD{_4jTH2Beh zkcx#qk;|I~J^(HK{~&2hgy!hdJ&LF0Je4vP)}s~MY;4E%f(AN-xj3+KYic&)8MC*U z2%WD312)dV4#8k0N$fo%s@f|Nrg%-slwGs+n}x476T^be%Aw1YD)y0)g4!c!ubglu zri;oK+h0OPZel~}bqUjVv)M=udF`=^Rma9|WziX#SalnDW$YmvG3=qSRcbVL@q&%6 zaf&Akld-kZeA-B6!tP)a4pv6zbr?ayLR@gEDGM28$R@v(s!5(6ZH(e)Sb?0b-cVnA zZ%3!#^2&{8B-vI^=2AA&7-RZ%ZKG{)nhA;E+DV7sX-Kx!VIOX>a5HI}^i(E~WTM2) z-7Lg<lBmDssqR)m$f&OOM41}gho80abNG2dQ^vd1M9!^56M1xG0{u;bnbU!gwO0Is zjbFqs31&083TH`zm6HqyM$k;R{m}~U4Uce|a0Ue_>4IwUQNdoC@q_R5BAFF{jNO@z z$mDfSdMp|5yJeIt&MjcEV>p~jF}c=-VuPG!k0tp=wDgS)Mqe>TYb6oWcBz8Y+9M|0 zsf)}Gp!%ht<F080JKd{V!cYljETt>fCv5y0?x9$F!^5#CO_A5v)!{erTNZv(u*wib z<%!$)ZG2MT-`KgSeQS5$&Mj99E--1KJef8Nzso7C0scL8iWWY_dFQ05W^%)1my8-$ z`Ef7qQ(fJs1#x4fl$YlxMP?6V;WJYz>uNvl$9)zam{QaW{P-;HQ+`}BEns|vK7gK= zSd74)a5^%?30&u}Gs5LCVhtG0Yg_<hlcSa-+stzzl?dG`wAo!_WH9^zXIKWeEqT?# z9||rpys5*Dy)su}Mp8jFFX>JU4mwG1X4)Q!jE#&9hq)5z#~0C1k1yd*Ec~$`XdqTj zC>syq%Ut-Oj<zR~H>F0orm5t0k`tz@d~!}QSTu|^{ZH|Tg@-v;F2jqbQ<bc39L5ng zzU{sJeOGn$Udftj%0L;|ypgPS$1rZ;E9TUf8KJJFjN14!Jjzuu_N`oJI$AMiIo>=( z*Bv}Y+XhS{3JqLp){32t>kA$#m0&{hehnIVqvgF-k35&6<xPZ6%d%iclQDwJvQT+c z{W&`i-F9eBxOjP!6Yb_!f*)T;gL1nQHvU4nlGV}O9tw4a{CFDQu<(r8J#x{wCz=j! zW*GOVDeC5peOp<OZG02oqF1ulNQYx_W{gYnS8rIKlWL8$&7`Ru<xEOw9;nAje8<AK zIUmZGA(giAmw1kAwBab-uwaGAODFEw7i_$Um*}sl*sbhdxTM>qNPgGG_wZK~Ih|-v zCd1q$Xrc`?Lf*EA@}`n!7GC8#p3z{X0x*q^hPls@*2~>J*?ol7#_?qhPNh28G(5}Y z%d==I&5nuw%w+9Q<2Cw@iKH?mb7!J({hG<eo1LyLf-!b_rBYwYT>hGce_~T)$YrMs z2n+u_rN#9^Ki*I!{a>dP^&&ssRH*+xrKoHCcuS%F=aiye?8n;*^}nYSb*&%oDAXTL zDe5{u-o<@txs2(?j-}dDDK&Z0`$Sh6tL3D3QJM!V5y4JFY?=FPx3FfqZ1<bH3{!6A zZAtZHG-m`+%fe1}J>@i8&|L3h_VTl*;>zAgSoIf;-qbI%{5R<A4ss(<{it`c)D3gr z0*)!1vb$^Nf?@OA(X6M;s-4PE#k;GeLX_@cTH+TBRcw~`2xo~cSYtplmXX5kXur&m zS(eP?9$6UzUcKrG$GN|gv}Lx;aqZ*%Acz<}I=4*Nd2`xPJMnY^w{~&YrwpLSx$8<E zNSj~k<P6R(Wu9s#DleRc61NSgWlhzv>t$oLyYKo4*IeaHTN>mnZjtBzTsWSd**3wp zj>mOjt5`U?&5}jz1#~l^>!0pAbQdNIIT4Y?a;_yy1T6;b<kVT{<F=e9OWie`tW0F{ z{Gym~M%<W5#Df~TQ^9f$a8k~<Wtn`4jRkkrxe}P*<Yhhw=eX4E8lSh-OS80C5}*c4 zf3>AmxUuSs>)pD-Rj$n3PPk24Ubd_VJ*u5lfU9g-Ef=t}849O*HEp(U17z1zxJnjG z2JTS}eyPiTIqjK`LNI2K&3RHQ{TMr)N(`+QuP&>ESk9_N%qR-y&=GZhDYUq^Qc78O zzh8MRzYdr(+9iTr2A`aK0xb*Vmkn~6it)<@8-DT_S0S!;!n7b+wPv(tNylVPF}Vzz z4jHMG(P`tyI3@VFn*lQgYJ!s%I%x7|7OsaBJTYn6xQLpm8%3K-&D#`TSE)_9#YH>r znJG~zsv2^&+HtyxaTSh4xP{-yko&eVua`G^roWi%`k}cbl*ckv=&}x`cF$#tE$fBR zl@XMkzsPmAwC6v(NU;B>E`2UJ6efT?=GO?Gm`Xk;UAHS;p-@J+-p1$gg`8!00Obo) zDV&+tO7eY<=e2?-r;_K&JE5LQuEZ*f+@LJ-wVZV81TRjdbjCh$@=2jHvrCwrdz2PA zCGIX;EU9G=;pM<pE7eoSmig+bKa?0tMjUlkMsQ&%P4m_z7g5xH)C!gS1<#ZwUsFh# zXM>rPAM$o=b0=zzjmm`SqjJQFtDoMVv%BJPC#g3GofOXHxrJ)})u0wt>L3=+E?23e zS^COzdHTw;c>2oIdHTwed-}?=eEP~0db}<s9iFq~=K_8U@+!R61dia$FYDLN;^#E| za4i<{-gaNWBAm@{?42|T4i<GftcK5S3&<l_qCU=3AC2l`nfho_AA#jh!oU1+wC=}( zajfWXsXl_0b1pcFiw>jh04@)-K7z{v%a4QC_P{tg`h8@klYd=-!{{Ezmi{BS_6V*c zsldYsw5V5)VXJU~zF)Ci4aM?$E%i1sw4Hjno@W&MDenLpu!Agr1n1!fG~-4dev9G? zIM|Fqp7t2Rt=OZ*ywDZJ6O%&W!yKh_bDP$5mA<<HJBg>B-H0%J*v0!AR5#Dvz*i$# zwQit!)X*7ZxSf(jk72M1IsN+iI}qpb$wZ!xXJmEEeu3kafs%Yv0WLX&;bY(oqNnu` z_8!A+!c7L!Y;8G)+j)72?^J0;oJH#aDUM3hQBq`njFk3L3HvnG5|>_9&?Q<th9=)q zuBAA?19y7(D|uCtOq+8TEtW%ZJ><4L?x$tBzZ<_yD!-yR`k0ntxksgXP9CE!iQDr? zRA)(i9QSw(^m;?*D%(GadUZLBUw!BheqC|n8h?hC=??OL7Y%=R9?7{LNo6R8&`jEl zNA*0~!?c|;MANiK@jKlu)#JFgpVrzRYVnQZes%kMp_ZC)d{*5)7;4FhKVN&xJ^cIx zPslz<z{6OEr!??<m!=0?gQfU=e2$1!ss?+=dzIG^d1=cD)K))=0}qYki}dq9>Y+Uk z3J&2=i;rG@w1zuj87b$Gd2j>3hi}nZ&oZn}YCzYbOFcjm#bfv?foAg<?{Pd%U{Crw z&BNDR9^?-4Fr5VN9>>=S{X~z)LT^j|dh4+@)2i3h96+eSnpd-Wy|2ON@%3bb&$nDN zw!XHZwtv0-*qZw4HU0xw++ff1uU=o*+E8~CPwj`zn`3yk3fu4W%RK+Q`Ug(Ec4v*u ztC=_Lfl~)tDcth{N`4G4SCP$El$<{8!2zAvo}({5PvyRVM(#1J!%H;W%M9-CGW1?z z(7r(b{%bA&RkS<B$jW~=pT9;SYjHdN2H&U9v*`Ou6V;@(No&VPimULqc$IJUQcthr z@2JxskdDfC?#RFQG&g{nQ%rt5{wfy!!NN%k|H$gad*Bq4%JlpnEPP4-WZ@P4&MUx~ zRi{YXIGhMPaOxTarSABKa=d@h?)av<{WtB7Z>ih=D0RozY0w`~)*oV_EW<JhpT-?| z=5|8lw-v^JY2<g*?f+=xch&8WN|0qYYGeqrgc(LYO5{(T2AL=DJmhX(ReqUW5Z?d$ zkmTH62e<5pC7;Gj`HUv*7Nyz6!7Xai=uy6lR~2G`7S^6mp|OQ!qsJ{Ak8=)!*_r#Q z{ivxv=sQ?_kZ-&BL`RxDNXXB@md~R}4ro|6(gIme3$Uo{B#w<m;-lBNkyekYA7Pn= z)_3`nNR6mWr;>TA`p#>Wmd;JrIt$9dJgKTY@>Qy3@<vAK;%a0w)wJXUi|x47_4^)` z`u=J@x$LM+KQ8s5>LW5&RbswVtiFdS%V9Li(LA8$LiIJ0FScVI;&wWdLR>^@=bgY@ zjTks03w#>nJoUI3<WYir6$|9?Jdj0&APWe>wLlky>9~q8K$O%PPhiKmEbKobXLs}K zWyj<kRqc*RBTviw4qy>ekTeO7%ZlEX<*vkTeo;THq)AV`7GU;NSw-sEhO{W6I=gIF zce(tsjL`@=L1v$#Lp_ZKd4~VZ;G4LF*DK{&9-cmlo$?(mL_p`<s3*is9^t-_8HLLr z*d!O}+!DkLStA$Ib5!<F$zQ)EYcp@jI?pf8MfE8rpc<Vnm_$yJgJ!0OQ>wvp?OUa0 z(5`aWPPosS$o;YtSWF9SD7E<!xm0yqe5KeLFOvMrSSsJkvqn>)HI~vEoSl1s+bF9t z`9e}_I)OPFP?=m~C^njkF<v9a_xZneUeCi=ScoxyRy(8eIS-?mx=<yzF3@sZt~e|k zRnX-{0$)>2Ctu;Pb7Ye@Y$e@9Im)a+OY3o2yqseje23-ATuY_ns9^MN=`w*XJ}jG+ z7-rB~>6RXE*!jFFeXu!}-l8G$e3s8zxyCr;+TtOv<_!r+UkM7GzGw(G<PF&>+q@ym z$h=bGv_Q)d*<L*68+l{;WuOFx1}z#QPvi~RAs;rue57a$&j(}-RVzE?MgvT^Xowuj z8xk=Ni53qT&kR8|tBgvWgKlRjLlWcn&5Y%Hc~$@JcP~84<^FrayT0jN-}0_+d)Ifo J>$~pt{{T6v%CZ0e literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ab85c64c4ec82572e17249d8cbf1df9ffc7ff482 GIT binary patch literal 1396 zcmb_c+iuf95Iq}*nkFuB(sC=e0;Z%%g%uu<AY2|&Dv(l;D2d>4V{ej;Ts!h5@HPAc z5>*9Ad;lMXn6-mQdB}ssO6%R3ojo&iX4XG{eft66K6Z5!81{p3WXniKG577E#|J@d zi;u!dVj1|PjKvY3PNhGxUCF&*6xnp*MfP4Q_0-;KSuGt!26Mt^-1aybzaC746YE%E zsQuNxNqnCVJi)LMk0o6s|K0x)K%1dD<DQjFT^=hBeJMUL^zwoar5B6P?)`z=Pi5gM zSn{><So$)4%J8Y4*TX6P+Idly#<|mHD0Tu@tb(CpK*w3Ns~T8EsRRw{2FloA(CW&x z(v`k=l^hL3_%<t2ts6Mp>+?`5d9Ey~$}zmi8}g~dtroGVg^91@3PV3<E6k`WBFwmm z?2gByNEJ$iS=mb1#CjRmv8Ce%!(mP@%eXdh6So+QwEslrmZ6z-hj2VOjf6cJa!1%% zu#vqOVO#NEIt-G~QJ3j`m<u%BQxAyh^W1m5Afl&uAmVZ0>bT3Wmou3Kc&lY#2Mva` zEW^&29<Xp3-sNuYWmKiP8ZUicglVNjge~eyjpi8?OjETfVAfQV(toNzvkZey*J$^I zWR2EJqj`*Tjoo9IjT6*9r-tY0TS_kwnRtK;B&&;Lj*GZNE5l`M%%Ps8E`e&}3(W7> ue1C$gUvaH~f59HY#G?hU>KshNZGtSo!W~+R*hU>q+SN$6O{*HpIgQ`>fuAn` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7c9103778f3d53b056c20b0a64cb8ffcec3acc37 GIT binary patch literal 1731 zcmcIk>rN9v6#fPZg;E47;vEnwwxGKLN{l5YQY1D3V&tYjhuxta-0n6zQ!X##Gw3gf zCO&`<WjwRHA|g>z!~U3aW@parJKvmd-#>o^Fpb$X+87psuxd*smFB*^?eVQZ+hSih zO)UeTeri$YjfV8Awkx?8RFzF9p0XFB-MZ29Q)#3aHe2+xEj=wldqax7#YlY}2D{P~ z;R}~H=!BtjPWn<mXJ{`JHyBdoz!e#^qdSWZbTafUNnflq>sumR<6E9!$Snm9_cnMa z%|7{=(lx0V7MEH~^tX~r3_Vq$*TlYF;dKf*P$(|#@Lg_uoWNSuAz@bP!exdE#j_HK ztr%kK7~%w7D?!(a(6vs4vK)^q6(f_u6<keYfZ^G>Yp4sQcvUESIZ?70#5IO)%0AAL zVZ88X>St8L&>J_aT%#I=%kZ|)Dws*v*BdU^rblss!ZkD~6*n@tg*$27W*9b=3dfTT zC2X~)?LFyI>V|=;;qikkhA_;Kp?~FO7z$rAj8QNCVOC1xE^*=9Fed#ui~aej3`Q_! z$e3sN&@v<^nx3C3T^O+AD5P<pA%7Ynr>S&Mx96McpyIpI;W`MjC}M)hqH4k3W=)#6 z^)xQ<FD)sZVAGqX@0<QoPl-OwpY1knW>~+FB8d#EK{Ip=rzqe46S!LDh0?%y={sJa z=!Gr|T?^barWoe`p9@*c;4#CfL2Ffb!qMgE@rFU2rsI3n;Ess1VHi5a(H&RYP7n&a zvUboAG+we5-xp!zKqw*@jX#>(h*lbVv`^D+h9o1|F>#2lPo%UVLu-a4Fo_f$_K=p1 zFOlq}9m6H`(P|t#B553S=K7D2`$$^s!2~d;zpOitt*_%oV*QFpZz7TH%`X^vH!*pL x(IebDoyjc4n~Qu6#`hCnWJy^*AaCt>7{#_=lT1<MX*?k<NB2!8<{ODt`~b9u1<3#a literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ff8a336db27b22a5b3621c882db3ccb8102812f3 GIT binary patch literal 1164 zcmb_cO;Zy=5Pd@e3t<rijfjeT34tI>;NStv10T_7f(H<*^fcLwVPLYewKGBd3;qLd z`~*A+9w<*9{85&@o1hd$dC|kpOwaVZ?tcAte*FA;24D%x4mudtbyWAHk;d}Cd#89+ zTTdJcziFioXw!-Y4?`K$y_)1o*NsOf%6RLE^(tOZEjdUt4D9g(?kP^LFROdPw+^}( z7Gr$jD;XN$HRW%V(w0!<LqWDENYm_aC2QR3h@tDT45WR+kjl;OFr?RXO=OTluL}p= z4E<#ph|OlBDxz&(Rf1u#tbML_cqC)Hy_vSV(l8Xu|D(bchVFw_iWKir?rr&UwJWnp zpz~6F9SJXL239tNS8CO`;$Vnj{30WJHR~m=rRT)nh7t`C*j^0cri(0YF<h$)+uq*( z5K?R+rR3l?!^qV*u~#pKamU47++%R0SyS8)6Lj-U2KO=UV2ok)-)V6%fk`5U`@S${ zYLQ_w_ZJr0B*ZB^a4~)HYQaH{Vdlz;Vqz*J0kv`Hi!fFULytLE55v$Ey<q60X#ReM zhix@vwsbS{MN!6j8MvU{g}9L<s*S)`+K|vI!tUyti$xR|Cd{sW-;!#=VlmQ<*E-ra zA@@ZKg<<qk)qk2AH-n_(mV!V;34kyd1NDNwPWlZy=p#{+)kCXgni<WVb6=48oE*C} zW)inmr0KAaY`5ivYv?D7%E5ISV}Ot3nWDLn|Bm_mS^5am`P9-k44&c!`8h|(Cid_t zMi@S!`vjxMl@m-ICy;r}V}=0YpxGq9A_aen9G=n13p~VTl0Y^|sL)P;!eJJ3gpj9u e^r|R_PzYw8%nrJ=Ky#Y9?$N6gSJNtzmcIb}_%Fo( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/DialogUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..164ecda0c369379c84c634e7f5a5573be2732155 GIT binary patch literal 8040 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 M+cG}YpAGKgKa%y8<NyEw literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/ItemProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/ItemProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..289c5da32270bfad1545e344ffbbc6c888a9e0c7 GIT binary patch literal 290 zcmaKoO-chn5QSey%|t=aTbPXn+0I%)2q+}D@98Or3T^jLT}eEf3lHF-#2yfI<))~= z_v)iQzurFptZ?37=CI8=kQ6EA6TL*=Wg~v$us6x6HjQ8XI7%9*7a#Lbs7_*`kdtw; zQS(81)<O?;^XaE*aO!Zi^9N7SSLtK7<6sV#J%_B-^G-FZ!}HC0I?o}>SeVMu=qUZb zR%q+H$nE;qV`Ew=+U5U>iK2D5*yOzizL&@j*MHG&C&#&i!%6)D;40}E=2M2I#u*mh Dzn5GQ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/PrologItemProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/PrologItemProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..dba7e3f002724e90a919917057f199aa3135dbf8 GIT binary patch literal 2005 zcmb_d?NZxD6g`V&t2QDeB!noT81m8B7^0T+6Q`k#;{;llq&0O5ZGJ40YBrT6&uR^{ zPt|s&c&5zc0s1n1gHG>CjOo}3`I8@(R=f9}d+xdSuK)h`uNMGTux(<DVJDJpN5mpl zJam2v_->>e|Il}PN<<-TD!;?KT@kh&Pw*gW#}1tYvExRe@<Y{?(Z29}89Ps9M8_Ls zPpf3lgu!tBIp60_zzN{V?sMN&CUOj0Zz}5l<1ys!iBPEf44G27#bDGT&o3Z@aSJBi zVwh}*(BJHJc73_UcLSecsu8(7XmKg@_sOQA_C(C^W8+P+9Mz`EFy8jnmVc-;Cx%uj ziRQb3=*GSiA1LQQcw`bg39D-3RLG{1RFG=<Y!59>)x<@H1)aw$k+od`Q<&BwU1qrP zIwl+CmWeA2*N0)<UaX={%D3(b70Ci-a8=`8BlFkcYS_0KW`|)1I*?ce%%Z3P=NWFl z8n701x=}2YUnR2I=emU(xXEC~spt&TrI#q0*uG=oHcC_=vejv%onn-B%B?&Wv1Fn$ zq^T$Q!HVb9XaZy{8JkeW7M5{`A$zb#JQ(Ijs@0afyC>W@^{Z-{?^<{dD-079`T=); zZp)|_dM~ZXkhd1^eTL$&cme+<>M7^36y8Iwcma3uq1Nvs8jli*lc$YOEUbb$(k9H^ z`l0K`@p>f1uQcL3Xm+_v^x2N)_o;>ZSWEde5@ZcJBxXA2RgFD^&n-OA*yl9%DXMOa zhZgF1#E?JHIg$+PXVo-RbjMUjbR6`DE>zO>lottqQn=#T4#dq+)LHs27#T4-qvCa_ z0B3_FQK@5+kZJ2P+#K;49T1A1-{(Qk*Ea#f+=$B{IXWlfu{L$X!id#SmC10z^W8|& z^<9@z&mqIN7S7`WjX;O$%iC1bLNn?~*MB7RO*k`pN!`(UV1axy^vlw}hJMpcO3yrf zIrL`q&Mx**_?;GGu;`gfHpekRYb!OtIZP(!#DI3R^FJ^M3V3#msqIRpk4u}!nAxuM zVXqp;m`(QPR<m|?=?DvUHgkkqcJ>dHkKi2R?)HTY`uJcqXXlJR@v)t?b4R#m8}#v+ zZP?jmvac=wmIT$LRuXEHD3A!3=(a23B5u*Df@zw7%UGj^tm6tAxQcIZ4L?w~>jc(Q zk|zleT|A~eo%J(p;0sE*fF`~qzYL*m;45rWVnrI0CwNMltziyd6QUNSIY_=v))~Su j7b{DBY@O0fwVO{u&!;AX(B>etiB=Mt;X48u!}tFIVg?&; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/TreeExecutionConditionContentProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/contentproviders/TreeExecutionConditionContentProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..d0d17047441f950dc7f877bb9c4f2942cf2e1adb GIT binary patch literal 2430 zcmcgtTXWk)6#lk$ti+a^CZ&{y^pesvzLW?`%cTw>uB`+YU(&?Q0DbT%@+R3JOCCv1 z=}+N>H{hiYg$J1Qp#!h{CWh%*Niin&44FxX@mPC3-}&}CXV3om_luVRZlkW?3`56p zcQxS&&o^vs$1=7ZU*q3$v*!!Prb(Z7jBZ!hyINZqmb2?=v|@Rh>DWHE{jTdAh&FdU zt?6>E9~qV$yDcOFb>z17Xq$pK!?}Iqz|bs%FdN(Z-1HSB7#1ZFZd#)2aczIcFu8Uh z_!9|Tk=VzO7!pgu7XC6rER)@0h?kr;Pa=kt3I*c~lT~5!datw1-KMc^afa!tV;a_$ z;R-p9Cgc8|@EDxx|0+a*L1_!G>v+UV6?V7hm-a{z-e#y|0xqMq*a|c$RF7*oVn(Wx z2sLE5{@<7k<Brv?NG?*VArG`}^C!`IYL^pZVYOXuGc06=w`U&@&nbADVg2#RweC<* zEzP4Ow0&U)Nw(>`J=5>GyscZjL&;T8aG9ZY;`p5eGlf}PRdEe-6ev1s^J$j?RnBBj zMO~s4Ch!jC72IH0ISplrrQ#+QNd47DwXAQn*7Ul*QLMJ~FZI%+W~EVYl^XSOCFnK3 zTGtuwzaIKo6*=knQsj8ES#0X9a;3PoQLMG3E2-Zt74Kq^VT$xyr+Z8_hN4xahG9NZ z@+ir9XNO8kr{mZ`ebIEet&qZdxUJxQhPlD&Fmkhs4{(Qq<vT^!HJ&nD$c)NBN$f)v zAK_z$ncf;jmTJpTN>M?WCWgTkko8WB=-iWZ=<c5V_X<P0YtTjTql{!o`LY~_`N_~Y zmFz?8h(LPNH_UHpMmMTr6H?=V0>jNwmvQ(mN+n7vR#0Ymc*?{cMN#2L$4~7U-aobC z!YF!QCqacz#ap;U;?ZFu?I;job?j@I+;n=b$ybG}=(!WUI*T$|m?IA{`j64;r%+3e z1bruHq*2SL9n1ZO<j>SO1C_psU{Xbz`f9iVXE8}5dc*q0`Cv?Q#|_U97*fVWhEtd( zbLq80|F|?hZg?>;%!P}Qq4aqkZv-qTweco#lyeuUCl5us(O1I$L@P0Bi}^n=^Bu<X zzhmY(eP(O74snIy7hL}VlSlo`k3m1ra0rdzInCdd{ZFV*AhAG*E2I^0mA-Q{p2rlG zoy%B2mVS4U59nSCo%ZP#u|(A9^3xUm6w5^FGs2+vS^W#M3T9KZwt`|rdYM{zprj;v zi2I@U!7$tjyoAS2_Pr#b2VNLfu@+%HAS8*E&gFl_=P$p<So~S+8BK(T38T6+0GIB= nr6V{=l~k1+AM}O27vUxXT&d0=zw!WJq7RtB7ZJZ|u)p>SQ;L4C literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/ItemErrorProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/ItemErrorProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..031a0394c0f0cdb1e5d7df98069a507d92d5c32d GIT binary patch literal 3586 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/Validator.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/errors/Validator.class new file mode 100644 index 0000000000000000000000000000000000000000..99c07dfd2481fab4ce7e6357802778463670ed72 GIT binary patch literal 263 zcmZXPO=<!`5QSfx==cL79zx8<f@}@h88<=}1MX|aPSetvmhKwyY+2+0Ih3RvA)D;# z=X<YS{anAk0X$<;pl7g+$&t@K3pex;xQasdV(V6XY;-90lTRn#I68O^(Ph$2$YfKB zDbt>VKd{79;L%`q<TF!XrQfTgt;JyEtZX{gV7`3Xb;Qkrc6xKIK<Qn>(k5%L_y@e) x1)XInNpq}URWvSRn`-;!gQ})~Ayzl{fq}t;z6co2)W<;kLc1P@T8+AD{0pu#OCSIM literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4b10e699edca915c6bcf74210754f7661a6f6aee GIT binary patch literal 1153 zcmcIjO>Yx15PeQUH(i!CEl|EG9}#VXgefPaA_NLSR0>>L<&3jCO^uxOYVEZAEhG?# z13!Qtg&6Nf96+L{tmGYgJnzlu&G_f9?>_)M!Tksgfw3(oQakOu%H@$!W9ub-q;%%B z&DrT`s)|DA6Pamc?8HgFF-{(7<EfOdD?{19(3En2SP~tOp){ahRe<hpgqFZo$U~{o zg(K-sImrpfJNYO2Wu^*d6j<`d+I1guX~RX=w#V6?>0JBg0<^vObUPz~R^Mi{41x0r z&S5D=6BiOhSP^J$hk(_g>E3I;QeajSUH`4{fT<NR>LA=gwA;Ng!Kz)!ki|Y2{RB z6Y_PpC==+_a{aHPgV5o<ol%SpT#ax=;QgW-n&2AR0&SJ1<f<VOtlw6p(b=U6#0Pd( zro>YnU}q2aqYvstamxmIYOLc|@|OIu%@W+fU4gZ<Bz{1BJ007aOW?u3y4BJ;$#Dgf zcw)^2lKniVvTu}g<d~1ggP*PFbi&l|uE8rpoBhkYd&=kFiF*&f@b4><PgTrn@Kra0 zaeZ|7oG>PM*Ral3;36)~SzfRWEbZQB#NTlFZ;m&dalhi&sN?1wjKFo=V005V8Q;Jy T+-BS2&Trx#?_$0SS^4`7hNw`^ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/FilteredElementTreeSelectionDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..037b09c788cdcfa40496e65264cb3d093b93bf8d GIT binary patch literal 6216 zcmcIod3+S*8GgR(ZYFF74dJj+xkE^HlPn1clpu!zbRirXh(v02vO5U_o87p(2~ZJR zYwy-dt@fa$YN^zo(!v6!ru2|jt!<_DzVE}H|Mibn`@A!=o84p+((-G5zwFF>^M3F5 zzR&l($2ZTu{NxaTX8c1#iNfuPWKYOSS*f%U4|T_ku0%Ry?l&X-X)6)uVA||8`uePR zPbg{`u|!WQ#5b{2sN0IA&17hUeKDi!V`i@zPj63}X1f_PBQkrPJwbz4p-EOTBQdKl zWrq5#oUZYvl`6DfnsGb&qDI>2ikVp}J1ldbf-jQj?Mf)jZp*hSwJ#lt^rzB^-cW0+ z2(&0n9pD6K^0s7Rz>1p56s_82PyF9O6Eh06a;?cJ8#gl=jz`V?3M#Bny3&eU=~W5` zYe(6-&x-b#=~SqFw;7AI6ujQkZA8qF*iL&x;WneojAiW~S5mgGH4#s9Cv)<39SYvo zMAY=dgDE;D<1&TI+pM^`rN6h!Ol}u|6)M{j5hK=NBrSP%2fgXt76I$JM7*-wH#S>{ zUumC_q}|1~wGb*oO_~oQq7axkdUQQf2#~^}@unApRN=CenRdJiGr$N@NA3TCRCOJb zKs<Czf?uH`k~A64PE@Yty~2jEX~hueOQfu{*-}^Fo`gvjPoYXO5o-}<%-1mob2Thb zm^(78hUHzIewwvVM=k0UrZ{HVA?HA%P%|OBNX+@;*p{_lVG;x0amJ5oGzf<qX~0Al z3D<RKSX9KPm~kM{pAKE0w4!bHtsfyYi|WP9Fty=Z>N;exYjiBdGMc~*cjRdF*b6%% zEwbpVxpO0d%v*FFGn*gF(IQK(WQf+%R9SJAj@4LW=M#5D5mlI8+qTCTFhVhdxqNHa z9_DC!o$C~4j$9|ZVRq*5V=WrWuwJ2?a*b}<YjkQwW3E=XWunn76ODG6XzaG@L*vCG z*p-yj=*RU4Yq&vSg%~!WJlkugQbv!N3T<|8bZo>X;?5k|o=&oU*{m8yz!@aDM-7R; zn{{l#Rt1gQw%y#%tWp49cCroljXG{ZJ7u}l21W$QQad_kdXh%pZYz=si3lTREq3VW zz|GDY&b)b}iBULBc+pv8zY6M>A3M<?f&UsE8p`DHwK{IY?F!{|XMNPNYobubCh1PB z5}AmOD457~x*<uaHPJ7=cxvmye)Pc7u$wt#Bw9N5U@v_bFk=1Y)^5QmTolut=+zMi z%dTMRP?8ZiQeR8nNRFiCxC1E-Nri0_CPdM0Wpv@ykw!m(q0_R@TZ~>pFpc{+$}qub zpN{=P3y%?vYIq$h+ojoa@vx|F^5XywN|4{BU^)buP(&03;NlB1Cy1wa>v%ohKq%;G zuAysVmuSXK?nA?9rkVq+zHCRb-CtJNRrp37_e!2Bb=n-M0B_du7QB^RR=@OVZr_;e ze@Hwgcvf3Cbvvdrx7x*fyfSZREp`OTVis&q8<D-6jXt|05zpSO<9^}!6v+%(W9^<x zV&*+M%ApJ4-mBw5JVXuMb_#3V&Ae$w6?R_g9u)0Li4sH40V3;Zun^?Ju1=_ICLK{5 zVucUtID!w+Vj(j-IY&gHc0@WVR5UEftaKC)YxsylweULIua70K;}JZn;OBCV9qeO* zwRKJ-Q+#rP)w0|%9Ul`8lt&V=n8DM*+E`4(aVG1rEy!0QIv&^Y34D@<FtOwesdpQy z3D_ZwKZ;N5_>5ShCC%=nnPRf@59IoEf>_XL6he}35P9cM=Yd}{&b&P6xo)@3Gh#S# z1T~!Gb~~(b`*wvR7dKU!J0oeN6UlLp19l+g4g%vi5*ANJ9vt#gXfBgW*q_z$BnF+9 z=q5AOA7ho7>Q(}28bXpeY)T)+Q#yw5MS|l}T4BxzGUxZBVg*V3C45E0mldwgr_e|_ z9bc7-SQd$yMv|lx3Y^#RHEEs7NThJQuRkq=&**p-&k<%04&$Z}`mbPiIQG1bZ{k}l zqtsOZE>FngsS96cq|AZ|E<P{lxPb5Q^ko}YaB#bbh2fFgCB4OWxf8>MZ~gv=*(V2i z8Z4n;CiDHTABPW4KnzPWD14RxD(A%E1zcKa_%Y95`I}WNyoR-D_$lLYZ27_iuZEv1 zG>#)(gu5DkS<ve^hC1D3ma@|&(~a^)jzYiH@hkjVYRK<(`~iRDagXhhB{eQPxt7^! z)ZAkFSTLE4oERxGMZ-&^s}YH?>#gQ7#owOjPe$Z>2P@n{CmD|Sai&p>VBrbJS=L)) zMk-~dFqc8<;lGc+CDKCjbCFlhki3>idE`}UCBFpl_i{dM=X)=&Wr1LQ!)a8Uuq7+` z>*ow$Hnq&fRNe&~IZVTJK5+(S;0kJyyH}ygmM+7UxXQNRYRq(3Sj9J@sWcEgg;^u@ zFQBb8w*DE8R8D`XZ8v*eIi0$?Iw<3zu8KhLH0GT{_2xi*1~v6haI6Gk^=0<^0OtmI zUvF!k<IKrvuAt=sYMeyhg1jr?8a&WCYp6rC$VW{V0w*!+Jf4xukoOqQ4Wha;=sAu0 z&Gmx_b^3VQl)(}{EbpA+!D+0>;Mzf~?X2gU)-4T{>&{?925k+&47O#kJurx!o%K`7 zD0#~%?4sUXo(yi4YrYD@v($SWO)@P18FZaNH}7Um_cmt`bI0ZBEcz5O7`WG~rh7$V z=#f{RllOx-&>1+5J2N;Wk6h&*KE6q?_t+?Hw0{?&f*%vF#9}PO5?sUM?rJQ<4Lq7| z!wMcdT6lO^$+r1g9O9dYum+FwK7&>~jW#^bbJh#kY9qYFK`e*x1shjI-Ji$XY=l?i zKD-_8;QDt`?>osvFWyCaD&Tn;hcr}cSgRWT$-OR-*3#YYV|)^Z-7IdL$KrroGq~>* z4)gBt5v-95|7Q(7iY0QD=jOm!JWzt;m?tCWag{CLeHfJ^B!&T*MJfR8{M|ulI<SE4 z<}&Q!arRa|-DW$fJEpi!it!AyB_*>s{64(jwK&5;iKmu81|Qf=a(;MA!_ZNbH+Y(Z zkHLF_BOeW(M`gYDDLmHc3AShO@#843_wbRoeEq3mt7=G5AVQT<hGRFwZ8yWqVo>fy zBNE)OJGfCv+d3yaTXI{_g3sa!8s($Z34D$~`q9MgILR##+b6^GZ(O0_sD@KBGzw<O zOFJhhAB6>uP2$4}UqEGWrplMW7f7UYRX#pGeH^|OrSxM`m5=QHdX>+$zsg4szES0C z$l%*mzA7(8WhQ;%frNCJi5Fc8E~N#)07^-)avqeX;UM20qHp(LJ`Wsqq(L)@u$%;1 zMe3|4c{Y+bl8RPw7R}4~x(VOI_ql?MWmC~6Hx<d)5AZ{7N-1>+5<c61CWTkHU@2YK z@FNXB(eN`3zaSto@S>75$y(q*g1ZTcB(WyO(Qn!uTGjAE3eJ{`jF5s;<toq3!L#^X z3EF~^nVgubw0Utqmp@D=AK*8q2W@AZyw~J9<73YH6JFx7vPor7|3XN^pDW7n7u@9< mvw&A|)|U-xC-s%ugE!hr#nux1)&Bh({?4oPZwGkg-+urIY5`&Z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/UpdatableFilteredView.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/UpdatableFilteredView.class new file mode 100644 index 0000000000000000000000000000000000000000..34fd5ac91f63823f75186c9ed2c30edd4a63f532 GIT binary patch literal 436 zcmah`K}rKb5Uh!s)u`av7bt=aUULixLO>xV_uk#!WtPd#GBdmS7k}cx2lyy)CJ6{4 z@z~W>)!o&fU+*6P?r@r6q_D8AChfHk+)`yYw}IqUiau!DMli^lyH2+?m70yMJ;jdk zRB02$(XuN!aBk#&Q%kwh@{-|D;iBPz$#7IY=8Y6V;jB;W9aZ7xYMzEmVRYw(nu-gd zA?n3>N<QMYuG8z4!ueJ_vu%(zn!Ww6p4oNBj)Qg6J(C{hoQrvKcF?8lXFfZT-2y-S t-*;}doh)qcigc<dT>hETZ4!<Z6b|A)fKd$X2xFx1G8{)l;UwXhd;?G-j@keK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..29915de2aed2555e6d7122400af2d9544a8cab03 GIT binary patch literal 407 zcmbu5Jx;?w5QX0+5JMn{0*Ncw4J*;QM52lyA`l@_jqQoqXydik>yWciZ~zX4GL8$7 zprhGY&6}TZ-sji*2Y_o#A`BE}&X?LWrU_K(rKQXT&0EgfU|c21z-y{&Q<b_fWL?>4 zQEa1^#s>C!VfgKK|DAcaF$Mbw2MXsa+K{#+ZTH!V^Pq52a(LuzxT7^IT*S%ryJjA| zY)BO*{n(pV>EuG;IiCKH@2M^*P-eM@<e~#klZC?BhO7~hAGm3)0LJml52PMDP5#I! tjOVWPc{fu|x%}<HRd?D*L18FX14FUo5F>QfL^#^VV~j-+U*sL&bO)@}er^B& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProviderAdapter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/filter/ViewFilterProviderAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..c50e1b5f0df4a757b3b945f50cda6774dac56fa7 GIT binary patch literal 836 zcmb_aJ4*vW5dJnf6HTJ={VD{zi-HRlHW5JttDxc|Dps4^7*{rTVQ(+yXK5u^_yhb= z;@q8}g;rYZyk~ain|XVGc?GbI)iMeKmyzvB9qZVsP~IBViJYVnbrYwfkd2P|YB11Y zPX=0<s25B2m{{Iw<H*Xkria5!Jh9PG2W0mHHDFH}p1}0I8Y*cNXCHU&sq4xp37q`* zmjb0-9cs5HQ1lyZ0q-CRsDdJ@HIy+fP;cpwj*@<d?78X~5}0j8U1i$J>Qw(UdhSlg z0@tno?(h?ora-kv?wm&MNcFjkdB4&6!syId2AYE=b94{x7&!_AuKYiCbTJ5&O9#z& zMM1i^W(w8RP#MimI;A)<PQdqXzO|IEt=ag&#<N&*i4EJzBs|O9k1>_AD6!r2Uk+LO z^<1`66ufot2KkNgfqKk&cT6W(lgtJ4v5jX`o>(ZL#<Y|fi<o4&mIq)8b<XDF!%W6! pF~?rU8VgL*Vmr(W%nO^3Dg9QdnpIlNy?Lc9Vi8N6Be0xlD<3aZ>hAym literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/DecoratedWorkbenchLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/DecoratedWorkbenchLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..be9463a18b5dee5339cf33354be31afc4dc8c8ef GIT binary patch literal 2057 zcmcgtZC4Xl5PpUPmTZ;?DVAylf<;L{SV3*A(W+o<vEijAjrHRuxrB?$Zo1i}^xyO+ z(Doc&>N!3A)^qHC>gn9g(v!wm^o#kh_s-mzxz9XzX7cLq-+l+Mgzq%;5rpeCOxcnx z-*U_?+p4<0DfUGz@TKdp(igi{vnid1S(ldWHd-d1*e#PSh28YrJy{oC%X}niuE)mp zXRi06DxBJOQ5kGT1{&goIdzq&*|OOZW+2U7w=Qh6w*z6a{{JBfjpBR3o+k|4m5%hk zAjGn{3L(D2$aTb!G@xOSaIPpFu^#MJg;%z!wjiX7Zq2eQmM4`QDdYaOY!NOugntHK z1ewjfr}PqFxCZ($pz|(C7%KTz?Zukaj9?q5FHsizKH+w@xMS^ETmf7ZCEw%P$aiQq zsym|Q=W`vZ$VkISgsILV*s1#_*Nre&pK!#2Ep~<DCozVL20q3mLW-%1)a4(W%qu^@ zs)h-|ST}~{K-yf2Ix@JdVTv%^ZDHUOOcS&{%MQfG7U61VCU3^AV;oo2OV1F_ce+G* z<tl^7F|^E`j53`wa1HZZG~74BsT1aV`MgF?gg>vrBwXsv(wgwM-FgxWSTwkUZ}3|& zK~IGrcut$2Q7)VAyz@G4;WG`N5+-`aEy;#saSUPLHa;f|`ffY5E{aa`?RCRA^2+;$ zj(fPTfqUiQTX$#Sbl$AEPF<?OvuOtn=@@u`hXg(Bmn|!>x%vw4(id+E%#7T_ih)Nc z5E2}|=r$U{BPjY5?3TTCbH{9J^Mm-3kS%zg>t%$KIiq!xSjE>Go^SznM>0^v8lhjP zP=whYb<sg>dE0Y;P}3uyt7zCD%=COb)j4Zwk{0%BqN&K^8>G_=n5=Y1xaje?{zbdb z{(BsiKY_T*+9aHg>VLcR^{aR`>LoYuYT~g}V{iHlau!r=Vv6TXjQ@k!S&bdu#dyz? zl)nj<OkRoC{@EkwKl7#!27d=arH&!q8*KxmLiYsDVVE__xxm)yH~I@k{>0Er(DNgF z@GC}GK45(;jFk!jjIei_Jx9Zs%5OBZpkc&u9v?;_|6=1fA1q({17jz+z)zd_3AbKi z{Q2B5CXa9>ojt@XpDvu>I^h^MSv<s@gY{$FJ;ZYQ@%#zCiec`6Bc^a2i&&3<EQN3` zvUUO&Fv(w@U(C=9uk$P|vb2P0ZmlcG^ZEeU5bSIlQA7Y^!zR87Nm<5Il$eAiJ}cu} VzDFg+fA-&NSWmG@g~dKR`v<GoJS_kK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExecutionLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExecutionLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..4ebee0c14507292d32730b4eb3f4615e07509bbb GIT binary patch literal 2803 zcmcImYf}_Q6g|yr)@49l!3P9_CMvAp5JNDq2BSQDWKk5vXozN*ZI&jpJ6kgY`d9KV zNL7N6RHgEXROL6NQaQadEXyt^Us6;}@ATYz&%Ni|+s)tq{`Loe8&C!s1eQEMZ>c~9 zp<T3ATzlCIE%{bD>!I?B+ze&GE|pX<Z{?KjdilWO7dNnIDczFqZK#~|18aKEC9C)6 z;(Y^60#`MHbX-*mq_wtUJJQ-v@{RU7U@Xw93U*%JlSS#<ZYAQRSIjA$jX+<vI#%!| zwDP`PT2)S9J<zThfu3@VSsAW+xx+%V+)_mqP6#yi4=f5aO?o+*L?cWS37il(nN>yk zXuYs3{RMm3l>(`(=h*I|?JNBrZ#IRiDiC;8PU!!lkL4utGAx%SFw&o0vo~xqPca@Z zuSqA&419<X104bnkF9ZmY`9iH&5NOO_EoKD(26rSYvLTv3v{XAXr4*$%Oq%Iq8lGk zIu>%2bzI=3{tuR;Blep3SVz3bh)4EH9MX`kEXZQ0RjebAo0U$l6ey5AzNR0fiwd^Q zhqm+MtX(R1&IuN9#Y8h&4D<`!IkqzOy*%fx=T$L*v_Q9VIII>Q(WJc2M>BLiuU3*6 z#B~Eh0_p1Ei3ZV^fw%5+BFlVD$-wbdDfE037KR1d9bfVUnDM>BjMB64q`C(uT{{Re zRlLrJJ`akTrhGq8MyGef#OGSk)(Ebgizey|69!rmxT$-srouvb!gYZH20LLvzNN}n zs`IPN$iDJ%hPsP0CT`&?fzx!Jv%^sOMT(?PI)U-H6Ke*0?<9=ZNd1GpnO5A!9Rptr zj2@!xF(R0_i%GU7)4D5H?G5GmF@!(|^QtSxz_h@*+U>jR%H_#y;GV$LA(>P<|G*hv z)6kFXg3L`vBh-o+JTUQ4C#MP5-;&7Uk%3u(Q?>Xe9%GD_8@9VHAF~Um@I)W6PX#)w zMcV6`#RL|3DEE!`Y12g$&+)B53l)*YoWRgwK6PBgMYE}1V#&aF0yD=hJ-XKF$LyKD z?o51-R{|GU_jKUcC7ILZ>$#|CbD;J1s;bM7sZHSr6Sk%?5qgm!dCIAv<OO6jhZO@H zwchG!t-tC_EbHqkIbWXNXga$q*&n!AuWM~^kptDpi@$+?Jbuc*I9*&@_=R^LpGm%1 zTm{$W^gFcvTsCWqjeu6P^S2op;3Q7*jU$8<pW3;^RfC+r_9xEF4(^~+;3p)~Tez^v zN6#j|HA2Trp^489rqaon=QxmE<=B0Ze;k{U&{s~qnHHDu36uYnehG+waK_+XlfDdM zbV*;GdRO`vT>cBE)2XYefo)vd!e_tYvfkXs@8!_~`WlR$U}Tf)Nv<ibow!_8XIGqy z#%26YLh?pC1ac&X9NmK)A>>FcWSWqJgd8H|AVUuka*&Y2?}HTh5@RvsHnY$iFCF0c z9?2dT*u_NjV+Z^nXBWf2W9kJBXLfL3U>o1O!(3{93(u;ow()`+TX?-$G2Bo3EENJq z`Mk*l$H+_uPcc!Y)lx;PrHWS1Yqff+wGz5#<0@>fTB{x{%Px|7*@B}Pi{3`~rrR%S jmne-XayLWh`{e5(HON+R)>9=@6B^pv7(P$`2CV)E6NBf~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExpressionExecutionConditionLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/ExpressionExecutionConditionLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..b1e63c9a276154cc42216821f126e219c575ada3 GIT binary patch literal 2264 zcmcgtYjfK~6g_Jvk>jXIW17Y!C3Qj{j+#bL%A<8Dv}poqok#1C85m}mjl5Ae$dZs` zH^Z-j8E^~CF#QBG{3wRIlF}-6NizM=FWS{=@45G!`_MoC{{AO`Yxqh-j=}Q++mxXU zBkr2J4&U)2Q|t??9ZAon!$`Ea?@QM<o02=89h&sT2~D~w96#_nvMGYlT;BHs5r$;5 zd|<rfxlO51>gwuddR4;!!)4`ESdR2VVeaj6OPC!go+zM0ml@8<7PrN6N4QZxFhixD zMGBuprX6tqv9v;SRT<V8hHgn$Mz<OA)%k6PfhDggipXO`hlT>fSY5hez1`Xo!4}_f z1VgFrS=`y?fmHA5;Xw3Qh73Q%4&R_&#Gqh{C}zWOy;|Sn9Zu>~LN<2xgca51kJF$C zhPQN_!34v3!ulUIQx|j9V*wd7;fNOHM2XcG&@lOXTgM=VG)yzxIdO&cXL!?T+tMxI z9foOXQ9+vYNUG{PTeu?N&Y~@Mi#U&24HX6>TMtQPQC)iNfJ!VTcu#~@ApOV-bj;yh zhEXdJROKsy*IJP({SUJmFF8C6YZ;D>D4=HO5&dXKH5J}P9hX!BMiO_a*rys1x4vKF zep+Q3rDsd*ldhMtQM}0XORdv5G+bf$=EMrOsQ4W-q@H#oX_*b#@*Qzh?`pWpFxl(& zZd*Fk_9HN0>Ua<DQ$<kZ>%2w!ouLBiH6RH-z=s;HGo0@IrsE^b6F`SMZLvYQT)-!) zH*YXZWJNeoe!Bo_ihSi}MP2<=$8CH@ZBA24xJ`zuud?Y2C}mJn6z=G_izS9})f)%X zixLwNnT@m?PSo)|>K?}0R`f`RWqhGwh2g>LChZllI=)mnC=-EIHxhx%Et<RBkw1#2 zN{SNdzK#d#QX%pZB`FnQPyQLcJ^6g=VS9WnQP#Ak41F)8fHv_+!$XFdY{T{sa2@Mv zNEaJ%3nvY_cvQh2`hP5{TEi^Oqdfic7;<VT(Qc6TH2mo~Om8NwOr07}QT&-UIq38p ziVufziuQVP0izhBH&PDc^i;+-XwA_&XmnBfi8fi|)3Nc{<U(q!yr0D+nGL9soWcl- zP{lB1{DSh|7&l5&rE||P)5V2fQC5cvJ0Ax&L$QM_H9{$%OlOl6Rv9H)Cor7}cq;XI zIksiWSrzlCONZc;EXI}RFxLLS!q*GGVUgh(u06%arJG&cqJz&Fy0}OCE>>UCE5?*& ziOO8;u96_VplGBN2XPT~tkG?z5}A6wPpcw3rg;5@qFTDxP|_z1M`O4uF*FErA;W0w OFr!hzX^>eCTmJ#=3UML; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/InternalMethodCallsLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/InternalMethodCallsLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..ce9e52cbf8f0739b03fedb14a167563581a21db6 GIT binary patch literal 1725 zcmb_cT~8B16g^W~x0Lc>0r^ltP_#hlDB@F%FDMD5API_zF)_2d!*<Gax7ppI|H5bg z1->ZyV0`ky-(-w;+F}AVwuxkunVp$C=iWK@-23C#m#+X;@xVfY;UEY-t|Ar1!siEC z*g?$YTj?}n75KCn%bKXymG5y^2_1M5rxP7<vXr_W21m-3VZ=B6ScbmP+cK^M?z+%A zDjSR4wuOZx!>fz&_2e|XGaeW&JygDmA2Iah7xx*G>wzmX=tF-NDO_S0E-PQ|G-|dC zp9xz_hFm#tgx(jSGVAtcGOnnIp;Eq>XuB~}Vn};3-mD3aB3jFrtKvuyy~OxayDFWy zwAhS9I$G5u$)h(h_d-#xD2He_w@MZ+Gi>!7ZjE@+Jfg(<v2yqyI@bf=RVM8N7{O>3 zV;E<cR#7Xbon}p<UuH0YDGQSf8$CzRl29k&b0e)Rrg4=aV@PSaX3+WGv(fc==LoI3 zF?WJc^0v292G=obVTM8W{Gxvr$74zOR7viOAUw3C?^MnxH;WsXW0<E0cd=wp`IZ{~ zzhb+%YO-)Miy;iBu|Uxg6~(p&i$qzmp^7ys_Iks99oW^Prw%f>gGCE@hJxYkRIr9$ z)ou^Gq4*Z*dsjC+<u}z!`Ch^@X^EbHPXBvxNR8)Qy8fbn21{yLlRg3DI_rmF%9Fkf zh3-@wL-`_=MUg1OO5ifgoGIH5l`#zN#lkt<7WH=H$?OG<(2*O;w5Ek_eWPgl1m-}@ zQ9B0`^ha%uMvGRQW=3;r=@Zf)n#UO$%`woA0UEO{1DXeE#Z0DYG?(8ISd!+2<!>0- zE__Cg;XTF*C%Ce+@*M*wxVG{U^T)YcC%An~hJ7&L(*zF!Nm2V4LJp(!O<)|em~1*+ rYJs*L5<Ci6A(tuAe~}_ikbM?+agXp;2`LTs(-h(e+1#gf0&Bkky%!fc literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/PreFilterLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/PreFilterLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..f87c990c0914134339e8238831046bb4442ecebc GIT binary patch literal 1266 zcmcIjT~8B16g|@dTguW(6+}P;{A#OV6XRQri9ty;RUsIjjLCF6U8Zh#HZxQ7XKA8n zeDF~df0Xggb~ROu_@FQM-nlz_&iy#^<?Dx!0B+#AhXTV>rK3O^X)I5IUd%hn2I8d% zhgPbDl2#0On#v>!x{}8#G68*wO+YtAoN9F_yF!~_M~iJ4TcO)7zmw-ZO#Cy3d*6%t ziGg8K4tOLO*4nNU5ymn#A}}v(5NVzs$j}7$-HjH*)Ge7vdz+zHZ|pNnY^km&qlg(F z9!d<=woJsM;h-b*6W)mlwANN3kN3Hj?wltl?13~4&oaXQH99J{6bYM^&TzBd?(;)V zQ>R5d?({`yTaA+%o(98dACs8!Fwb!3uQ&Z;)LSa)N+*P!co@l~gtLSwLlQ=iYSGIU zz8T408RxL<VTqwRzJz{{ha%9zsG+7H>*cO6p_Zvt+Q$mcGgLw?NM+kv4M;&W^WE`Y zw_<KgYpnS_t4WN%H2-I!mMiaqk2S0_%#7&rxo*@?oFaoKVlfbjb#gei1%}x@%fsgn zd78_^>q?U<L&~~}hKD-C>iAHOE7Qkir@r!DHm1=KmVf`CHXT3KX|Y9m!wdztU5bhn zlZ44m(<va&$WJ!kq5PVH0(`PlS<=HS#s265DyY(l;S}b`x}Oz+7053&-=OvxbIsbB z+QNG*9%1z@YA*STz7{jYRU!r9d4y6T44-_Je2wfpS;w?6Ld%&57aO=pT$eHwHcuh7 upOZfz?<%i4o=+${cZ4ghhY@3iJg`WNON6*G)=M>K$Z;!#)1<2fT>Az~WKpL8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/TreeExecutionConditionLabelProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/labelproviders/TreeExecutionConditionLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..409da634b03e1621c090bfb61921ea9df4b910e2 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/ExecutionConditionSelectionValidator.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/ExecutionConditionSelectionValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..9d5f98b9b172fe76f0835a4256f17bd75fd7dbd8 GIT binary patch literal 1748 zcmbtUT~8B16g|@-Tgq0-q9CZ$iehVZSMi$?qL!L80yVS}i4SJG9n0#r+w2GGzwyau z#RvRIj88uJql|ZU7ia=%6Pt8q_RgJq@0@e){QULh8-O`1NQf~!x1E+|x~A*t9qqZL zH*8PiuesrSrrjZ<$J=_hYj#>%)6^}y<!ZEJx!RU)nN8iZ9ak&wx|i%u(-h}w+~S5< ztnYeB7+^@h(6@BW(kWQA@q#=g3^H616>!5cyDry!b1zS2FG`Kd@ZG&w3`4d0z53(Y zv+6^J>~imU!*;ml_#Mw|b1ghqWRN5O^4eN;jUll>**d1T$Pmxv*BJ&%c9Tmu%8>a- zumsW!IdW1X%+wGw^-#<bP#BOz3ddv|$2h~_LX>zhS6SYNqvkmTaq$pSk5hfqv0v#8 zix>0jLtr=|LqZ~fDF**<6-5N95rJwzpt?_>+7E$h+jqT?kv*D|IE85mry1r2Y<;Py z&0SY-aaUW37BVt8LzK3-7oxy0o9nrC1Wo>+NnmhR#t;$=Bg<xoulnr<cj^Kn24&ec zbZcFAOz|BUlZazh5HU=Ydz+@quo<YQugd>R|0KdhggDi9EBCbLI$<vq^M4j{B~r44 zOAIUhV@;~IG?zM<`oYlZ4(EiXZ+O1Ln`Mi)dB+<@0jdlQR~RJXp#G*y1uo^nYWf1E zeK3uPQXHa3=DLJy40r#hWD!fo4csKfm!FhNkL#7{>a$XHb*U1p>Kl*B4EOsd@=x`W z2;JR>i(%{#iWpMFgz<7k??x(1)@<J~_ybc&F5g!piLOVMv>T`Y5yUVh+L)f?DIsN= z<1{8QOuI6DHE37-X1^k}5m!dy$|&2x*hfqVgQSc|%H$`U3~kvD<Qc;Zjc0>cDavq^ zVx=&OG{$M1ghCyc#(A=y3%o&@s3)R)8qM@*;mE}uoZk;O7#PDNa_E2y$dM!68y9I5 z#afg+M)OSJ2c`?(2HxUCAwKsVh0nOmu#KzlAZ=sf{Wh}i$t@mKs$hWD6LjZEoFo)7 e^sI==#=}ri8VZVAxJ`-f1SeUBmh-fXq4*mPnD+<( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/StateDiagramSelectionValidator.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/validators/StateDiagramSelectionValidator.class new file mode 100644 index 0000000000000000000000000000000000000000..32669eb41e17b28df96983e801e1dc9fa6990d00 GIT binary patch literal 1716 zcmbtUTTc@~6#k|Kwv;WGqFe<81Y4@Rh!>O+A_^KJh@q8)_<-AGEQ`C{W-qA!#wVW< zAMlb8pM3B~8PDu4mxNoRO*%7s=FB-~zVAEp`_K1%027#&5My|4J7v{y4cF5u>Kjul z*`CVZbKUn0yFx~fTUxbhRLbgxp_z8sRcXg`)osl*HZ;$6T(uy)<_xXuXjXxnTo*@I z5B4S0F|=-J+nQ=>6lS@!MII6w7{*0zuA4^H<*IKSW>`3kB0~G_VJwEmLUFeEvar7V zjA3x`_<7xSxa#;7&#-t<lJDjj<j8-1Wo3DVAu&zaDuy@15YJ>+8R{O}8(cy&!@vc> z5@=<}kdqRjrG#iHr=pcWngL0qa7o5xbTBkbM~P=L3yVi^6g-E(&7WdA=2YBt>~~tp z<oWDsBN)15NJu2m!(g3PQAC{*QKtmdDM!>P=ToOxzUzftMD!+c1^p8G7^VbVHR;CU zuB(-~t1d+g83VXVRF=6H-kxDJbL_SeB-xWDarYq^jYu%GEE*O5+_y^HDGF#9(u=mP znX8&(i0{CdL>!}nfF`2a+caE;QlOfeD*s2tlk5@^##Gg0=GC!_gzC>{&z9~&sQJ8v z8w^Xeqf9zBRhPPzIzU&84(EiUuY113H|9-l@ru`k926NU#u+3+zxbg_1<qx{YHEVS zI+;d9$v4u2a!0~#hKK)CvWO+)F76SVqI2ih=N4w4uFNj27uR0QGd!xDyt67L;kgHo z6hr$d<S?X&1O4riR*jUEEZDxI^CyOo+3*ETBYGQyq|`Y5>k&hbXjXc1dxUUlj?<V# z6Ya|MRia(-8~uUQT0GqnPq(o>w0}XTFi7bZDc$`Qy`gRJGkL}^Oyf`xD@7TaDOL(? zXhjE&-AGe^wPJ*<*8*=)ChCAFpGq@5O{gE+!^ly%hQJsekwXVuM}{03vKXUL6l+rQ z7|p}EU+B;6*L_4+E<W)Sxo^11u!~!tAnl@aXBUGz<Q5MqO{0$19dzd|^b!gK=nE?A Z2t!3_C@3azpAtO?PO<@7PSG-k{9h1&>3jeH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ClassViewerFilter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ClassViewerFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..f4a3f4e30a3baef70c7d7d62c1a3bbb5182577e4 GIT binary patch literal 1715 zcmcIkU31$+6g?ZuR%$EMO_~pf5|S2DJCF+6@MV|KG<6~1Qf87d5T*}`ymmJzl1Gx0 zGEDynFX0E|g_o4TOsCKMCZ^M~mO@<;pf9}aUfsQWb<W*$?;lTpdko+z)=UfuG=s2X zt4Kw$<J)b|*$QG?K9FuNR)J4vEO(r4SNR>gr5rElL^e;n$lg_QPlj#f#WIZSRnLi{ zX5V$Y?=oQs%<J6J^;9>K_IBHGWqK{L2V(_t*Ojm0Wr0k&(iAXOgO<!AgEJPg$O)Wn zC|`cr+u4%ghO^~Kfzd|bI$qNWmHtkhMtomI0^c<LA5Jv_jie{tSYWN(|H;3Rt2MTr zUB~tu*6!}sHm{xHscf1!CouOyrCPD=2BEaqK4*fuCwHVD7f{5Qh4UB}c%>ub)V=XT zm(^g|_?nXf)2HXrQ3Xt(WMLYw3YaSDzgYj~W*)EMbrUlJD=%HR`msb-1HYxTR=)Cj z9pzh?#hgH%2ye-@)ALxXdb#rQFY-@`YZ~Px3vb{}fiq0s2s#}Z3Y<@~M_zkr+fKYS z6PE=hpVxmq4k_WAJ>|7zIE;$GR6PuXaJCx;u8blc&hAijUUfE)dAy}{_qM=zdEgC` z9JNYQM_jRB;~ffu%_04kz~W$N`rMThw^IZpGmonlu3<@FI1ZB3375Zvt`+b;J~Z)x zKv6%>AWsV)p(>D-nv1}~Achp~0ECVEVX&v$g&a&=7r1<?TD0iy=vvetxU#FCmNb)g z7r6M}vKJWXIw2*SN>n%Nb5dz(s6lp;7PdekwGu5~dhrjZ^#U7FQ1ywb{%XPF$dmXP zKe8S>?)P_`ZaOOR>p?GcC5IIgO`I5CS2SSEfepf02@KKVB;soF%jPb)XBQq}_?P~1 zo~u3v@+fe%k^t@_{9?=EELUC@Wf+VE9xgsXv1*izBaAZnKE6oJ+&*rkW|8(%YMcA0 zq~`EGW{xAwpHVCsPcU(WDS@Am%^Vm9)$FghaEOb)WB%LG@*^yij6*CQ;@wjA2=8T( zIUtxEHt`*5WT?Sc2@wRD!x+wS%v``Y${ZQjFo|VM;Vw#yALET_+~cXscHHIuBO6{5 zUQS4*gh>w{)29pa5TD=%E2ym%S{X*};U-pDh<lj9E!0`t+dLmZ=1+WWq9|5O0u%U@ I&LMpE3|V2!-v9sr literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ExecutionConditionScopeViewerFilter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/ExecutionConditionScopeViewerFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..772f74f394d73e1d15ee91350cd803e5259249af GIT binary patch literal 3049 zcmcImOH&kA6#g#rXpt5aP#MK%e9R!)J`y5~qA-pGodJ?TBAA3U&4p=fx+mQYN%r{@ zy359F+$0rak%i^TMgBqlO3I4)ZqEQxGnL>Y)m1&`_Pytv?>nzMfBgOXGXNJMH8cs7 zJ%7=#13L&!*I01OIWIKichXu3ZO`S$P%fL5itR2M^S0@Di-Ex%CoooR`K|O9Y$ud{ zVC2^|a-KVHE7g+aRpeB3=w@_CLtNmL@+K|Et_0FpS}-kHGZYxFpB3l`l>USn(!5)& zA`s}mS7-ot9boNu*_)S+u~juI&}w<h70;D!7(o*dGXlvgwrhuj0$0;-ZF(j%B@oZi z>rTY5OGh(W1!C#UR5Jv2>qsD}q;?$|b_lc;Y*&u0EYC@Q(wuW7cM6_mI#Z@^t99*T zJS^LRz)~Z||4V`xqhuf*X@vr#>B#NBWhz@(GFMH*F<Bbpb4yff@Fg>&;ebG~LDm{` zs3tF9(Yc{*8I!)0rO;oo!WCc6=N-As{Iwv3ZXJhkSU_8p;pF!f2JuEZv;9ytaHFhb zn{gD!H5?PT{w|P}Egc`=gn&LVl)F7NlAoQNp2!OfzdJ@n|CEl?NLT5PnaiZ#N&1@! zVa(XF*_|xA9vx@UE3n5ZOY8oGY27y$Wzh_+vcTSSy-sFE1>u|yL&4vfD-4xN5qM?n zg3iG~V{MVKoMQ$-WJ;-gsN*B0(v`oP&)u0E9Uq&`jgQ?JjU>fh!^Z-*-ZrlFBc=s? z=+`j-R_*~iD9W(x&DS4`dT~Y_zN%vo*BA;G&DQxKFwnSswliB=Foc|jVS&B|<hEf! z#|@RtcETE#WpmZ`{2DwJ^P4(GRLplrF|V?$<u6&C!UD(tyIlo#RZO4lQ|lr%b~X#9 z*1@bOP5{+p0xcn%Z{zUzI~8tS4>M({Md?c4bQ)!>@Ydeyt<lx4Qpmb5nw4m_s(h7n zOsbeyOCjosjgU{_u7=MU@Xhd4`$@+%cxmjgJU29Lm(%&+>kX7En|?`tvm#wfW-~mf zRjT*b)=<}aliRh@5V+ik?luZ1t0Ae_m^$VZn>JQZ)RZ+Y?B9~N;#-neFlR)%J~(yP z^f^Tu$5?kU{!3`$!|N-OczN+R!JTHPx@_TUn)~WpThCMIJ!hU!=zfAdKSv53e77Uc z_in!1sn&s3bn*emMWlwk*vAzOL~cYRDMw9oupeDjH=>nm1!DE=bEF31srVWW3jBg2 zkLXaXP6|9l=JCeH*)1FAH#aUl!o^hlIr;_?sl*yC3p~KFo?o%&A-a0hmn#BmxUS6Q zA0iQZ9OpyNF=7XLNE{r$NgUw18%J;$z2tHk$C1Yg6mSw#oXjClDwcy))Eg{U@d-xB ziA-<{x5-LL1xhiVte}W7Myh}`#xcQ&e9C=B@Fk9DNOiqLzlOfQsNbYUdNnq9REtfP zEZU|A63_bLvB95kI+ZwdvDo_p2Yc7>nZOIQSA{db;m!jj;*Wobi9>tiKfd}iwn=aw zor06U6Blp}mvEkPKPTsA%CZ||vbcvY2%?jL_!3_chJw2vu~*DyQiISK3&Hm+a8wl% zZ;m&>{Pj9!3fsV(C624ae2tj1#60|dFmv+00p{!Lm?>-n^9V7H67y|h9wFwj_kmf! JVj7w-{|{>7BOL$$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/MethodClassViewerFilter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/MethodClassViewerFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..e50a80f55cef78187a0dff1e99cee3969bb51717 GIT binary patch literal 1887 zcmcIk-BS}+6#reaVIf&GqI?9A2DO^d;uf`EiKPV$ZET{nFwB&3I&-tRSuQTSncWS@ zQ~!tdp+jHr58$OQDD6zgXa6Rr({ndVjWx8s^yTik=WBoGch5O5{`~C^05`FwqmSXC z=i8<XWDs)KY&yK|g{F8ctad0pmz1H{=B<`=ZL=Y{<Jo~p7AG)wq}UaHQ#zsW1G6T= zO|P-!@E}-^49k&0hsJPC{XtlcYz4yHYH~}&!GYQB%g}#Ex-y(+NaPFa4BC>{5Gf=u zXdsDxhO<@aiu>*Dy71R{-4P7KRnOwiI`^fz$4V{SlmWx{)&H}y62T3GBdn02l8=7% zZzYzhTYQI`4ksQT)VC<Cho-Qh;~c~EYkW0A)AD>_R_;-PvLm*I8>W%Lc>@<P!f?hG zVXR);YY`_zUPZ?k!({I~ou^7;6j=ikD#ZY$Sa!G_q%eso9hVp;dd5ah2HruAAti%_ zdJy_tF`(ru3jF2M0xJqy8q>IH;9Xo}&}9%cO9Xc#g*;|-6c`rX`pwEGJ-Xz%4XK)S z#cA8pHSiwZCwNrTUD4!ihv1d-g|}~p(-M~y${Pkue84bB>8qY?3!mXaoIP-wx3|oW zwxr`G!`Q1wUk!blp~bdz8p0pIZHDo(?|Xi(<$IP00y5^dso$MqE`>RKq+0%ChLL<% z<8*SA3hT<_Qv*e)E~M!cZi8XA+coa7!W+>s0xD(>pBb3P=k)%e*Gb)}<)5HSX)It# z$09>UJx_O?2JWKFkQAyGhM8^*G2AW)Yn#5et0t9d(D5b1^`32}I=!a2C_lDDOFb=> z+1WP?m;Za#7=~Khr#Xq|LhXrHMa9%m57PLmX<|snQfGj!y#9w?14z6x8nsSW{XO?5 zo^RqO|Dn~8TaRkI6>q83s@L`{L3@%CO`ftpZz$L_HZ&%*vVlI5Xcf|_)6JwWqi=HN zDF%Lx%qcpR88DEJ&d7moLv*8UfwOc{Fsnf$PhfxcIWk2ps~uyQk{`g1#r^|4jKvJe zE3vE}pd5<>2PmF+3_ij6to9tE#~5dLhKu`{I<e_bkWsejV_aeQ1<Ayrc34b4!}TM~ z{*JlthHpK^hgt0ipB&*%HhGLM5=a~p(0=S-7t2(=Dr}L~9&nDdBXo|^vKph29LFtW zsgWme4;QgP+DEuVaU&Etg+1i(12Om`eSgN)h?MzG;V~&h0lq>dB5j{?d`&DXU6rH+ ndH#eN?h{#il<fgli2rZMeg@i0(8|k<vjv?HGJH$gKCJ!)EPVY% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/StateDiagramScopeViewerFilter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/dialogs/utils/viewerfilters/StateDiagramScopeViewerFilter.class new file mode 100644 index 0000000000000000000000000000000000000000..2adc7074137e7bc98555ae973f2da8d47b4f3965 GIT binary patch literal 1880 zcmb_dTTc@~6#k|yUFi)40V`qw726`LB5JfmMJ`G#LTuASd?3^9P!_hk&F&QSH~2q% z;zgq&_+WVUHyPvEZEd(zCDez`&Y5%0ckZX(e}4T2U=sHf_!x?oT~>8RcO*B}b%Pfz zsfxEkt4ZB5=~0RbuU2)ltd?|cSY<~gj^U`=x_Be(b={D{cGR3JIH&Wn%_}+0s)~Zg zUhvoo0t}<B9ibU|)e-9EI@d%4!ch;(GW0mE{tA}_Y%bMpGu(fjZQ<x|*Bal7RT74J zST(~CoYqZUK4h3qo*E@pU<k|-eh7YqBTx`w@F!D+PB6qG=s=L6E32F0MXgd4cAggv z!O)$xG;S2Qt-EyNF(5Z|hoRIeqW_$FH+n}HLX!-ONzdTlYLLlp@@=jfoXWji+$6OY zFR4`peGE%2>e1T!dRZK5Bva~|nzx0>NxP=Wnk`E6hNuWrhS7@)5yWwkK`9HFe^;gS z%_UPOPf`mrE=r~omvC9ZAj9K!Tz0V{NMMMnn#<4R=hx;IXP&;CSz61#TA62f(!Qq( zMi>@O>!de>vz942b)g-izPuX2HH<QZv<;zcd2`9|yxs;U8u=qBJ!~P9TBYu)?*WF9 ze>WFHw90KNcBAI*cpU3DDnIqB+Y$_6Nv+ZpUT!PF$2yKiBT4~jTeM@m!3<*<HzT-( zNzYNo5l(acw6i%VOEJgYkImXJJUewPM`}RD%~>^D6SQh+U`9OlpBC|in{A4cHW&Q^ zF!<cHMK?d)6`Y~7lc)uH_t7_$-lgBz7eqf2<wF;pF;6pw0M3%^IXZ#9x-?PUM3J6{ z$_T9o=Np*sNv4B%iSd2(J_y7Ed+2BQgn<u;rsIKq4DaH~PGE;b{GOq1GT}l8(N8dO z3}V1DHdTjd8cX0hl4OLSkwV&YC4n)z`AIj98yF{~3F1?DKQO4!p7FU;(Qxb$QEsr| jvGiv|_n`XVI#G`{=m8HMh%($X9L8--5uf3XCx7=B_HruS literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/FinalStateCreationTool.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/FinalStateCreationTool.class new file mode 100644 index 0000000000000000000000000000000000000000..95a5fb63cdc2afbd3691662c4a99e14a843c6629 GIT binary patch literal 2434 zcmb_dU31$+6g?X|QR=E~a7)^fmXZ$|J8i5|!dIM>CQd>_?GSKk=;OxTI09MnNOD?c z_#^y+zA?j#Q(%T^pP1pF@Dq5T)3dTn5|e4&4lmN~-o1Cvo_p@yKcD^jJAj+`+Q5Lo zn&;OoJFtULy4H>(x4qC(4^_1l+MdhBP&H(;X}fhx)$Gvotu@<~PFWiYzLI*^mghMJ zk^&PtmZ~~-Gf-At?N}i#fpvJFz|ey2+TksML?&AiNEW=BN+E$0CI&GiaHeRxYNOTI zR{oaUc9cN6=vAdtk-n|x@nSOEwF7}W#s3F?o(DITzvKChE?i>EtY<4J2)tn;jkEmM zRk$U6epgAxru0LBOPOqh;qbk?*1Ul?1vXw4qGr0u;DHtKykg6`FB{#U2F?qVUo~dU zmX23vGIl*LPzOn@NT;QE0*xtL#F&A%1g;!TWbh!g9@sTrI<Qvkpy|l(O<cldffUyY zE#Frzd6?|s;TX5PKH-XqcQ7t+n$Anr(B4z!UFA3e<1YvhZK3-pCbdkasI|-y)(@Z7 z*_^Em<Ep?9yh<+Ccdn!FoaQ&zXgQ(Xly#L`i&S6I^G(h*&z@iK+|akTTO8)p!=~ql zaT+#cgD%GwL9W_EZVDO97|06D_nohX3Id`CtWrEMaShi6PLQuMA-Q#dtC`}ra!*>0 zWL<U^^V$C{X})qMEZm@$y{2*nemcgp{}O7jRvjx~OK?NGYOQwrL?qKlNrch=O<x{O z7vD`2@9V~pswt`U!p@Vp%?_q*ADZ|GX9R`=O%5%3@e>pCU_t9@jpbSJ8pK=^nCcOk z?o!o`k+snouxb|t*89H4zy7Q-U8vSltrmfa<E5~GPfgs$5`jipBv65+7)oEww}<&C zJaHBTmixxp6XQU`C$WrG6KnX4q>;&^c@@~~)Y|I+JsK*O2zzP*>n2X?)D5x5LXXlE z>zs7jl)%0IWu&W_?^4I}g$<6H7~IqSPN39({2tnlyODqqi$LIR|B+uN9O6C2Ojo}v z$!7HI8Q9_hubc2=kh7}FUdylYLC`Pl*nuXxub_V1bGq4JoTZgu-2np}@vY|9;LPG* z@IN@SkKvyqbBbSW227lczR?EGPH~phiI1KCV#q<R-JfY=<SEYmh~jS;z5f^&+IV{( z6Q%3vcOPR~v@yFe`v*q2?Y)`wTpJ%e!ZarzKf%I$@?x@$TTie&`wLbEFf+D~JC86N z{WYKjdj*h-pp0;w#s!?kB+g-)9r7B^V-90j<fC>Mmr=$9zQI(qd#(d622PmxoO=ZQ u^C+T3CMIzM8~B1}EHdUMzU1}3;%OsD{)0IKqXx=je`6p?uX|h{K;=2&Q}Cq# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..487df8ba8e9654a7cfbab6357d00c441aa2869f0 GIT binary patch literal 1595 zcmbtUTTc@~6#k|Z7RoB6B34u`Qn3YP#VcCwP>`gcv7`^aO}9fC-0s%hEr>BDMiYO7 zKfy;6#mj^7*&k&*v#bhHG^TAfJ9GBTneUwQedp`9PoDu?#<GS8!=&R@4CzVF=eDtK z@si^k;*l`xzI1Fd`l8BfHECB2QI@{r8U<y`1?$w9hA2aPlW%du;^cFuv?)wqLkq(| zU@Zx5d&XVYsR`HLncpBMk*CXqEnJ2ce?xkyON1id0E{dJnvk~irx<3^4MoZn8KUz} zS+s%Shz<>{F*Kn=M;qb{O=;!Ok(ahutyfFJUE?K7FeLJh$*m%HrP_zas7j7ux)DIB zF-q=e?Lhe$2GjXNi<{dLwx7)uTajewD%iZX<}A6gJSx2+wVB|>(1X(&PBHZUJ&KMq z=%sWk!vE30RbHiZyV99G071_SzDxAT#?X(m8U_yVVegxcL8Pcj;$fXzRFdN%{(Y3m zX70x@gtUh94A}<Apd*7}hE@W-LVdIt3_|;-fJEVt(^chYEJ$8)d6g3B!37-`G0M<R zVOGU<kz4iO^4{ZmRs-?3^OpqX9LFNkx0AxIYPiBM@*kJ$xQ6T0aZmWFX*pZ*sm##5 zzhdDH)MQn%aUC~ti!$b>DZD^UvyF*hS+Qq=AsMnqI91`hJH((6kIHRI$Fzc)B&Y}d zeu8cmii-^W|6(giji!qEV1>xKC#YD#sk^3FluBLkeIsX76`DAivrWtKh<7W(-*C!0 zmXtn|rem+mO5GJpF0XA!B}yr_)u_>zZ5lcA7WX{i5miad^fZIT<4WZ;5hL`pAx74A zT8-0QSz^N@@1PIA$I&-|Pp7g4U)1R>BxtYG8D%|&E_xHc(H%y49Y!f6PK@m0<SzPN zp?~--^j(}I!^jsHA2AkzGIcWc0XGua!yPC0J1RI$P;h!F0pKygc!EAWB>_Am8a>Bt wyudxY3?Oy~kP9J1pnw_76396^8AT+Mrdac|j$i?~z&3<MilEYB^bdaD0c%sZ#sB~S literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$2.class new file mode 100644 index 0000000000000000000000000000000000000000..6b755ce117a5c35bda90a48526c4764008efd4ca GIT binary patch literal 1362 zcmbtUTTc@~6#k~vuCyzZDpdpprD|z`C1`xX%R|A$q#6=P6BA#iyVEjeJJZZ=QU8)J z#s{sJ#2?^~GM?F@T$&P-Zn8V)oSAdJ`Oam3{r>(Fz$QEgDTc?|v^^QgDCWv*g}kX_ zPrMU;FP2)7F%})(?Ml`5L?B~rygh5%N#xR|gEYg24I%tcb|c}nMa%0+uggOb$HLnk ztPLsN3bSkUp$vp!$ixRSDs2#aeGL393iL=S89!loT^=h^;(U^WWw@<7T&k^=21B~0 z12GAPoQn&{WHEtDE*wlTEDn&*ah|SAC0_PAO=0$VGZYMky7qb4;6_^g$e6ZCVR$+Y zk<un5C0F7~tM?t<izvkl=W$~w`dYPQyJy6yS~08*^BPrHN|DXTH5aoeI=Ig8@N7>6 zD)9D2ryElD>>IA4mN46fxA%0<_@YkzCzLQ*%wfUi^#;T8FupCyE;sR@of6bV+;XtQ zP(BMd>aH$sW0_%=2f;8t!~J2@<mw}@oU}*gFllgx%22XL-Gl0s9gu$}ZA;`&4A%M^ ze#jZ7ca$IMh=%Wlh!1q&pu(^<#=y8(#TvuBZv>U$RK1U9^Fev#ze)V{A~NoCMFp&d zJc>kwB^s3p`pvL>-p&h2DS91TB>N;uHPY>Vu2TJsY-P0%_fv9cn!efOFeAqg$dg`7 z^c-eTAdQ@G8CS@bw(WKlutA!IC{(I_T&@1V+$$31zu@L^+#*E;KGL^O7+*0(>kPh~ iz$pB~D4>Kp35mPplfpfeX-#7VRjiYgr9DO~J%0fFc8Nv+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor$3.class new file mode 100644 index 0000000000000000000000000000000000000000..02df5a57c7b54d360d592d3527933453c04523ea GIT binary patch literal 1193 zcmbtT-)|B@5dM}T*B+-}t=8Y7#R{$QjE%ma)dbtb1b-wD65m{ofi5}raPLt2U+IHs zqKWaz2mPOnvscohM*9E>uroXJ&CIvoeE<3B3xGSQI>-n-h)myCv5FI^{az?LQR34( z3dV_wG&>U-%F#&azE541M8<Dg-&T4qZ#c*b+_MlAglZI%->076)m^_u!%@hQEhBZ@ zBlFlqqn0#%N*Y{?G#P<hvZLbiZEm75Ll-p$y05fKHU(Z)W<pAnrzf#<zK|wqD|$<& zR&5Jp>rs~$AdvTP3^^BbIPSs034xXU>PG++8cNf%@vuXtB|9MrEH<J*hHYt-wI|N3 zB}d@lECZD{n4ElB>PYVnqjAhsmyViIz~x8UmH|KZuE1ucF_3ShA4-<M^Ui>Rq*nb4 z!_ez7#Yybf4N0q<Nq)`2S%K9*1#%GHRIC!31Uon{P&lks4`m#?SjI)m?<Iky>0Z*? z^hM@bqp8*`lZWY(W_g}wG&TWkE6a6pO24;kFqhoYK^VoX@u!sRL|q4Ef!Yj;^stH> zOm$$%`0obXt^CgApeF<JdG|v9-;2X<>OIlCK`8|kqr_^Q<DC}8qLn0{GW>Ng&;A8I z)!DZ9`L*?raMy0`!TXQ~75LXpg9RskLy_$>sh!73EV9K(IE5wlWpSGC_5mL;oGsyf z#`4ScuQ<1d3-8&^z#`^23ivUF<{hAUxQr`lyQMV#Dz5Q=7Av@p3ZGoQv)TOl1<w0a A_W%F@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditor.class new file mode 100644 index 0000000000000000000000000000000000000000..54eaa2ce0571d06fb6f647aadaa610dcdc9f2bd4 GIT binary patch literal 10451 zcmcIq33yc3b^ebuXr$p`KnP+PgTWRc#4>;ZgTy9~0D%NVlEK0Yewuk221fJbHzTnm zPU7sbP3$-(j<+PuV!Nr++D<AgD^A^}C5^i!b=oXV+cZm??rplc#Yy|0_ugpUj7GAI zzl!hEyL#{5bIv`>f6hIZmw)lXR{*S&PlQn>XtJF|G?__evSvEkmoj_pY}7h!#RjuU zJI$9_tKS?LNTw4}E1t~SPP9wkwYuXlLW1?B2=H@m{%)7%9>*Lwo{X6(Z>3<yq2~71 z?(WuO9S2)l+XYM7m5volB?mHAG-35c2h5a}&05hz-m}xTvrU4EEy;8;yG^jA-d#~F zx^nIxOl6Y;X2Obk%sce&L;Txg-n9I%AhgSlTM?9Fx`8k%1vA@|Y3smXf3M|qo4qMZ zP~C1*;KQbq)W7|gq3rQwMzFOc^C{|$+b{-9$4X~&+Spu@+*I}=n3b_oR!q&c>$sUt zSaHE#Pd7Pj4kn{*M{MV0ua%A+KV&-DrUGT3=rdzhbSP<^vYbq`tt&^4dWt|W*T6iy zMG#I{*{)=kidj;>ynw(s`Z}#?I%+XLjH?8TgQhJx*}&CU;IU9UamnN?5=#CWEDmFl zV8JBh6PAH%aUIP|>6@vgA>RoE3rn!@?BS{?f+biM#!@QyggInJQ`BwrVDAa4+CV*) z(-o~d2F(<mVQzhU@sy_JN2{p26$WNub_A<b)YXC;CJL6<aapy)8Ut$?wwR-K$k|A@ z#5kq1ayPCJ4BS+-o$=hHi`E<1fQ<~d!GSpAc5M0_U*!C3Hz??pS-~}vTbJ%zHRf}I zr3JGmbSC<|S)l)`3)ZPy1hh|y2{f^j9p-==cwuZ8Tvcr7`~tz1F+1ItObj~K7}gwi zU0P6Huby0vT?TfbS=G{NU^n(qYt-eq>DLuGhJsPiq^2<11P4l4b21FD7}2WYOddtm z*LG7ewsR(ez1Xj4)I1#>I2gtOnj*O65`q{wgtu}Z8Oz0z05w5fAqwbfRajsSBRq^Q z!Ny`P0YM3Y3V*vD%j&b8eud#2l?XbqUu8XP;0SJFkWq}_1dZbYE2|8_39bM~1?!3h zpgVYqDpLG@>&#v=9Zy+K1U<M#wRLOBoffSlBNg<Rf!kryxhQC!6xBRl%=~8;2Rjin z5C@^@3i`}Z+wSi$(}XHVu)Ku7<P{j0+ElUq8%(|Yso4Gl_sPLebAwm?!4B_<iX9<u z6hQ`qVK6Y46sxHu8v{c)<?T_Kw_8J&qSUndn_JZ0X9yvAq-b^=^Nhkp1gEjTimcvl z;7+`QV7$An`&e^3b8~e7-nz05ivgnVyYTKX?xH&Kw3Lj2_b4`&oAJ03d!K>#E3t?Y z+uPc<XK%N@{-A*m>FX+eeWb0Wd#`Tt9s~C(Sk=-xW0LQ((`4D})gxhiSg@>E3v?ER z7UE!3m$jumn2X>X?pF`_h@fG-flKPnb;yqj>R*S)!9h2h*y#u!!2Jp-A2aX}J}#K; zCmK85X(gx-hx%Ss!b1W=d*bG%6Sp71V_`f>&zeMv!bJui$0ukE$K`1`-d9c41@Y&h zv*{`;+U8AiL!%a-GVn|Iw4jFa)Ax5K({UQQ%W{U2u?ceixM_5Y&#LI3E0OcZO|Ha~ zMD4CL5#HWo+5Hw(wK|z;O)K2QRi(dd;PdzuK_x}%V7ZnOM14(`D*M!+L@1pYZAqF5 z$Lyy-U%;=0@vBV5s>>-ZGw=+arEuh1D4#E!rhGr$x@Eym+fG?#n%p|@MFU^LuM4Kr zi4QsUfaPTA0n36Vf*(VHsPgIxTA~scXab+9lZ@vTqB|Ke@PZ1a5VVJ1eQ_%B<>Ez$ zxl^h!jIXd(Ew%H>(o~?tuUi|zi+D++=r;vBJZ~!2;uLAQj@E&%8u)Ge4x^k9kyDUY zxhj5GX@%6KzPfs;)l9VXEH_lYCTJ|RJuRI*e;9*?*3$#Fll2|LbNvV|;_JG%m&f*& ztC>sW+QO>2s9@3j^85J1F#bTWC>XY-Le9V+;TuF`nz4=LdQE{d`Q8!69}6~5ac_qR z%EepzCcYlVp9r>3kw&W<KI(e8Xv`_;Teu~R?@ZuGr8MnQ>b4V!6pOKBJV)o-O6Sim zqizZ~q^1Mwbhg7v57I4$l5wpBzK1_oEB*yZ7vf#8=JBe*LL=(;iGkRw8Gc~kukb?# z9RoVRUGx6L*sAjR1%i*SKQ{0a{55lL4x$Ta9hoAn5*)`L+;WN`XP#2L??mK+wWa)< zCAt$R?*yC1Ey*X%u1N|*o)E(Qx$<b)Bt(M65sQSgfpVqn<`yPXeN#{Y@Hkd{&fy+) zT3cFhZ2_-Rp{JthY$kB7Gu=!`&awWS(n_@=0;bAMBb|AL{ed$BxgJ4Xk%U_UNbg7Y zHm;u^b1a_8{QidLo;mV7xs|RNin=0&t9UGVZGteJB1YG()5QA=1OF?0&LBW3EVS7D zW|HbHKKQE>wOD;7`z!frtY0ok8RJpP1-HDpj8S0DTrhjmxX!)EQ(?EmG|^`{EzGyw zrbDUosboWu9zCaU&%F~bYYI#FO)B#Gh*U_Gsv#n{{r^D?dXDqV@2X-hckR2<A;+RJ z*zB=b_U|d$zYlpiKiZu-V-MyQ?y~y_><pVXb^hx-p{9sjA+y3VQ_xl_p-j=gd<p#% zuOYL=(4%`W5DKK%O2=QL=SD503VTnwo!njm6Pwt55q7Sop+W_Jiy>Fa96EFXC)Oa^ zOiY@o<k{k`0s93q-;i4OFfI!WSt!?dMV$)<=`2-SvhSnkOj&Hmwc>Z3g6Cb<1|{SV z&S<KXCB!%~NqbGbMeXJp&2gQw%#eEF*-Fb{_a%Em!Ll+}L>2^1+%ZqBi$~jbyR8xW z^$Mb7us-o8<Qb0fTV=><iE`8Am*4c&B{rbJukJ|lYl}*Mwa?gDJU1^a*Rzx_Aw}15 zmS|Rn#Incp5_Qr;EoZu{kqw4ylpA<%q)6V5#`p1xb{vs)vRT8haojP#XeOIP(jZ$5 z*(%$Zr@eIVTfq~7=fc7~Jx+PvJO(6TRCX8=l4<G>I}O<-%x801^OgdsjfG^VhEZ<E zP7^lu5u?BOK2cZ7{&{7(vzUEmatW*Lv1X3ox`Krz4aapAj%y9U+Jfo6CMGkWE{@w> z<`9pQs|z<AvmGny45qWmek<C>B$#llOs2zTblQ#!Z{dFL4<6(S_)fl(+e~JZV{@iC zm9kH1bDZ5kcAO&gpys$aK*w@V$@vEEu9TU{GzE`$eqcr9MmZ7|)>Jc#W*c&o*7KEF z+e`0i@}q{_EVp>k!wvc8z}&&cJvREaKq*#4pW6)SlrG*>WLa6T6bcj(o`_>`=GE63 zg{+t%CYr;-1qa_KOnb#p#%&Vv{K(#R@~o+C6~BI$xFj@?juSx&&8KIf!V3mAn&gC_ z>vCoA4urdtX*1;(|A)=gpx?cYNKz7E=@)cgE_KDB)?CJ7Xz<U#Hd9J|fVIozl5fsr zl8JPOl|639CuU<S8)lKCm&@jWb!v|umwBl+;a(hNG9>7E6HH!jBZJC=Jq|Z6-$-vD z=y1&XyOSwKV<zWqrzOFV@=i<IL@SJYg{O&6ZVbCv%Fc}4^@Qq=>S690d6yw~3cHqz z#yhY&h3&X$?5H9{DB~iPC|C@pnGIT!Y~^T>z2A`cy7vh3K|?+ycM}lY6xq)+Pu#t> zDBTo}+3t)?ly%nFR2EkE%7?>pjxeM~3N|20E->UiG_yqLH=UCTZF&k(_tlK^5knr3 zkFsOimvpQg>Ugol4b``4%BVDBEDSSsYXr@n7T$=>0!Q&Cmt3UF9&}=AJYvqQz~|Kp zk~~tjv669I#IiDBc|@?Qc$>6iu7sOvIU1J7n1S9fA;Rdm$`*@x(kW-Fop#oGk)xR$ z^HP|<tN7P8l<^;%_6;j8Ao46nWia?V;=XO<nkLNP-}Ag#xPt5Tr$X=kNQ36U9G}*w zI7i$1TN{Q^GlDAxBUs3`MZ>CL)IEYl4PQdTMJ(2bzIhn)bU2Ka4NqWt0|(JzT(2UO zyCPJ(#I}>+4y;ErwqU0#N`uE_Oq8v-0h=fS8DldVDa1^yrr29ZXDi=Uq3kuR4`Umz z^!1L+leWB^dy7ypBMld@lgwM%SBzqB&jsuoL3<fS(aCXl$BLCBxUmfU*3&~3-8_QZ z%CK@6y$5E6zZ~u<uR&jDPpAgRJA0<p;6!In#mvs0a1BzOJ(V>`clOMxsKG#IV`x=v zXc*2YPLu4}#%Z<Fp2OQl@Xj(E(cydZ!w-1FRkhQGarY?B^{l#p`x+}o@qmsVYz$M_ z^R*Sjc-S3;y#W>eN!I)oBlt|2Dz&Bh3I2X+1W&6Oo-6m>4SVmN555~6|85j7_E0Uq zF@oPxO<e3zf_(A2jg=goudVcWMr$ia@Ow&2w=s%u=H|UJ`MhtbCjT@rXB6MoSKlpo z^}U`I%IpHZ-&nPxwrT`_>29p1wra%)epHUUr@TOW16?%ljkNY*I_nWE#7(^9?!ooA zmELh15;%r_n7lsf#a)Q;GA7PD4U1O`2|S78q?Tm=`2@a-lX!(Qzl$_}$mic+0RM<P z@Sl8Mf+K>AMEIPEL79Ugna}4U+$*bbPHx~0&R*Ovhj}Y=3=hZv9+a~<FYm!aa*p>W zAH!qvY2JN&7LUu*ywZ3cpL9LC&vQiIqpRc@a{VdYbfG+ozs29tqc_Q2_<Q^VJvt$s zl;@wg*CE-3f5yMijh~ci{40LOpnO&;@oyZ3DbGFlcaAE_Z7%+U@>k)%s3n7Ry_K(W zWeER`|M3EXQ550`m@$e=JsOTbzaSJPhX@t!$IrV0D-llg1uoN*z&IjO;Sy=NAeF^L zE|wq?lIfyk6_i%<sSHBT%Z%c+-wCV@`2vKbnzr!P?)TTudQNJ-hN|af-WR2YW2NKa z$`yP9KccpNOl|xmKyQ{$Pf?>B6epx-WS{WQ_)77!v*ChVrSZ_N?)lV+TupQskwt=+ z(Alwaj?@jy(wC&+z{+7+`I4+@42{aVp4!letQTH@Y-*gQku6OtNN4+qG?%%K?4j;H zqA6(75Y1Ud<ISPrYG}GzJ{Qn@3-K!I_^hYdmeX)6`CLo4+<?~zcb6#Z&-Lb?x8|&$ zNokuWvA?Y<wE2#;02`#$b*y?c$Zpxgy{*M!*(+`2-Hh3?PxjM2MB1gp-~R^E(@Y`x zB;mS*RJg3X1i?<SpCCjI$U(J*9Fn*CBv$I*N+$HQOH31uM`K373S~YG(IbMt@^-RT z=JQunXP!W{s=qojEZrm0Q-)`lyX4j)12ZHlqy}?kUO>G0W8%%1V{$u*`=*{tQ}b-$ zag!mcLw)4?G*K^koo^qNH~~@mm=1jCV_L`~pCt9`$%($E^lN&eueN@@W1_E)e$7tw zbx^;an&|6k{d%_a*Sr;baV4#~m>ReaRZ@p)S;GGkwG_*w9&2PdU8Mo7vXcK}V-^2D z#cIT44N|fecgQ;4k*~+yvH|zWMy8)lcuF?o3(|-eWeYCKR;p+lFGaSyCRpU@)HgvD zUXi!S+o|ztyzC-X8GYqWd532M?Bi^;xZ2t)CK~3C$UDn%BrmyJq{vRX>#l&2tH+F7 zE$=4wst>ZH_35^es`}s@s^)zS!}5V)xu;>a$gtd>C+wCUjEWH9d^%&ITK2gNJlvb( zF_={;56XF;>{8!BD;nk(Q1VdIi$>i}8Iyqien>vf=e6YUuskY{S5)yP()+pOJs4K* G&;J3Ul<5or literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContextMenuProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContextMenuProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..4f4edeea042c1f0b66fb2bb438de0e2f84339ae5 GIT binary patch literal 3038 zcmb_eOLN;)6#j0KMvkMTt!bN3NJ-zZok&oig`_QY5+|g!owP{}eNklV#!;$BMvo*d zuwlAk%Z@EuW*A_g>0@~8nCXTYHf-3?zX1cBE4itkX%~!V?5lgv(RqB|`K}-SbN@#G z$MBJaHin$-lvKktTu-yqMN=!-p32vG(f177qD_ylXyvkDl~k@9p6#gfVlN%6Cv3~( z>t2>y{+wg48aj6*bTAwg@8m_(D7#!O@kO<XAw#cL6frLF5(Rf|G9)wge!iiGMy{Hw zF&<;+JZV^lcbX~~YVZ^3&1sI8H~1QN#v0CBzc-#|=$No|9z{F4Wk`^zo~K5L=Oy$q z99Y&?HPzIpTQjD~OPZN-O8yGBy!3jJmqocz^k9d0?@osHp?JOv4A05fhE9g<8N=c^ zf2F{k1+8FmhFHcfYGz(@4Dnpq?C_Qhmtig_>;HpJ^mH|77{g#g%j#On5OFqv>mg1Q zZ)CM{kf4MChJE!=*7{3$i6LHZ(-Ibj9R=So^(r1QBx+GvUet=bLKk&La5Ae|T8ZF~ z=c71?!x9cLjBF8eIz1J#jKUD}Ezgy41p68KG+n0>EnRc;&|=!L{jwXu5J4m=Q}TxE zYo>8a3o)kbWF#@n&{g7I=)-V)DD#9M^PWRfH5RYwbZrr#-&i*kyevT_SgNycW-H?r z9HXFyo3;dF^nhfSBY2HrFF7lfsZ?kxm69kzak%Ss<2c@saDw4*>j+gXmGLG<8G1+= zxTP=HK|2^uG^y|D<;C+6oMh;qSfaV%%9LSgrb6xZxRTdQpGQDL-WPN^{aBa?A?iAf zQv_$IEh*PEN|uu4-jb~=jaCxI84k59t*WvJCK(E%Q<cF|LQPaQHL)Ux3J)YOOjIOi zJ5}s_EQd-lD5^1|D5mhXglUFRk=8R!@d|fcBDAY!D+?JjI2%$dWD~=YCJ@9MSr<hL z8KFX1hTY9vXk=2Dl`)6&L?PloQDdult58*7InOYV<7=(ah~Od#gfN-r7Iz5k#{LLK zz9VS%E<>tGf?Lo^z~C5#-~yYW>x<?;g3F|?0fpuqK4q95cW8RAwj2uI((Nw1hxa91 zuVYSwNKI))0{^BA4F$S9F6Jg@35S{lTltJdDTXeCW07GSDa8!+dDl=Az(g`jGK?U^ zh4kcX1UFh{FQ_RTR%BShp>r~wNiU=+Il78`hNCsf)#^yqEQkw%YNIKmn{5l13ib?= z>lcK7efc#Jsslu^5352b*XqP^wy?~L-m{1!T|{AyqII!GrZYt6ZQm&h)agP!7zj)2 zc@_GMLAsOM=|2)fo4A;1)lO>(5&G_;r;ll0ocAS?8;B17g6;?CxwL`pKP860N9>!x zVHbVxA$K4_-$`;D#!gc5Jy5Zmb_c^(&~qO>(aX?}=P7_#?WLe?c!Ab2uz$&|T>_Kv zqD1`?X$@k3m<qd(4*CF(l6P?+5j(npcy{<6Mi@SaoQ%Cn>(|?nh>f*6IMwRlt?Gm0 z50JVPo4AYg2F~S1hVLMkh+PmCmG#2rnu3npLtX@>mNd&I8M~7B7T4~eNasO*;ZCV$ zXPIows+}iY{e<cVMyc+T=*B7R!f6cP3=WZGjbNOVW0H2$q_9(%C5g=AEUx1mOl0r@ zvRFrsAe_Z*QnycW9-m=>x^)p>kmZ-Sgs*TJcj@;BT*1${iih<3E3V-;8mT|%_fLA8 zKrj(@eiOk*uu&#ly74>3aR@<^{y(_z2x)<3FSh-S0SQWf|6dsIr*ry;5aLMrw$TUZ oN_>Y{@(%p3>7k8E15rVcq7a1K6B=!X?4n|B(mBJe!2ZMk02%pR6aWAK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContributor.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorContributor.class new file mode 100644 index 0000000000000000000000000000000000000000..66c13a142be1f82b637cc3dee9f8108639c61ce7 GIT binary patch literal 3004 zcmb_e?RL{f5WO1=b{rLofdJ*30&yH7QA+s=4GoEt7@UOKCN#7(UE3QYkhQKXr=+J3 z&<E%X^a1$M{vd^%(+B87^>kJej-)s~EvJ91yQ`VmnL9hz`s?qve*(CQmq`pT%u1(W zm~FG|a@$z5cvZTFcqwWf*OWGGx}wQjEz@ooqHem<G0JK$@8M}_yN+4y&~_3D21CUX zHOp+Zh0zdeM#nUG%?o5qdCz;?2{|$ByJOm>JISyoJG#t}n3i>s#vTl6*o%D(2a2XG z7CX(Va4NiN35HBj*0{CI9aF7?&4l~RY%|Ok|DR$e7_@4~wCaA+?Ib>A81GZuBfBn3 z!sSjwxV}#s2QZih!yyfaafIO@uh*j{47seA@H@srY(*_6MwgQ~+CPPo*qOpG29x-x ze_v*VC0r3bFOB2M^AtnrzY<!JjfN%4Hg8qroRCf7IvereCspvX)UNjnKIfP*Cet{h zLVn!8(kD_j3wAu2^UCuQ!<9bmRh~;7H|}~-xsEav-mi{Q#}ZCFW>&?#OjjeEPUvD3 zc~w|ZrxbLC{rQ(I>A3og$r}!Drf`L!LNWAUv~_>9bv49#vtzkti#LQm>ka&ZT0f-q zj<ME-7dD8x$eT2sS8*+gPZ@6i>$01o-KOYmV<7+<KEri}K^m7bDTv)*xRfnE=j+_C zI7yAaIWf9(D~&PSRN`=pA=|@cr$<2v%c0sksS*`gk<ua|qIrtW-}5zI6M<kEg}`co z+myQFjo{}D=fi!8IFv<;JDj92jXM||!WX!g#1v(@t4Hhz4bzw*B_yGsi`*}@u7r|A z7f7Hfxk1cgK8ZPo3*qxZH^<kdSze<QH#8J*pY-<8;>;3pznct2d?wO#Mp45878&+Z z>k5?T;cU+)F+9}pB}#se{V)vIdo*k`a(0B#g6}t>xU4949x+_($4g-Ev+-ENS6+>! z{LE4cPZ*98GkPGlI{iKAKhj*Unsy4`FdXaoQg+-VzGb);CN=iYrqp3tHmfq;7A61R zY2c_bB#AFIVGQSpv2ZkMQQ@(4UQ~r$d!|f?=clNvJ5JVTqxCA|hum??!dW+Kf*PNK z8lHIat|!B*ZPH;^t~LT8PQl#Wwn4JGx=wOYH7(QKNZ|#;$S!dmC0!w7(jV6!s$g75 zz#>IP`x+Z9>P(&5!W}VZ$tt(}Ha-v=ZFQ?#8opP3OqcV;{B&h?s#sLSwl%ou(Dwk1 zOU#YoNUw`VGLSCIj#Cq}ruvdN(fdnAS2Bcibi^L|Oac;w=v#z-le9AE$>_N^w~5qm z1O||%U-cR|jUoEgd;@xZK&u4ycb(q`c2;f+2Ua$5@HH|7hY23@;c<c|e0Y-JX&;^; zc+Q9C310BwMS>$f%o5D`aBL+ro-zKwCy7nmpsnp3b6%#GD8~^DBTFTY;xcl$L6Ulp z&;rJ3VsyNqBDd?Xf;vd=F+r6P32cO_8lc*?#<p;Wj-Gsjy8{@@{f_)=Ja~<zHz@n- z<?uRcoLSj6%zWL&TX?!crL1nE=0}Zrt#vJPnP(yVyo+NF<2_$&(=th4YQRlu)@_`k z630otZ)1{f-d&VPd1{zKi^S(A%;0C_@e95A74vvS68aYRJ*tL%Is&SQ7+7c$Sqa$P k=HDV4bxDSZCh5`QY$uWS0+gvkl@RwsUGCS(aR5L31J=4^`Tzg` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2d98eb88d54f897ba0193f918da27e2115c88123 GIT binary patch literal 1987 zcmb_dYg5xe6g^8zW7{BF!54yvs4WyCA`dOET3Uy(EskaSJq=3<lO{DuLHt$97pH#k z2l%5L?<PT+P8=9yI_cisWY0b4&fT*=e|`S};01~j`WW6>c2m(E-Emb@*)!CJ<tqFW z*E+6lnY8HgmfCLXW>ew2x@*}=O{^8Y_`Pay*X1QuqZh}Ma}uHqHxAT8RWVfBvE4Y} znkym3kQQmUX6S8)D^0$q*!*LMJFcS?Y_5u20SZHGMK^VKjUkfG)ES}$YnLYwK~jc< zYYc;B-Q?9ytHJFZwPA3ERN2y0qpsSzm<NkdcVBlHD&;E_m}8Ke+^zB>UmC+uI#ccy zoQvZYh9wL!EQTeg+6BdIku*c`i|NHd5oFxP9fmmHs@8V$)k2YBIaJ5_P`M<LxhLa3 zMi_=QQEXnNv~}I-s76H)U|1p*7h&47k%W%op@cDpw_)2u+sN1KP+OU<t|_%3IHP== zVJno*CGbf8C?;e)#w0`1m+y5jL;fG4FO)?b0+Rm}X$j8=>(cTC(9Ut2%gA7gn!mdJ zp^`5%6fR$ZQ%KUD#jJ!GhSmS#Cquz=YJG>hUhM>5hEn<pC}!$OvZ9v~<{9S0NcMJk zPYcRez#^HBpcZse(9;t>y;INOtv&J|%jQbaKf5_$F0n)J7%(h^YB?u4*+IV}s?D$- zy8q&>#4td{;xqHho2XeGTjM2NINX?5_b}I;74Ac(STr@ma>%DE+}*c!C2Y_s3M*(R zr}MmB#v2sKX#E4^RoL0I)gx{*WP@{bT4~|#ZU1Iaf*Yb>nXXE%Z3_e4GASq+s^f46 z;~<}>r=PB*2tDNRG>cO-Pa~tTf9e|&Un%H=O#cZQfn`ML<p4#p{}HZZkY>~gxJmy4 z;4^(GASX|d>f$a#`2-KTctm$X_5@G5nC`=Lwu?C$zR-6*{uogJR%qucQCT6RHKeeP z5o}-rc`xU<j~nES)4L^NMCGC1E4(HohTI<>Gc*%IBB|`(G%;_fbVfoXfQwL4L1vW_ QgJiB#(oKpI0Stw|0ZZ~tfB*mh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$2.class new file mode 100644 index 0000000000000000000000000000000000000000..3d434932220f910da6879dec8fb650dcab4bf291 GIT binary patch literal 1996 zcmb_dYg5xe6g^7|krG5J_(Bj7l}8~8^3d`SOY3wjRR^e#FU~eBB}|&sBn9zTDPNrW z!5`p{a=e=aVLEYOkm)3Qce8u%xu^G@{q_6DPXLq1DrjMNX*(6oa1GbvmbPW`vh8W& zv(W3FVOzB5i7Kzv46CAvO~bPtZB4Faefu>xh3APJ*XhIl(4>Mm!=)X*%QchJiC5(v zp?eD27=~pSp_@j{6<S4XX^!|*7p~`O8Aos#EA+z9Hg8ylx5yA19w{-zGxnxPAchVV z3NA2o6%0!h>(#Pw)_K_!49SA6bF;)9L(ap+xVLS%46B86Ofb!$R)kj+dqHXp-NPe= z=7iJjxPl%9-3&8P!HK(&%qpd3Y5|$P9g?8pDy}iKi+piyeYu#)GR#Hhak8s)2Z6bv z;wE|-dUQ#)C{oyx;numiDgiLeQWmE{+H{Z-?Za&a{R}Unjz^YJkh4o=WqF3Kt%b(1 z%m*0qk#Nr7kJ9hMpo+T~qS6e~&lwgs{W50A{Uh_!ggWv=MBK-)f(H!CXC^}S)%t!- zs2IU0Lu)QyTrMzV&Q8UlM<OAG2?gT}3;zXAg@%XJ1FrCV{v=$<;W<DYDRq!0JytNq zFck%|xzw9#QN=W7=r5Mg!jcM$doX}^C_bXPMM7jdLdynCoR%unw(Iu;!*paWCj=*5 zXmusq3`>#cPg71lqvWZR6ed6x(3@DZ>y9pRhLpN~e^-?JPDmLdb<A42X}cuYtHRs1 zHx)dic8Vf264OZ{ui`l}q_{yR`3$=&4&M_FLn`d0L#Cz7*MciT3$KcdZF!vJ+mT9| zx5&tt+;xSE0g&L+(@J+!j2@DDnzfTPMI)oJb@V$D-^gfzO78@Xz#GKrV<%Z^un8B@ zMKh`dT&A~l@P&3tmqQ0gHgKJxaDZD4+@Z@Mb%1*fjJ04a)xaYfzS6$He?LJ0Ht1xD zplpz*w@Bh0dhs5E_~6GJ2>gaI+v(dZ<|t~Ceoyd}JTavI;uxoyOeB^}9ffK0mp&d# aAr`ueVcrL`fJGYPSi&+^$V!B6$ovC($Wh?{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c139a5557a5dc96e37e44a42c3f6d529f04bfafb GIT binary patch literal 1802 zcmb_dT~pIQ6g^8zV@nV%_<;x_qL$C7D1udIoLU^lQk-dr_ib3pVw%+K7UW+kFAhHV z1N>2rcblLL69#a6XmWQqd+xpG-h2A<*Y_U)o}g%<hv9t?HXW&?(%g5pJl+VjBR&ha zqh;XJrWP&UZcD%Eh)t=3(5acda@YRAJ)yN&;VvEQPcB$UGhEr>yWH_O-B@qz2v=Lk zFcgd%;d-*IgwqsTPAEQggwo0>g@PMjF$zQGrSzqK&5$ZgZ7`%u!KTO|g+3b=E-?&L zq%W$SRzrk!-tYuNz7n|H+u)%z>v%J*x20lOtNh0Viwt&C=&IO@Qezk@OjS-MT+Ct+ z*DMS%EG9W8?qV`ql$z&6WOnVC1RK|JgCQ$ctF`)@YN^byl$giaP{lq9X4u9pj4+J2 zhHOy^e4h$Kq;E*o;oh1FgW(nBa-Mh-uT#>axMN|A;aw6)VoOE&D{3)cOV_Ez#xWMg z8CDa6`UgCsViXfL?qQN)IHIB+a$iY91!YBSlEJWk3K8e=nE*(BAE032A;WSKH7ARh z$ghnlOw)8Jp^s>a%QjKy5_B|NqP0bX7KFknM@?EZQ<T~5R+^!h$mY31pza^kNqk*k z#!gf`i7keHnz1PM`hHtjczh9=I@<$7t`>AcSFA{*9%H8}+Ps-;5}dN{dVwMhToZab z*tD=nU71wL#0EJ_H*G9onM5pV$Zk>9+mP>xkYP6N#G~RG<!nc)>%{6y-J&@uVrax^ zl?FR3d0Z)>Fb>jC`t_3Br|3uONvkYb3-o66?w$UI+*dMsVAC^4Z{Q=+bl6Xp9esq$ z7@!q3AFk5V00{chK#m+Be~6n5l>^*9#9h+cnb||!@4?I$I*wrT1PHX~qK`ZR45QtJ zACDkn_$-~xV3r)@>B~9H(`^RlkIOk)nV3`gM}MI+-L3Fgw5b>_MgMRnfCW6IcN)*| M952Yq#V}<42BZ=i2><{9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$4.class new file mode 100644 index 0000000000000000000000000000000000000000..5bbfb2547ddc7bad0c0e52a744280282a200586d GIT binary patch literal 1578 zcmb_dTTc@~6#j;mt}Tmb1r-qFs^z*WSFJHIwIsw+O-gv5E<;(e-L1P*kQX2D^5UOS zUJO3?1N>3OGrL=XW(mglurp^a=X~cobI#eHzrOzf@CbPg9SkpBuVz@j<xB1uJ2tPn z(hzTj*_4*+(54i1-e_1(%@Es`bUmY@_KJc0n%hE3vBph0IGkA2kYu>F$M?BmbJBQK z-4mwNkYdOw7-8C0!xu(P>=>SS(-gk+je;k*!iuagq@G%iC7&@Qa#LFj$%4BrGDx6H zhlVQ*JtfN#<z~GqyiH!U1w*#vn%v&vo~72&W>W52KEp=oKN8F{=rtkB;vl5P(3_ho zwG+;#aRYrCdKs4Ez$tc7FzZCkHo{;Aaufs|H*t$0E!NAG&FAGpkzqBK$K|H-UF1x^ zjsXlZ^qDHyqD-(`mfz&|hH`*mg;@NJr)`QvbO?7f3^UBdsGF`QLWYHwbcWvugAoUM zu@+Go!kCV6OfY0xR3s(9WW4{Urpm4qq<#-M4fh!qV!T!9eePM>$m*EFG^MvMWQA(N zk(L=nZ!8z^Xl1vk?@*=_W1|>mNnWLKYCi}#!%`gS%fKn|k`8fT7>`qLBg)WCSsH?G z9yWxAhYX`JoX_h~P%CcJGsT*vs%rScN}pF5PlZ@?OxyLTH*5&G>uzgUW>}Ab`L}+e zV-=67xWk7IV(q{1_<`^kW}^ph#awliM%ayvs4Ep*M{?>Eo+{dPhlGO7eP8$(0reL8 zI;jmN=%cPet29XqG&7nzr@tZdm4puHG-hZ9-XTec-6ZMZC0s=httcmOoknG#PB)dw z!DD1kaGRlYj5{Y7r9Lz>dxFUh%zUBa(Ch$GBp;E&d-C9j417QqAJLCb0nA8fDuPMV z*$ie0C`&izFi%#fg#JL!(MtKA$UZoQNCjJ;&v>1P%q8d#pd4AiBF#xGVFgb}%0y;J F{0#xmyPp66 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$5.class new file mode 100644 index 0000000000000000000000000000000000000000..7c0bb28a07b423cd358ea6e57a55740b1c69a3f3 GIT binary patch literal 1114 zcmb_b+iuf95ItL`ag(}f3FTTSr4&dJU<m|53Lv47N)bswN|g7FGflU0?BLx{`XfA) z7d`=aLGZu_@KK2IMI}N(AjHG&%&a|UX3n1d_WjFO0C!NaF(>dWjE1h#N*futyT0s) z#--QfO^gZyJ~T9v<FN{cE)A3kBexTu)f4}P^vM|7ksg0I+`4BYC$O?FUrE=OobkNB zPoA-n7pTN#$n(`$lRKncH=>sl(nh<rh-6$VLlMY7RDm*&1+2<;Paszd2ULWGMF%z( z1eTjBp!Q_cr>HCYJ_(eYp(p*Gj8q(FhdHySv_Px*9|x=oI72dRI!H$oSgmX~e;v45 zz)764u_|zXR&nMoBXh)~`EE*P;%6i{IE^y`1!}ZA-6!o@UEsmYIsOb)UF2rYIXI6s zfi*8Cn`&VY@Wn9cJ*6koZ^dm0JmOjYrr(+AOwAHglk(C%9Mb~U1xoF3x|~3<6HX$J zc2s<C>%Y~~?U+-(>U!Y$p=R~9$n1p!8&?DxvwHj|#X7i(Yb>9Xm4pTTG?E7t3Ea%c znAYq#)w`SNo_R2mwHU>+XfUNw&6iq}#s*luyyp3#S-e=c92MBR%T}<Rzwrsh5A4jr z;l0Qfc!L~&Tw>2je?ke%9Py*V3EpFXD%%*K@Db(DI4kg;gA}Bc)H>q*E!R7m0xBE> qT{s51l>u4hi$5Xq3HH0GR4Yrha49LYfy-=j*u)mDvscVu*!=+)t1S}% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$6.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory$6.class new file mode 100644 index 0000000000000000000000000000000000000000..355052feda8492b571108afce41a9b7b94d908d2 GIT binary patch literal 1981 zcmb`HO;giA7{~t$g_IHmsvwAhB4Ud|1QlPv7p%qU2+B+yJco2!7DLiWwkm!m4|-AY zpa(CGGhV#tK@a*t9G^`?DYXU0@zCyO_j!K%e_nP!{eJrnz!Xv%ni%f7UcnH)@TKV( zdD~oZrNN(at0aZ%(4yq)X0a%og28h_x}K3$Yw2LVWZGOxK5tsIu`x2OA;QqLW<E9z z+a!<sD{I`68d@1r>KJa>qUdv@!1G2)7{#)?F>i0UB^km}?t0Pnh2$gQvd8n><Br9B zhSpi(2zi~MIgwmuh@{*ckD(duIy6KXIv0e)@0He9xc9(Zu{lG0!L>|#+4O|^4i_VG zRS<1);XlScLuVDZT&l>;Qcg&~WFi?HvlaVV-n6(;te6>@8kd<E4x&fHA%?kq>q~D{ zEaf^>8Y<nAT`CAiM=uUD#7Nm~o;ORjWJrgK_Eq#o;6P=+jxKal+7;fl9;sZbvxE9% zVqoZxVvu3DVb4r#xwPXrhBcgE7_aV>J+r0bBu1z)NI}M-;Cd1Z+x?f79yRVvGE<fq zc32=Liqi~3jdcY(JKP?MoLr4!jA3vWH}Q;W-s#uoBa+A@msN}tIt-j+h?2>&X_v^l zw~l18CL6nwPo_d3m+BB0T6}dEckBczY3GSjONGz6CC}pXLfwU3bgP^ZC+%1^T|TF< z$mOb=(?DIF*>@A}^+4#j2D-a_md8nU7|M3{(~Z1Sb6NiJp&-?I#&NipvQ6LTzJ@uv zh}C_yFEB&*UvChVkh+_GE%b&)=|}GleYMf-JdKRTma*4}y`)JKbo!6c2)svxHalph zmyK`$oq-MAAX-s?Ng5SEdxQ8Z^t}kS6{0m*{!rzvh3*VTFc7*=(?QBzr}K}-k8NV8 z3D0X7AFCL8g>k9@W3(>gb6rNF0V7$L@ue=~49<qJq$$TLZ5`!U1~xI?jM|)jrCfds zK)q$-Fd%ZHTuu>+QBmq6N9!ZM6Y@s`<b@D<u>mq!ANiAzzZxK?17tHU1!cO7D>O!M W6|=ZOvp7Z7f}6P2+7=X+mi_?8>*m1# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/StateEditorPaletteFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f0a68b5669b2e0aa5ab23f0cb6b8d9ad10871c3d GIT binary patch literal 5565 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleGridRetargetAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleGridRetargetAction.class new file mode 100644 index 0000000000000000000000000000000000000000..95c6bc6eba0731c462c380bab09028d2e992c3f5 GIT binary patch literal 868 zcma))O>fgc5Qg7P(mF9FEosYF`EHAn9=sAqijYv%6j0zmqFkf3GjSI=-pF28<!8YG z5C?t$KMFBUEDA~yy^KAxJ0I^e`{U=g?*N`)&p}1trAZ^HGo4wL$VsdMV<nwYm|JZU z4qBS3*-R&qq_MUpl>-w+F&(FR{En<jBeE~T;;w_5z+O>}!dTBTlDU>@ew4|-uL`U_ z(}}jv1*+}NP@r~b##Bc`;4v5Q%L0Bx6W`9;jUw(hI^{V79c%lcfh)M`z!TX0vm+-+ zomff}70ctJ?i<Q76;bA)i8X=s^Vvr|6;LeD>b+N|O2&!>_HD{K4_s7n&BF>>0`2zl z`Euk{XIRIkK(`paWa%$h`oCG082trCzh9s|nj<|l33m>1rt23vU0laa2R8(s7UC|o zoN1|4o=d)k+X4;V&q5coy+BN7S&a*UJ09-ho<K7rJ1{05=-GhItiaYqHF$$-J)O|o zd>T+XP(e%uSre*ws8U_{Ww2&XbSCh+cWGh&d36T@Zr|i-NL^iY-TnvHV#|2I%BuYK z!C%1(US;dB*F}y0fX)3@{S(}kFIeAiZG6SnXKa7ucm?;_Hs`q$xQMU;&D8*Jk%xzP M#Gb$o+X{An0YGd4wg3PC literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleRulerRetargetAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleRulerRetargetAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e8350267f715ca8dbe79fa14a753a8d0e47a21c7 GIT binary patch literal 883 zcma)*O>fgc5Qg7P(k3w`g|y`>K>27P>A@>;qzDOBO;r&%G*Pb6+MSw38*i}JRry(P z0K|bGz>h+Vlc*G>h+f8?+1+>cdB^_w>-!G?&#+ZRN#MYyvDBH)oJ!=eQK5B`PASTr zwh0#<jn!nLlUUM`b~cp*8^?wYb3^GNIhDrbUPZ;`Dk=h7g&ajjPco9ZmTJ0`$-lP> zEWgl+b}t3W?aol3vTKj1hPuF076|47K}^SioAw)}MZ?hv-!#-lyN`8T!PP2!fz9(R z`GnMoqcl-Q?(cQqP?o8fG9L}B2(-@Ket4!e>Zy>7K(qH=ohWG()An7;&^sQ=xb9;K zO@VfMaec9J&>7aSCa_<C%#96Z#s+7`&OHrgo(BEG=e?=FyEfs@Va`?uQ)Ul0aI1=& z0?!N3OO0wgr<Q;4Z{v<Yorg686L@j~O=l6ugTP%M_i$gJk&zo%YX*8Upi?KXevt-` zbET&fdYg|!N(U-5R9I^xWrix%MLsW9+&i5KyzX5Z?0?_jj)2#<c^Xky7j0YraJHB; z9xz&&e+BSU@Q9Z=RypgU!f(LZcC+>w-qKfG+itFY!}=GrK5@N-4UUcJ*$F&+z$!9U S1N_-JJj5f;1RirNVe>anrwE?_ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleSnapToGeometryRetargetAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/ToggleSnapToGeometryRetargetAction.class new file mode 100644 index 0000000000000000000000000000000000000000..a81ec0d647e7c607a37587ebc0c1bed7d0a4996e GIT binary patch literal 898 zcma)*O>fgc5Qg7P(mF9Fg|y|P<(n2IJ$NOK6d|FisgMGP#>xp4t=*|v<ajN6gUZi> z10W9k0Dcr=oLGD)LCR&;GwYdG&pY;ypWnU%c#M4qHGxx;$5I!%uqu`3i3*LCbV1S7 zYLjx&(nMvMPGd=D+L~MjCXN#trYZ}}37HAm{KF|(mB(bCM`f3ThQNL~m!d>x1<9$F zYIaq~e_s_?f2vb$p9$2vy^%oU$ed9VErCZoz^?}QF`fH%COj@!*_v@&Nw;tbmmPQl zdw(l(gVd>|JXMK2IqtutqEImv9@^Lt*jYv~9;lEKfzIHadaq=n7<y=PW<PXM$5jt& z=m>PXi}#C_7rjvvTLS$Oqw?3E`|JPqx3bosTk8)?yN_o!ADNVu!znxNm&7iv;f90j z0#8cJl@>OsnB^b%o7fR(@uucn?D7(r-Xe_)fm<GK<BmYPAR8Ey1Ud`o!U}9Jo58!> z80eH<O(!AcfeI5Uoi&k4Mk?23UKJbmtu6$D!OCDOe~E_z?$Av0i2AzJ-~Ern<-T!` z8SDIKfKS1zUgzj=)<=V%fUSd0^Ap^)FSv5h+5C#_&)EIQ^&0MSY|naM!^InHV$9P3 RZ{COdc)*#!Lyk4<{Q~jC4kiEq literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/AssignMethodExecutionConditionAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/AssignMethodExecutionConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..c1c453c96e6b4688232938e98fa587e551fab62d GIT binary patch literal 4244 zcmcIn-FDMP5dJnX$T%WUQ=sJ^N~vSOYUvLJQ`+DdFxZY$JBAbrmF<nAAWN<!r#wTS zp$|dN=}BmF+QU^Zdfn&YbXJlDjsytz<ihf<G&}Rnx3e>||2+TWF8~){OPFA|Z(3bN zvo+gM4P{wZTc)G%$GkmoG}EA$4)3Y`zGie4-q9S>Qq;ElMVYm2t!q@cvto9N!vzJ? zASqfo>q<#TFf_-tP*_ooE`OD7h7+^(dg(^>VWrr(IY0NXc(+(sY?S7!h571SNemd$ z<yCb}RdiCM)E$f5$TRFFl)_!7sp<os#4e%A^(N=JlMCBq*m*@WH0LVAsZ3dT#M`>o zx4AOVl+qp3deq`Zd!?pYPJX7zkSLfPp28%iWu!2b#9oFLEz9{-=RB%&0o6XsIgjO> z&vGsf%f4`fKXy_`<6Q~+7%s<Vy~k}^?Q&bG_yZaHae!f0mpdM33}-T7B4@&{Qeb#b z#``$LAlcjzkQnwyEp8@pgn@4}C8nu6T3^6ACgZq(H7#J#>xS0%2xB-Y<COTcgFcly z413C&!K;H_i(3t~rE?KRW?R*ps-=m!|1#mMXg0$GHyXC<1W~vq`V>?Q$KMcj3@O^M zg4ye-203v$Gc&TF%a@h5_t92-sk|WOoQ(6xG3=$)BXLZ`Y|#-8bqOCc<YR}LpF-*) ztrXpKl7fN@GCsv;Uck`-;s$w}_f2o*l@=+zf!I_ES>?K$uPS0*qq(OtFX0P@N^DR) zI;py1Q=T&%t*taH&ME8%ZD(NdPEqGQ0+hm+xGdq)+vqJB4!4%oHm~V}u4V)|#r3}8 zB~=-DTw#!j`|Fy{D*_6`&t8TZ$9Hejx2_zfXUcjn^10`CB&+~SehOFdjfAh?#_>3c zWz6Cl<y~_8RVBn0JHc@06_M~7pMt#<Eb~s}j=G-B$tdDF1v<gF!3}Pydca3e%6uFP z{{u%ff+TJ-*xQu>gUS*(Qs+8%%W@L882Z~~*mli?d6ZCQ&|)9Uj;88n*H)+z(QT^W zEw1-1b4}}T%XSZG*g{zd)qJ58ZlfxS?>xg~W~M1&fuT31`L;=i*>K(jfT$K?FCf%V zmC#^V9@Flcs%ssU+AdoOyBq8$^)a4Q3UyRdxPv7LcNwmYX?4z}eo+uF<2&4AI6w!) zGv^&AKP@uWjHvD5zF?#ht%{tetZDowv6H2dP0PPdQk<eK4Cn8?WNf~*O7T6af=bpf zkV*kxA_EWXfHhJwCQ-|pPB~s_k}s4pX*k^ZQ4pgZ3u$gq38uO(wl@EABjx)b;d_Q# zu~BU)Vc}4b@Q}fXtuJU4h`X+(_WWi)thZq{EY+~xmOscdes{5pnhRA%3vGtOUQ!Uj z6B4J=5}*Gqo<^vnrse^-IQYv9zeHEkIJF~6_1HMW%(=IOonAx4a4AxAoMwmGK8Mc5 zuy3lpMJ$K7jA(qQ|4j2CUBM1Blp_HT1ta>5pe9F9L02+5lI=%SuHD{Rg2`|(Dq3SO zB4L#{shb0<%|#!>Fca$%B`%6MNijP~w_`?km>t+j{}Rn6kfa}J#S}eddefr$1pOb& zp54IiY<kaAyt9sj+4Ny|a5S4vuH(e7?%EINd4RM5hv<0((>RKQI7ZLoIPHFOHQ_^? zp&9AKN63(!1ZI%+?fpv#67;Q;UB}sHP}cEDdB>mld};FRQ(XKVUoq5|65hB#<4XDl z0ZEtWv5DJD8>noeMt|R)+a$paEHd^K&1bk@J^wfMZsNgG_BZ@+egmB+><QVKgg||W z7yx0MB5WB#wLs5B!qmb!7kSph<RhQL61rF+#2H+HhE-x{0sHU>I_c|?rfIO}Xh|?6 P^d;OU$sg(M1g!r6nh&1u literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeExecutionConditionAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeExecutionConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..eeb0e1ca7c8fc1401b6d63f046cbde59feae802c GIT binary patch literal 3262 zcmcImTXz#>6y0AkVcKM9Yvg_}H`5d{f(Y1xTGA8(X^XamiU>~9X*!T(;>?7b_q+ZC z-hJf72a5H<g)ct%n^-RQH!}&L%>wFLuCCR5*K_vS=Y0Fj-~asn2Y{paSw%#kXgd|% zaxK?0>iR;}DA}HF-Z9Hf&$8=W^vs&kXjt`%Zq8et?dV3?-_f&+M!jO@T1T^Xo%_5q z=I^Ue1k%#BS*}_Q*VHTKg5I>+*JsSC>7NYF3vA7v8=E?tyPliNWiQR<r>C;hQ{#C# z5J(no7`F_)N{{-C=Mc@Pz<RorsJ)_5ZJIskl{S1(nboKSw!6MZbAHw_>aGv9jagu_ z@X|cg?0K`QyX2+rS!KP8IfCo+siOnWu<E8GaPB`ln2||nTcYiCr>wf=y)Cde<r{4= zOm_2^ZRcjmtd|!r8jd$QR1{FM#2ZHxNezAI@4*Ivs|+?1COs1*J=0ElnD0!G?@XBQ z%=7ad9-B4qcyVmP78RQXMqZv%({+uC>FSf=K*LsS6X>m&UXXBsgQ?Y3FtmCp4uKsS zc4C)+>YAQ}B(SmD<zf%^2weZ)$gu6IXEh|Cy&CpOKz$MrmuIa;K$XA&4F}~`j9dA6 zf&KyuW~x~$na-?Hs+zL;?XpoV8jdCB;iBR#TCTv{%a_%f-Y?5cX|RL@cE6y;1O|w% z+^n)nb9IT3K}1tSS7h9;YdC_8f24lVbQWx<7QA=4`G$sLc$4wTB!`c4x^#oGz`&BJ zFt-$<s$QTzjV5pcZ>cy*8htrv?`Rm2PE^ay)f(PidG3^k)8G?PT<abwB%Zunepka7 z&TvkbvMBPM1r+!mRWTkE#hPSMvMUL5y9okcZ#_`E9FNJT8Alcq8qVUJKo7x8N>LHm z(2ClZx;CKm0(!T%L}Q^W2clH8+@?|WZ6%OLLBk{{p94O@fnJ4<2I)vzY-xvCTj1Ds zOg-23dQsp)H?J+p_a&~?9RdK)Q^j7U{Cy2^BxLZj8ZLqI<iBvc>6DqJ9V<Y|meC@N z*`LFNiVp;~bOP@@BV+zh!&Q7F5NFKemQitx8p#U{uk3Rx`3o<w1g;C5S!3+CeDc|! z_z*%v30y-#MM+>{jmFwUKCAwc!+8xF)|0uQp|RyM!+{RAUj(18u%GRlVOj+e0no4z zj&v1}mBe%u7ELEyKVhMT^@LcyIcYR}Wl|yGJZ;y3+aMoVyT&4<JnZk1=yI^>>ftH+ zi8@Uh<J&Dtx$rbJaVx0iXWE>=%4%NS302$?$aG7>(@<NUgRckMN#GtnQ}L<5&d!Qk zWn9DO_#%jKY~E;ivfUr(>^Iq};ku(;q(+AIl?EG)1a9LS4d3EBs$0;C+4DoX*!emE z$dX^h))m?7`@`i{1Qg&Gq<3Y^WIaCPXLrJqy=UJG+P+M*GRQEZ{HBbuX~(dRGnKOl zdZ5VX&aom(mcKFX@gs!)2RJM7OoYF?(!-DNN;>)KZ`inm?djxhe=wL%_AFuluRIaK zYy7{7_rcB{!){vHgUuM^Y%fy&o^J_5NOMM;7{(#`QE(WU(4Wp<!M#}e5%dQf1ZE{* zun9{uT5upV6OrAED+DY0cv`x5(n~m682$^|@G_1I+(#_>fI~8;{Nj(J%XlY($wPl4 zdmrP69wWPi++*aY(ubFELEtf_AL6}WeP$V#<w|};NpDq_aYat9E#qVPYdl0*c@ULI zqdoy63>yqA#?X2hSQ0um@Kb&l8|falw-iotWrTmDY%Qm#n5R+4+i0-s$>@#+5romj zP=kpD#+Sl*RItbhM{pb#ZqVNxw%{g53aY$00ObjiDo%*R6HKe9DT*vx?g)GWC*TN| zc~7QcJ2`Tbx0i7@!Z2<ZhB^O|w0s@K(`@$fFsRu5biNH2e1MyR>mk5?rsI43K;r^G J@@xb@{R=MysPO;* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeFinalStateValueAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/ChangeFinalStateValueAction.class new file mode 100644 index 0000000000000000000000000000000000000000..42b02471aa9a0d8076d70703ed624582011bc02e GIT binary patch literal 4510 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 RQv43Tr*MHcD7FiK_%8vKSw8>( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9df4a59cf178e300bc4b588f0d6d9d141ba36e12 GIT binary patch literal 1427 zcmcIk+iuf95Iq}*x=l<Q0+d?{Eu<w$Ax_{0DF~^Gf>bHA6;$OS@vw2W=@w@<vK`>J zkhqlx#4{g-n6(oEQp#IwS@xWrIWv1avp;`*`wrk9?%PN)9O$6u%20+8SMH(DJ34a3 zd*KZusTF~d=<~rqs-7#lGSY#|y?DiKk=YtMHnk#?BDUhyV%<iXA$QE*a@Xe+yxTbz zUSwmAAwNN%4wd2^Uogx?M=~tdsGjyL3TjY>hf>Mt5yQ*UY*LgD7}8DM6$@ZE>%hi* z1{RhaEFi~Vm5jquTPm?L>~}=4pX@x})*kl{cp!~E0@Fqgh8Hubv{)xOtYD}zxP&V< zE;H=ULUadLagAY~d!7j6pZjiB(#JXp&zFNxxI^h~Ki9#Vj!@pw9uK01jTMIKv^`SS zjvKqF`+csuNl)t_iyK(8vC6Pw0#7A(a1*x}GCdJ(b@?C?0mFK!J!$f$&%>}${tHQl zp<(1-cd&umN%*J$hGMDw&xU&9(Djn)LU-iV$fAI<g9<ho7L$n;e;76rp~po}C3qG0 z<A`^>Ylhm?o;zJ9>ZQyxJq$eYSei**``^J(HL}nYw3O%TkWQ5+B0ADt2N%tVINM5z zAl6HSSfw$t=s5$H%b97SQ!7Q!0y2bV>FWX62FX-5Kf$Sd!QzM5=bXXf6%*Y?o@|F= z40;|H=*>*R5zA}JVp!HHAK`q(a=vha>nZ#|p}lFK&nQ|aC|Q`0FH#7wL&UpO=3bm& jIUyM($YTk2aF<e8sFH6AE^72n(?74%;cH4^bjR0kou{99 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditExecutionConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..a290e41e5cb7e6253df0014541a70792a9b0d362 GIT binary patch literal 4438 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 G`S%I!IxwvO literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditPreFiltersAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditPreFiltersAction.class new file mode 100644 index 0000000000000000000000000000000000000000..1d74cdab7033aef137ee8126ff4b8d454adc5d8f GIT binary patch literal 4671 zcmcIn`F9&v75<)=jw4Otpr)Zo$l4~@va6wVBT*XaI&v#&C2s6G#DSEtG*%{&X2i_M zPRdeRAV67L*03*S4-n1)C#L6c!VmNZ{-(m=d+&|Lwyd-&r~D$#yyf2S-uvBU{`H@~ z{T;yjaos?Vz@#5kEjM(-$o8y-nmzAFmUGD|HzU{gxEMKgyU}pHs^wJN$PX;Ltahvd zU#9|R!mUM45RR!;1APKnDbXp{+(zhFRcFC!y2+(!r{<`W`n<qk;dpW8*{M^7iQ?o; z;ncK1X7Yl)Xj?U#DyO4>n)3pi#}ybanzd_9X8@bzO#;ZRA`sZ3;PPZ-yPgvWJlVZ* zb-&`&tdPcfkz1x>8lFfZfIE)5o*Nw#I54Dyw(O&A#nXOpao+LD=cnu-$`8*9^o>(o z3cc8B!o=nQWCTvpExFjyIqm3N;^^4NIql<I?BiS~AIF<B&ZQ`YZP;$$E`cLmN3rgN zp<Q)Cs}w(&csK4A*i>~Q?QVfXLmOi-ym2W7ft@CH;XMLI=tL5dz+Ig#&kkUZz%%c# z3w*y8xeW<ppNahv#uf>K%QJ36J4oOj6Zguker^>j<jo|>aiUqDcY+yvzUD~A`DME{ zYX`1;j~Dx*^KK|`qI(MI*d<i&6gv{BuR)Rs?0pLs32Y^%a<fJr7CecI(0hl5=cKhc z6Bb6*5pT)~7W|;D^GR;rZ!)(Zpj9%UD&3sQ$@vRRJDQUjisQ)iu33}J`g|G>;SmE5 z(|IcKk{uHtkV*_UEYus(WqIz1i9C+dh|qnGjw7C;Ts~&vgLsVZR4EBiTuT<MJ8$4| zdb4Yq#?F*~(qW;_$m6bE4eYvdEmu<*!*LS@Ob856cS$C(z_yl=s)i)`pA>k!YyG+& zEV^OSuC3FZ#uNCEiKj40|0@^kk`e3PPu)^Ut3EjO1wQ+MV-*r0Cj=(mCXm|{rcI3Z zl!+A5OyICpTM0}jYZ6NGPWbCfYmA1am9?&Xv1B(C@eQ2j_0<Zjj|rq`>bPI0t>odo zZAQu>U)GzU6`x|j&kCIE+Rln=*ZgW|6<WQA)tA9%6Ve@qq33=IbNHyNspk~?SXMsv z4p!Di(#~We&6_BL*2>B#8RxU3<YUX*8z#4{dQ(;-)>dmmwb7D%pW?f|oKIl^=M7W^ zN?m)U=&`vj*kxy`)~vc-;vChV7&F<JO}MxqU=k)><-|mMN%yJ$1*m3l`^{Ed!nHGj zPLqzX5-c=)4mA^Xc&x(nO}ADNBGsWwbYE(_QhT<0c`fqEgbA$$HPTqKuCt`MHx>Ac zZp8`m{|Ax7vuTvjF!6DaUz-`kwIj{JwoH@dL}r@rSt_{;s)S1iM<$wBWTJ-W{Ux0& zYFJrc)AJk3zky2vcGrYV(wr`nrPvw^L$~U!VxI98H<Q^ZE(a+r;W?SOpAb0PnVN4x zu-lZse0!Obv)A3pP?c1WmOGw)`;17aoe0yE&>~q^H+#;~s`Ucf*AEky8?AxjTpQS< z-Gk9|Pn@t3Q~nr{^af2&)~(N)_#8g3yVJVSRG_^(ZJb^We1Y>tCpyRyC)+VU0pgfy z9Db0-m+)l+FA40H7hA1wgK!gH!B=%F8LQY0RyKiyYwN&x%?`sBMb|cOY1Y?Gd>Cia zxPq5Wyn=6XUeS@}oF4Zj&aG<!bZkp=k|TpLjawE7ysu+4Zf`S-+IMl)!1w6XwK{3E zD{HpLu_1B3iSOeF0%<09(PRDe${e2BQ@i6$rRGN_evF@x*}O03yhSIGeA@LY{t}1W zwmPxS_xcbAy`SM127b=rvkmd;7mPk?;#K@o7bC4tcCoi)Pt~D{U*oq1e)Hx`s5&No zhu<>{i9xOYx~GF3dQW{@8Tf<1BNBakcj}@6lX=sAGbqbXR$8+|%3aM|JwWGVx#Xt= zvx(oxJ=lSM+`%_Py$x`MvlgG_8b9p#yM=G_T<_ukp6tjC3}!R$x`{iNu_K$=tseGf zGXu*w@Mk6CAb+=0DzKNo`+5HWKfvz6Zhoa4QhQ1g-isl=Q6`3wrJg>FU^Lce@n3MS zKYIiBUE@O!q*w_Gye7q%`amqEM}9AGMS}e&PfO#9*=4eR<aL-MD|k@gD*Ah`@$oQq zy{evjSMX>LN~8b4*j4Pxj^4u9GRAM=i4_zDZlUy7ob0>SD*^N>06FEG`)F4Vo2W8_ z`}u|XAZ>UU`*4`hj&SuT2lhufML(v1?$cmmp#3<Gr*Vo<hv=JW%n<A|l)n{yZy;mf zA(4IqhYZZpAFKwkN!O`Snv{PHb7yYgBa<VUXX$x*$G!<ih-F+H$^Hc=SHK~78DVMk zb!>eNOK0Tb=nY)HF0S)>pE6=6{Rl!Fzyx*@<`9bX-BW~LS_3#A10KKw_#{510N;sE z6M7Gx=Y8q_A;^`_#3rO6{*A*1=4b^sU%<H-{b^#CG2g|2yqLMNf-m;axmPAf`2ID< z;2XVIrOp;*=rjiDnw@lwjP-VXJw`N0-QU8uDZEF{ud$M2{Fm(5b`#%O#t&EUQ-Kxy aN`~>8w0$ju=9E;;plz{Kfj_EKfBG*OFM4(W literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditVisualizationAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/EditVisualizationAction.class new file mode 100644 index 0000000000000000000000000000000000000000..571445ae0351cb8589d8aa55454558544e4c3bf1 GIT binary patch literal 3601 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewGeneralExecutionConditionAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewGeneralExecutionConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..f662e19b24edd4f51d0fad752ded6894bdf0b1a7 GIT binary patch literal 3983 zcmcInYf}?f7=8{!H-trPTC|E{y&(k1wpM#Fwn{@(Gzkb1gi>*{IV`K2-E?;&{)Ya9 zPCxY**qKhyGSlg&e(1mG4{4|G+1<o}BxUh344XZ-=Y7xfUiYtmfBPN4CDbMKFs#^) zt{AT2da9+Yn`+ti6#k5Bb<eOZn)G;8t<?-mS9rznY)4Twe?=+s&0E~!j%wzb+q1Ss zd+6MhzehrhVexhGvm2_V^KRG-!^Pav+O1qMH$RnM%RR_t@0Vs~i`m)Y^o)36Nai1_ zPgTVv7-hk8=n5Hz0n$-i)mv1}I*+4I0P)Rqc$IX!JcfhU49oDoW;i>V7q{V>Y1CY< z)D2~3$#$NUxutE)sg9Q!TV#l3?Fvtz7l&jd&>zPUhDUTP9g>_5NKUs%4*5+7{H8;G z(|hw9ZY}X=UIIycAmM$6tC9Jxa@SRL?ka`wMaCeGGW6-(3;1Ff8Eq$VtbHm0h7V;N z#|Z|><(^Q9VX)KT#W+qfXz!E|+crI;CX^bMaat&KNGL_qC8HM5#c)Q(S+R70mS!pp zhx3NTi}h-mJ0-Pja^XO>rkabYV~BA$8S^#_mtocSgm)7+<fgG2xf8?bJ^YO!LB`73 z)v9XI70!>2?Kq(GbwvvnT_xO=kubq97uicHhHBcnt8|U^X@5f;X$Je<SXJ+qW)c|3 z$0Ev3^pUME$@mnP8HQYLa?RtFlA~I#pO0FJiJ=hPa8(LqQ*kK)TAraP9pEzk_zYi2 z_?+QxWJdRfmGLF6Qv8r@JLRKdXy!=Xw@X?(UPiEZO~zNC43}^>?9ITU3_k|x?k$N4 zT=Ok~Nw~o<DkyIz<K4bqv+GtR^!Ws?;~U{8S%%)xu|<&?ax!k>7Q+!Dc}Ehb%&;qr z+Vi}G8HP+`i-(nSK~&S6UqutRjk_}PC<OVIst30y;4@uJONW$dU1T-N*vd`6Oc%s> zj>Z8b*>M*4B+QYIN7ih{^0>3EYJASD>xR|x4qw$mQ21rcV}U^?qHY={FNmmM_@T3N zL{W6#p3qUPmM#>8_pu~_YH#$52VwF5z%m|SncRUc-ZlHVC5Ka~xYxyQ&CZBgj#rJ; zu8<T6RB!8=S9f?NXYwk!0;TD18T818Y^8bL6sa|vF{Pkd<Rx?55nUc(3xT1SR)DPF zI}soc8Gi0;*e2}$Z}J8Sw-YfdB7U#qkqi}Oif6S#mG8pN&TMxw5ap4YGYPcS+CQgM z19eBODpRg&=&ypLRaHuMhuYAhR>QiWR%iI>O{i_FWtrC|w&nJ%8~B~;LH?AyW13+; zI&#GJfLfYCi*L3IX2?euwkvSj(MU|Z83_z2A2~{apmTi`FP=&*pu;fx+A4L9W%}%( zgsMHEgz9&Z5=h9M$bPuzwW)3|*mXzaA}2CjjPU6oK8<jO>R>N@3o`2558xpEN;K+0 zoc;+D{q&S+rcC1=`W;S<Z($&nJp2OhHE=AI9P(dIrIPUmKKjK!dybw*2@O8x5Dwua zj^Pyj4dcAO<|E+(MrcHsxQJ1b6T=u%p}fCI7lH6_8{^B#NfNRJB|o0}6`#Ds6@~^f zg^53LV;k3(w=h*qH8A}LZZ~k}1&S|GqOYLX<Th58kH;orTUc#ijfUE?0GQYU7vtyb zIZ5b+(02rV^gM?F(r}10J54$Xtumz39nxxrI;2%h`ublEGz;|~z&&ihAial>#bZ1n ko-X1FOjHRwLkwH6>25W`CpQ1Vs)TU~-_rq?rh4H02N?e@5dZ)H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewMethodExecutionConditionAction.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/actions/NewMethodExecutionConditionAction.class new file mode 100644 index 0000000000000000000000000000000000000000..558061923400dadbdf6471750c7baa7d0a848197 GIT binary patch literal 3684 zcmcIn>r&fB6#f=SWQ=kt&4rdgE<kDwwVI@qHcpc!#xzbbkm8t7+EQ6w%qFtrN;2db z`U>qsq%$2L%}gi1`lHX(>GZ553owQlW-^|!w7ci>owMhrfByUPF90{;Dd=EWvYm=1 zT;Y1UrLCHJ$@Vn<f*W;D*cNSiysFn~!m4PzEIixMbi+T<X8A^*duw(%+n~<a7LgF! zeV;@@7en#5;xlWyRpAH8W*C^wF0SOWg@<!fE7_;n%#%WHZZ<PFJC&0!481eY^mSb` zNs6}MIb=YZ;S@oXhI&Qatn(PUr5wJI3Jgi@*T!)2j<AGxm*HAsM%uy+Q`B6p)rFQ@ zw4LWAZW(Lyy5prsiws>EyUgS0#Ay|A^u%zMVTIUIp@&m}hf|S<L+7Rf=cYpErrzq@ zkg~vEcyaXNoPzfmZny31DtBGI!d)#NzNk2l3k=;A?gidrxSrVW!qNR(aWM3$_y8X= zC@%LTB!=^?n2Rx7Vko^!f7rI^iJHVTsN%B3bXsDf?SiNU-eS0_;+i}<K}WeV!<iXj z@!5K{#GQg(GP#T%+tAIT?g+UKH@mzw;W8}yaqv!3hC;NfMzO?j`7Oc55T~ok*ww0T zkp;tv(LD?mzN#6)p{s>dY3Y@56(1uNTy)k?Xohsi+-wpZYt_2+CxwbO?bn99T+h=w zU?!QL;HH8b4EeT$FK2n&S=9|bZ`Lcqin4A&R-1fKZB*RCrwl3?IW0_{r?fH|ehG5$ zI6wpcG;=me*PcRGmCCf1up%sE_-FWB!6XA!fi^2>S?H!+as8XItsM<f;S8Mmpf1cZ zcT{|V+YBS_n!RyIJ(%)^GIlm`gurYdp(<~>+Nv<=Mzo^f8)P88&O7$HAPDL9L%l7h z9pMt9=#5IH(P%GPUbiR$59&URa941LAt5iPQL~$~qGs2va!4LW8h2&UzQ@p+7%j^6 zeH9Oop|xJ792?o&0Gfr#M5G>|Aj@F29TJh5bR!i<uWI*QS5$U#A_|RyU2t^E_4{kI z8Dj6I#Qs{vL*y9xU2by2<K-6Ql%z+!P?y@j<q1P;A&zq38{`$tFg!cD!N<K<6|<Nl zJE<~IRuml0sbSR(ukP@2*5p-gQTcp)KuJ3!-*;KsLS$OOV}?g<n;E1-Br_@|(bdH< zg#{UJ1%}^Rm$ml5?hA?|C+#69{h>w)gOtH+KYXIVKJGnJFN`&WFeDFcZ@Uv&j(OBc zjOWxz{Kg%}GJa6-J@x(F#efDlAsdmUn_4u;srV5q3_TQFIe$_#Xc!o2YOXCgDH)cb zt0=*sd5HMs5WLPK$&11&+Zzl+`-SbykpWS<2OJdzt272QA#NsBu?9f~NBU%ICPNQX zB1uTab5s>jPaQZ=g(OsA!KMi*QqUM023x2I&ir9m!Osknt<t59se*=^1-tGTT((;p zL=WkH!KX$_&ic4YWw4VzZ5R!sCvcLU3avU2qg@h-9{N{lr$l=l^c+l%ZQ)e1_slll z+r-6WZ@>RCknD|Z;>zzn?-2c8AZhSr_Tw}z;UWg;H;7^X%$I}_T&ESu#79Vwo-T|c z8S49$_$97MmfXVFHneR_%#8hw#A~FNw(w<sd~6e6jlag!Qt}T>)8f$^%x~dax%-m6 zB-TzyAcMX^LuAA-&XU4DQZ_*9ZjrJHjQN1B1gb(nD(yZ&k%06O<szPv;Y%bb2KFx| z6sq4HavltU-lZp_({tPSZWBMf0(HGtc*gJsHHo6bM<E>x-0-!j0ez^A!SSiw{{c}K BszU$( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5e62a2c11bb441351b1bca3f8d139f5d57f5c236 GIT binary patch literal 1189 zcmcIjU5gVj6g_F{PIq>6>#FOwuC_?K3mexbp(0AHAXHyQtFP%yY$IthOw!d~B?yY* zgFnC@CEm<d1i{4zJ1~>v=H7Gf+;i^tA78%#xPx|t8p8`)PPuZ*d13f#Ehg4;`A%jF zudE@Xmvd1R%1pV;mA56&mC$zT_+VzOlaG}VIt^}Pp%?N|b=f(H&|qi>XqjnMILX~x z!abD6JD$#@)(>-0cv&*6`I&N^+f>PD1*P;U!98V^zt8ZhyOIpOF+*cubGZ(NjRYsK z7Nd@n2_l?gsCR?I=13X&Y%!n6^0}C3$*?uDnb2cVs&HN!8=)BtFIQ1$=YX2A;X?BV znyAYeZXI>xZyXH+U;W-V#x^cQIM0x-fT9E!(PU_fER(KM0;Be{s}>wz8AF`fMVXNb zLq~Uxk>vgxaVUs}p~>jqNzPBDpV>UY4sH;AwvdM5eRmYxxE3V$)R*Me|92+lBmvDG z&5Q9W<HKJ=^m{t`z5j~FkUTL)mIE!Ela79c)JCJtTCE^L+STZd&?Ngh?e5Y!SmNEi zPxSeW<U{4N8En-Jqqse^=$ueYu%5;itqf;yc8T(U)_~I7{fPJr&i#q8PZ@cIv3=yX h#GnXV!exrC;|j&sa23~RZIHOG<0kE5x(iw9`3b^|U4#Gt literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..cfcfbc81e5bfac3773d2400aee0aa2b626ff576c GIT binary patch literal 1905 zcmcIlT~8B16g>l#rFDe@f***W7HA8yQok*tSTJcUl2|Fv)7_z6vfXWVwuN71Vgg8f zFh2XEjCZyO2nv0$O{O~^ch9|Z?>TpW{QUY2Kn6JtT@34<UomWH%YeJaro+o#V2B-I zHUisoX)_QtUa#A3#SoSqc)nrT-0>>X$W=X0inq4QouV=;ai<}c!^1>ILxf>kK?~Ed z>rxnUn{b=L4Wv;NjxZJclEv$R@ELl7sx1=_D4IeC!pSm3o7_p5UajmgjE6o>#<gu* z6+waJlmS`yEZD9cEHZ2-I}*<Y0i;R{k(_6VC>XBjxP%@x>(`;7H->Hu=!jyFp*yKe z`wO-!-ZyGx;eX_1M=%T)Jd-;m?%Qg8xEWD7X4vS&jS?BkT3;)Tt?CMkA>GQ}$xNSS zz=~o-HdTt@CT?jMWf(h6nm>x8V+^+$2B=&|EXuo<*a?%7k6{9LHQZr{Z}BEK98SC~ z20qbO$2}w%G$KMntZgz3C-bSoX{)RXWJ<?0l4MI>mU+M#rjlnZPrkfX-Xcb4HKZBd zwawrfmDn*P3Cs;_(^&bfx??#-F^f43_Zf<9qqZ+o9R^5qLq~EycFeHaK2I*b2c>lu z866Mth@qF8rjRl*&(Q3QzEb}bSg|S`hoX6cXBwWK!?w^+$8#k!&9Y^kdL09!F?|O7 z@1$mk6}^UUQj1iYoH(an&M6v_kXKyO@g$LTRRmSf((xKg)C#=1a2Y=Rg@gaKMy;&1 z^(knh;tYD;b%mdExRgSYFiE2H-RX+QRYL>fgQ}gW9U4)@==?IxUea3G^`~d{pr>c| z(3k##_~+1Yi2h^Y3zS`az*So7^dgyK7$fv#xQ6S8P-OyA;8W>cLfR!D8vD3$fbo4y zen)B#GwSF7^ZR&w?4d6VU>&0<VG<jmmys6Ip%=o$3uMVpHx|f47lpk@&j``{72eQH JT}Q=5zh7bRM9TmG literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog$3.class new file mode 100644 index 0000000000000000000000000000000000000000..270c74b2be53279b0185d1cb5e34988409a36cb9 GIT binary patch literal 1204 zcmcIjO^Xvj5PhA*O?Di2<Erbot{T`Rf+Oxlh=>v+2+>P4dJwcTQzk8)?l9fi^;Zdk zqImEJ_@l(?Nks6ldN2bs-CbSvs;1tn??1kN18@u1swfFOv-vntPB|}4@<z*%^$ESB zbncZkZ1gmhvzapEgfiuAo@7dDJ9bHTVy&Zx%1Av3ZbPZ(^q{zG>{U?_*bUH>YBh6| zxC6%BC*xf*AWdn2zn{sOr(9soPn2ui<ZAjWD5t{-?kJ=DU4a+Pm1JlQ1u9*e(K-Z< z#yEnt2xT0LQN@NpxfvWb`^wOh`E*42Q#sNku+_Jz)I*u8a9$cKp&0_tS5atVkDIY^ zpt3Rf1r3x5v=>b|jH+IsuG1Pu*v6SEP74fHz*LO0s0q|$nvyF7A-GGsMJN7Voj^3O z^E_oyhUV@ZqR<;}<-TM_dM4G@vAQ3VpV%zM4z4hhc1A|veX}3j5-nN%1D~^7=if=0 zvKn;aczldkY0~>OQ@@9$)B3My0`VhbDDP_N96A0K79LN!sMmuYc~|1MiW=M3d3T%7 z!4kEvf8x()#2*Tu&0s5T1joHZozF4H1nY5Z@hWfvCzmMqcnv7E_D4itaOzKtSDf*6 mfw8^tTViko&fz>qmvMpPOSp(jyjECXmvNPM5#NQZ{QLxDhGcI5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/dialogs/ChooseFinalStateValueDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..305de9af7822d730c8a8421d9b91052da7fdc3e5 GIT binary patch literal 5775 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 VAqLE(dzbTD{vGwc*lW6f{|9y#s`mf@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8d100d76ec69797cf37e1d058e6848ba7c70017b GIT binary patch literal 3846 zcmb_e-%}G;6#i}!SP83As#L93MWhe{EBK?<U`3-SHAD&&Os%cU<_e3O-MG6E=|lSu z^dIoqnLeivm1&*n;A<cI_jEcvcXtzFc8y_*jM?3L@A>Yz-}%nD=dXYN_!GbcN)loW zbC$iT=#K8Vs;N9S)D_EB_;apRT-`Eh(B&nyT-ME1g%@?#vb{%HwOvP95VJRRb=6i& zw`g*XMhC_vBp4Kd$~8kTJ6u`ik9{l4&^4Vq%Kbu4-LxvMXCwwU89LoH-5EGX4(0aN zqYPnB>Za~~!LTs2*WklT42i5&<XvFsmeGOEB;wdFL&5=u_>fp|FsGY5Un#9{dr@66 zI74sF(o|zfwRQ0w3?>8x4D);J<G?ska9FcBMJv0e8^uQ2FZ+x%hN>3I%&_N3Xvzy% zMx3%w#)mk>(4h%fhGWqNBn$GO$M@iRv6!_=CDo+$b1gQ{t*g&e#ZXCj_g2=q=0>=q z`9O{mAkr>LO{msZb<-6rhd>xk)R-V>o~^I0JN0AODVsm7aEBD1T@yw(tcqE5=KaCU zyU!fnJ<Mq62og>)-2R^_Pz#}ieulG+xmdK-jfo<qq*dasy{XI-vvekdOBkU1XnWtf z-$g(F{bI1d-4LVQ7{ri-PZ^FhIwFcf%}p7@NHOeN<?bw{lEH9jXgJKCgmh3@n(Gx6 zpP)RIguSw)I~CRNu#z}~F_Dc5!-MGbZ(;p*bl*u{W_U@$IK#y#{&wISYG>YZdF}WT z&NEEC$Fxqku#Dn4NhN(uWaT9pC-4b_6v&ogETqwvie}hPrCob6tCoYx)I*WU`URwx zySY|r;w`NuNE@P0;wr95pb9<MtdSj08$o4E3B?G%@_fTD5R02-Qt=Ijt5H-&UTMBs z9J=C6SJ!+EOSs7}(>6psF119U0_R<fS)VC!v}qZ)g}ZX2yAoy?&PVODBN*SmJZbtZ zMKj!$k;5#-m=Nz+4%NEjlrhcR)dZH2aF5|e)Lt!UdFCb2Tep0YF1fE{%wxgleka+d zEt_F-7n%rF<|MNCS|lo6m@nH))Fxv5WNoeuyF1}-68=8J=?G3W%jUJfxunQ%7%oLD z<2zwi>LMcXi2SZ=r+{w-B@Y>X-a|@ucJ}=Ydbsw_&d_$G#g#0&gRG%Cjs%s2(;Rw+ zqa@>-+~Cws@-jDzl#T%fl+EF-c2QXfJCqhRb8>CLs@NKz)<sWtG^(E+6V6fxcgxfa z%b_-Smb+_KQG(8pkBVxf+(fM3+d9j5B3i~?zd!MEH)xota?F?}w>=KIgHx1-aq8h& zPmgFg=}q$f@1yZ9db^Am{Q=3;$Zzzs1^HL{is7Ib^Jb`LLmoZ!Et8EH{Q$l6Oo)aq zK)Dj2bf!kOaJWjdK0>EwG4EOTd1#%1HOQBbaD?U)IErHd&J;a`w=vd?vFu@-@@MN9 zu>eEt_c4ysZ$eyX0a}&55`>mdzro2DI63+Tr(fX6Yn&;hf5%ydZH$a=<Mb9rtF+`? z<C2NyB^Roxk@V;mE(*`$9zT7=4Db*K@I7@7k1!4u)6hImQ~u6%PxJVUxEB27J)Z^V zdC%uKKBxBtVrTm4_e2|9thdd@6=VV~{wBT!vxSjYn4C@bUjGGyuaOm>x3+O7^$K4G zl;l%1Hs{f@SWWjXdkYJ#7e1(Z0rP2@AfW&jkyA!Do}v#n`r#l&?_;Ro0-oU-HgFfu zu|V(3_@UuIg*s&gqU<|zzXOXzun4Xostd7yFec&A5V5sFZ2LOCL{GtKSUEp=;J*4| fb?_L07s)0LF0AkvtMp7@4eK!IO<Z3hTJ-NfZE#`w literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateDiagramEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..8999789c5327420a1cd361cdac7b495a0949ee4e GIT binary patch literal 6515 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8f820dccb83d9bb80d4961275f8c3324f2c5c6d0 GIT binary patch literal 1164 zcmb_b+iuf95Iq}*xN+UoDNx!{=mi70AWV^vkcxPTf>cP_ilV%4oFU!TwIkap^l$hD zq#_Uxd;lMXnB7JNA>b*tR=Yd9bIx4Oe*f|H8-T}nV51<=Nz!4UGL_{r4&FwxpX33( zr*NFBBxYkyCvr4W@i3r)%9GSgBbnw|aG+1yZ0*We4k`7wY!n5&BY7%=NV3ab|A@le zMoC~(^H3P6QAR=bj!8}_W{_8O)?sprDHSN?hbr?Qaa2<bYnySOsaWOD1@>yw1g`f4 zimhZoWeCi<urcGn!n}(zJOQhwFU)sTOuOTgKBaGDKO%vJP7=zfCsU>O6Jt@QF0ebr z`1~zS-8rVS{gkqd1_J&?`hRajTQ_98-Ya7XD>jw|*8bfybJ@jBtP0pnp{pPub{yQs zx{Wn~m(vrLiw!seGcpW05v>owWE-Yb|I3A&!Ws>ayK*$C@+^n?nj(^>9L_;9PD6U3 zbXTtbDd&e;$K1bm97ajTFQ7~LVKQ*h(9NxAMYSl3^aDs(yY5cR8g50BOPyhz6=CtX z0^xaD82scc9%VReo#oY26!-_6M)MQg#%EMM@~(iYwwV*{y@&<gyX>Q_S8<JJj+N~f zD7^_vwRw&k-rNU<JBRxPw=|e#z$%7#iK&<2VZ{J08iMKs5PWYFcNo$)Uc%$$-Aj%q qY}Ap8Ujdf*0<iiUmbk>?w{Ea3+%t~%QRBJD!l<LkD_sEX&EHSpEGdcr literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditManager.class new file mode 100644 index 0000000000000000000000000000000000000000..efafc46c991426df7cf4aaeb73f5ca0d099d8cba GIT binary patch literal 1372 zcmb_cT~8B16g>ll#dV<wf?vpIfwmwE=z~d(FGLMe(F8(b;>)nTlp))lW@q^DXZZq& zCdOxfl<`j6NK4_xu*uGynLYQOx%Zyg-+#XU1h9@59(n}c>$Dmwql}eFco55dZ9_Vv z=-4Wq@TR4jtk+di4XL86P8+5!Q)|K<_w^0$evpZ*QtBZi@bbENjOljY)*apg{jXG_ z>}!FK`Lc^bQLO5Q!YUnv?^0PmRFRAw-zTOobwRAwu?aUQZeVm;){*1`mkN6VnGIbb zAHBE}pbz~5*|JJ#`?$7G>8{+5Nnpg`<2{)ww{C4_?4dFO<p$a9RH?*?8hxBb%sJPU zM0cJ7Ufj$?pwNZCDQSTrSIo<52=wL)d#(gy0Y)(DL*PMxhj=6~SfvhRKHo`nbRZ)N zPZXU}+Fs$3k0*HQVL~9+-mshS0VXje;5#~<*i^?{f-79+)P|?3!VqR^f=V7{1SZ-U z+EKf7W<AVtm#&lE|4BKw=3^G~PAm)m^mt4CcU_o9K0pCQZj-E3w&-h_FCZn93M_Vt z-(^ZClyEuPU`<h5&Rk%!Lljpl!*UytQAEb%R$b4-0IL{f4Mw_FQ|#{VG{pE;xl1s1 z^-ixG$rC9MY$klTjaV8(1~VL|m;WK)QMmiWqsOaFUb}s-xU_tMfp0wRfzPAQ78qh+ z7I%3z-Gm{)Ag|bgzhyayn+@Y0qccvUt*~Es<@_g#7r0+M$M`uO|H5>6=?7*%^Iq;8 zi<ev@j0XE=Fvc;*S)o%6&hci97H5{3m#_>mJb-6dXfe&Rb*JcKmX*tpE<f<=j_wZ9 RgSE!Ej^}J$RcG1q^A}9Sb%p={ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$1.class new file mode 100644 index 0000000000000000000000000000000000000000..38f92c42cc4a9670de5387e76bb3e403c5880348 GIT binary patch literal 2581 zcmb_e-*XdH6#i}#SQ@raOHq`nRSQki%7XX<O$(N^lt@w#VzesAW^)@BH@k6n!-(Uv z<M>DT$TK?HQkijl_7C#Oas2Mxq=q(V9r}>$-gD1A_nh;c@0|VpuU~!z@EUF!7!W81 zVZ(AGH;QfFTJ`K&5L@y~>9k`v@F|RC({8m~zhTL`8wa6&wCpgBtZQm_k<u$%PMk83 z7C5QQNyl?rk+d3eHBk>d*KuWJ6@q3f@TDK?Q%ZVQU~hcOjV4agmC`QxlBdyG*LUNy z0;TM(S)Hm1qzge^4nknRi9OhxK?*}A3>*+hWtGCglIzRmcC#kKie2-hz(^@@Y_DpE zu3C45X%)1<rQLFF;uM2E<b;xtEJ#nrlDTf$ew}wD8R!KilwY)EL<pC{pxwHftnyRZ znO;37v7v!e#_}0FjUxu05m?$KtV}$M=LGiIjw2&o2H))>VmnW7lel_T#A^3r*GXzS zzaL|G!NBtZb2|>VpCJ=3VqCy%$XJu6a<|38Sj;9F-x2%znN?=;gLoMe23`@Ee<B~1 zF%!pdT)-$U7c0g2l0f0f5~v+CkQK-(-yT<5t)T7KJN25uB!*O(O`Dj(s{*4cX+b-5 zSkb;O9o?76Dkkr?eaE)gs64C0{zbGbunV!19C&ocWVbs_?ndrcOgnj6R2RHq;!V6I zaFiGHnBKyk+3eP9{+%Yhv5+p4c-zD~AURWZon$<=os8Q^HdR&b&6zmcjlW`tk2-1K zUADFz<Gp!B-L)H`-L#S*buDh@UEsWl0v3orFS{5-vA|fTM0=6zc6{dh0xlX@5;(FI z-L8&_qB1y0gB%iU{OZgl6D5?%c}mNQb_BVLre|}~T&~?F&Upiu>C=vbOc-*<joP-C z@OL4J*1-D$r~BFA?COlQ<nS`RscHk-uME!Nn(FQqfv^8ZS9+```M!|-hZlJ@R)&}+ zHuX-c7MRqQdSU6`)0yQi_yW0Yhq`;oWd4VRtk)q{hx2*aZgnPBCL!SkSI;zEI$e}c zD7ta<E&7fZMEq7L%lKAMH*rJF#gSwxZH|0?2(T3v$>p%%*-<1TjB}u-_)#K;ht*W& z+W>zC_EA2_w=-NTNhUY_Gym3M{-AXZDw*C9Jhy^ju1%g%(x))OXBvkv+OhHnb<{22 z=6*uv0S<5AsKAeS=^plo`wua>vW}^;+FL_z11AK&$Ke^Z?#R~g`Wnt8i`hO3vx&mY zL!4X5tzmuxivk;XPvAE!Cj$L`WgS;(Xy!hBNkPSMTt|7G9^at1H#v1|OrwT5IHXFQ zQi*S{s^c3^V(7%jXz&55jBpGdKEy}N#tJR+!({YNWDQIz{f{Xbz$f^W&oq0>b$q6E Jgw7RT{{|rF6+!?2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$2.class new file mode 100644 index 0000000000000000000000000000000000000000..76d959df79d2725d1afb539e129e2c187379e4bd GIT binary patch literal 3917 zcmb_fU2_v<6n@?`Wof$DQUO~81ufX`VEHPfe3VcikOpXD6-0Eq*|uAf-LSg_ieGm+ zI)06J+<C<{I%64h#_6?x!++tZ<MZxrlaOw0RN85G^S=9@^PK0L^X$p5fBp0efMI;3 zASRHpow=mxny#l=$=RYdV|z*Co}n*#rfqT2GfG;yY+7?kqhNZr<6p{}<GINxxjW9) zEBx3!tROCMNSZVBqFHv0<eV`ZJZ=|F-89_fc}FYHo4Qua*@fVw+*uOX<jtFI_W{Dm zJ|jFS8XYw)(>p1U?RjQad#45BX`*j|K&y&oY)YUBTU01`PN1nrKG2pmEhD#BnlYTb zHd8bNI<hvSp4J>wehwGoGH8KI&k9`kFoWJTXLxDbvJ71&Fm0F0MZ+_AEooLkU^<|p zHbahad(m*2&$MGOq1D5a!A7dr2UvSV56tmMaFa@42RaqJAaJ0*05&qOq6<3(+KD@7 z+`T-rK;-$QGD+Lk)0<t;?r6!P#_|hxQVMpFvWAPK#8efNE{oXmOg))*G|M#uW-L}N zDM~PrFR6GLdju4MxL~^;X{7J^NLEWd)rwcpt>9IG&h?&Au}?;|nFc2$1O=}N9E^fZ z6k%%xSY>NWo9?1k^bfXTKYCU4p+DegDh$Qn6xdsb(<rg!blWkK;}yaN1x`eHj_mRP zM1?TF$6GOgq>2N0T|i|-{$h}$@z8%m3KC^onn|_bAPy@yBrx{BfJ$R3j^HR$naO4H znX#-uy7B&67oe=~V=9h=9o7~w;IPfYrs}Rsg4De=Eu!FrfYxw$mGcEtn{%{Ma;#8@ zsNQO~hG-HP#VHl1F(%OB8eU#=h*w}FS_3zzzEtn@W~2q4%h|Qckia<3D>%oJtZz^i z7m%U$QaiLF)opvv+8*w`uHcfu=_oR)fT|QS^r!t-V!en{Om!$R0>f*1b|dv+KI5LR zHXUnm3M4Fc<0^%RBMYetIH;bw{-uK^y+q~JBTq;6;D60MeVvK)QpLD2sWh^M4X)ps z(8}S9Y9}kGrqIIIgkSu!bFZnmE?choTqZY`mEw3q#XC|@TX>Mefnj+H-WAA2B|MUW z=vm`z&<d+MoWM;f!!wM!VZ%X=?)dr|3^1Wl+2I8hhE#2-ag}$Gf;oX>Q4XrC23D&S z)#$hEM^jD*3j&X$doYrLb%CZf$Z&KOHgqU507`)5rl_I>i|R*BVR_W3-@dgYMWukl zMx_l(f@?22I^XL`C}{#$B4I`H(NIOOcDtCnNxlL7324gq7=jSEycTIiA1Y@i8=rav z`uzZEN2B!()?o`&rGhOHU_EF0<D&nDU9IyWsj*~!+|rA-%Tav7@aFA;g8KsJqYCq1 z5V-0?#RqbJ?a=+^_E*E9o$ZhznNGT>xvt@259g&Oet{6}?Q;6%T{Hg_Z033k??w>g zFOcZ#|B?S5L;aqgVrY|V{tlG_3uxzOm1pGYR&?+h$Me`0SP?CJQreyGU&i){fsPj+ zVx(^wyPsgMzzX)~2A`lu-VHp#kiZWZeu!rAh)<8KVDxyrD?Yf4lU;GSvc2QXGR{80 z?qK&~Zm`zUGO~k@#3TA@@-ZI47T%ZX{We<Rpc5{~9}h#ggQK{M6S&8>>k_iKk38N- zfy~X~V?UmgJ|FX8JVcKP<QP#ibX>+2#?*-(T*V}P9VJ^+v=HZC2k+kC+B7}4q3KTy zDHvC<|95QN#|PeAr3Jsyl%(Z`9~Mc;*M>4dGM*ykEuWO&k+&sVH*-H@^ctyoZw1-_ zjp!?weT@0z@&2y(GH#Ku8Y=pj8sHNG{gevu8Hdo%NyQg9hOZdTmki`<V*7^b|E(YX zp#WPY{2O8TJ8%{@gO2g!UQ&CTp<b<oFN1DH><<k15f3t8hnxr1bc9z~O)(!<P(_=# w20ZXx?g(}(E@O1*aX*g525fxyk2ac^aap-{nQ>X2OU(9%yp!J;Bm(~Y4TkcSrT_o{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8396dbbb06bcdc600d3c58e67b9946d6070da923 GIT binary patch literal 2451 zcmb_eZC4vb6n+Lmw}g$2h}dFVL8FEMU4){wY3oY}EtaI%K(yAEGi)YdIGf!#yD9De z@%Y8J_Jir6p5y6ff0V~Ny9)#wv^|oX?9SY|bMJHK-sevK`uoYB0Os(Wfj)+1Pc<y* zOF!VQRd@J?7g*xHu-k$3ToMMN$y+VyHY`z-fv3V(i>tu5Dtfg@(p8#f<_#nmX0$nB zJF?{qt0C%<y5~q+3g23kO4vcTMT;IVoCr3hpP3~bE5`&RPe!juR|eM@R<g%tb+XEk zD0nq72!<gO12~aHKT;+Pyu{F-)e5Ipq$|qp=7vyfe8Uk8!z-T6ohnyS&tqXi2hDKv zxWHxRDd>@g2=>pn;5D1vtud@dN6?)TCBAP9pAxvQemfH7Cqqcx%64SPw_=O=Bt~)C zz-tV-!?`}%u!%DmV@MIkf^ZyN0iI&WW)C{ts&iXd_oUbsiahRVlGC#|Z{Qq5rrYUJ z`X=7MIKxSDSLIHd@-RZ4w)j16Ih;!Q*2WgqVcx)-4C#GwB~Vo8NlYMP;%&UcU?|aY z2ou9-wovFc5$O^zio(Psa->Y|Zg_scaQ0AKnh3i@$q!)~7YxiWobHaLTgQa8i@!uA z=NNd8VZIkZ=pbWaHnpNvre{_9ZSKSy=NT%!Huj|WUb1VFHxzGLWJJ~<lzCIsijHUs zH;Bt%2(wr)@jgDF6QsB+)F#|O+M!p5i9-h<n$!twPYJ8IclIALEIv1~C^|p(Vs#@* zQZLJE8eU<z`vQdj7nAv}T8R@K@?X$#GfY22lA{Zsh&f12RXA(nK5ZR-)-c0Bh=gIG zXFvFl43h&RP8-8|PYeGu)w;L%o8ESztrQi2uH%?g){FI)swT?~6U+E4Y6Y4sOR~{c z#IN&*DyF9R_FT<cj@F4ZD<~T%F^qMS=Af2|TUd?ialKWe%c;a&-VoGiGQF)I&>}A1 z#+rc&!*~xL2XsxW>#m<_303!0Gg=GVMc7&yk`=G5Y_TN6OW?pwc|kWEx+{vV?RY*l zoRSDOy_$i$4A-BV5V{nPzKu<Mqwx*fO6=az@g2-yF1xN!1&8~-@G(v~>8Jk#ES=VO z8jbYKz)6x1(&!TU=nEusQ@_*WG0aCa>%%E63s<Os@dMH{H))TSzKmgdC-4eJVk<w= zY=C4RPj&EW2d_WHL}@ymOpkZ)77bF-AlJdWJD6g4irMlXn7cExgNu50Y5FlPUrwA! zJR}>D@39c;PZ+|_<mDHf!>`EUH(bTT5X;5LUyOx3)5<kMGlT_vM6*899>pj4l;XWg zzXBEsV**7i#h8oq){&<O*7Y6SWa!}Y!@=)R&`&~#qmlBS!xXBa!+v}bg8mYB=$*h< P_!{5RNRvSy7k&N#k`mEO literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..501d1785b2de5dfaba786471e2b639b84a8449e7 GIT binary patch literal 8973 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 Dq<|1# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPartFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/StateEditPartFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..ad3ab33c12d6fe1dae33b8d7ea1c6c8115ed9212 GIT binary patch literal 2604 zcmb_dT~ixX7=8``Hikef{cddu)&e2GwxvZO6f7Z>S_oJ$iXW{@IK-{VZf3LTpch^{ zUU|U{zrb6(fk9@}-gx0pavbY(b^{?KI5;|!?D=@Vp7%ZP$M1jr^fQ1v$Z2R2NZU?M zH%n&8H7tESZ>-v`E;nSh?3%X4OIH?*V$rm6x?D3|+wqp7;kYGzNl{b0UF31b$ddY% zhGv1+pBpa>J#SEGVfDGpx*A#qx|AiE&6~xN)N^uOKPD>BI&NB~J0TG0i)93wllGbn zA%M0pGz0}AbEYNJ<-)3TmW|cC6zH6@vqnB+IHo#RE}Pvi%#y(3-2dxZLZBn-$Rj=r z%=URk8hMqNJ068Z>}2K;1kQ$W4(A2V<fI=`+ezhRL0YcBP~X2&*M^I@tl^TtrIVr_ z#uZ!@2$rNf&p77=&Ns5bchIu7<;o4BxN@=s0^x#EbBMUJ9x$I&WsZh71*T5@IG$Sl zg;^>ac|Yf-O(W+R1r2Zg_x!EsI>^NkZlFy=ufS*{fK2vE9r&n{wq-HDSt=P1pBKqC z^dJ^SKjJI}zU2~2$a2lBM-=GptIY#hSZ7(-j?`0rwInnQ3OsIPzhPneP)Zdm`m$qK zB~xJ{Is)cKgD&vw)C%h=y@ATA=he^+snFe_hYc(#2YsMv+m#yb3QRU&Q>N=XjS^{O za9A09TR{J3O}^cl7aBoK!<fMRMv|wAve*1Hj0-$GwTim9)^yMi63U%PfqRWKo*0;F z{3n$B6w9>Qd7hM+c?Fr;$jYLh3DW`>tMnz;VQ-%*oB1{A1TiCUGig}8Zq)B|QB|+e zb=!%0F^o#TAB{yrNMcsC<wwW*hOaOY%c#cvIE*>Wv&paul6j-Vu6&l+Up4PtCPG-i z`x+M6;g6BRc!DK%Aj+qW0vrCh8u5y;AU<GgvC8?pg7sk-A7O>lgmX(;YXXBu``Q7% zBOq#GKrl&s62_;>ZqT)TVh9f~E6{#WWb=N<?5gR9^@U6cK5_QTd86pfCJn0s*VOAC zOpH1i4Mcoofco|YLQ8hp$;ug1jlIh?iBlQ9Ln?OY<{%01-@+NMRt`>nU*k#VD!8`v z?;`XgH%$oh+v;6L(9V6>XFvxcJP`-Z@T-KMk-M2|q<>%+o$0}WJzQwQ;5M&(H664D zT&22eRCV1`*YAr|)KM63kg705$k9c~Rw|G3F2Fr!pKnZjL-b19X8a|(x6rna8!NlG zxy@tG7UJ<=(X)p>f%$=#81U#rq~F@+@%9$R_A$)kJ;gravybfI9iM&FV^5HNzrs%K z6Fk1Vy^jYg`$(>Irgrf#{u|okJ9uvg=^xP2xx9nS4nE$+XTK0vzzf_{&R8JE2=~*U z0bIZkN2*T0hUn8R^x`&8!x+I`Oz@k+C>~)9X|4;b^$f=GloW|c6flLanRwq~8sBmK zo@ezSegroUBe?0sO;G=J%Bn|MINW_s{%L5DKhdSZ_yZk>n^(luq(Nvz9tfhqpN8Zs TM*HBl`S4almiLmnny~&i#suTm literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e1e773d027970493c33d5b3144d25474d98048cc GIT binary patch literal 2716 zcmcguTXP#V6#i6)Y~re|8}4Zdp`<i%+HT!KT5!3=Ng%DAxJfXNjIvf7m9=E{Lir8+ z0bckM%s@za0G@c@H!%!HyBpUe+hB$Xo>@yeIy#r{oTH=P|NQA^05{QcaEd{gpyR4g zg^|$ijxV-N<jSw47e~ryB1W<+dOf8(u57Ew1j*17K@_@MfzY9{d^MwKGo5JZ+1WA? zn#49!aWKMAdMLgWt}jT=`u0O&aWKj-@r1e&Yb~~Y$uJu2s&M88nN~kx+p47OuF@)c zkD)z#;@aj~3?ntumg8VJ!{K18hyu=WjHAR*n6(V&>PpMCxVtTbtrU-my77eH5`nVo zj5uOJV(?Dd=$Q(ER0v{S#EW>@!AlIEop4k*CUJo>rX!<GN<JMauR);s4C}LV!~5H{ zXWTH8ke960(|851I+$X(KeSK(ES6&$uQ5DN_Aeh4QoleL*8YPNN99#*Twdpx!DWUq z;dwGlYUkVkA)Rw$L1piDV?R<o(UI;-a-lTrx=Cw$DVTt4zJfUivkZ-)abMMu40ePk zn||C;x{t)By`mcF6~$4;JOd}>SClWatob@0ieU`>*XfpPR^JwK{2E*b*BL$?+VQp$ zzUhRnXS!XZ-M)r?N~NGK#>#KYfa3-#4AbGRd1N<^vM(j_7=Foz<sf7KcJ&`h`lCXt zxw&wRtiFiB_&otC1zvi->V?wn$eqM}q1&NbBOGXwB>pXqH}Mw3I7Pgr<Rcj{T*~Te z@bE!1N_nX6Z{uwTcNnH@7@p3_@eb(zJ7Y_kz+5t2p){R(ii&ifEPEI4JD{dAnI}Hw z;`jg`(sfUwGmi)f?{kK^9N{+hgU%<cRR=YON?sz_+?Mo5?K-W%K@~+TVwqzFA2B#G zi4k?(%V|0cVsTh&)%GVRqY}_b%#S@lwV1JI&fUt*lVi=b_$Q~S$dl&hV2u*|FtUe@ zWhic%IPj!RDu(h<kCp58JwicQ)}C)ddh|48v}@WNo7iGF+oK!E1l<k!MJ&UJ;o?!u zvb_W<zN)nhYQ6|V8B$ZAMoQl^V5O4n{qzVsMc+7zL_JNjJG8cxVtM`t@bZs1`(46w z-qMmCd%A%MT5~#Msn6m$8mZf$lu7x9I15C(UH%??4=+5%MRK3!`?$1^H}-M0KK~mo zq`NmCV}W50cYnoV<Ldk#maNJGtjbA@(*HV*O-vC2*RX*Kwy=O!V#0K)CNp7@dg;el sB_k?i<UQOcGwO7H4D1gqIAnH#WLcM+ctGO_^{owjLNn{Wb%uU_0mgx7-2eap literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart$2.class new file mode 100644 index 0000000000000000000000000000000000000000..18e2a19bee0a5fbe6fbf010940cdcf5bb7079ed8 GIT binary patch literal 2067 zcmcgt>rN9v6#fP(Tk0aUB8s4>6lu$4xrnzSN)XXlh*8pnUuL=;%HVdl?re=dgYV!o zXrf>wG5+?UjAynjRtkha*rdBNXU}cUIo~(Get-V~U>XYs+8DU!mn^BI3b<=+IK1Em zmUt)ZY9KwAgn=mYN=3RQOB7|``QfX={Xki3K6jPWdW)V*A8QL&*m|`@g6E``oHh_) zn9^Z{?Z}D}R!MBs+<1<(rBD{xH=Akkdxnl+Q>x@7<(NC+B(oH3PP#IfXDFslJX$)> z5Lxt!q7w|KO`JkU4DIMLVc-lydrB*G=cFrEtL1|5*LcAZ42hg)b0^PzsrPkZL>Gy{ zKIx>B(^RB*Nd%9CBLcDLmCM{MGCZr5tGTtlcvBUM24vays+AYDT{azN*sN#QeCYOv z&ayEoN3V$sxX55os3)EZ7zR?Urj6;!8o0zTbKr1=GrCYvfzRz=+2@r_N#$!;8W><m z?Kf;rsp3`LVm-AO`q33b9|lca#WjW=N^gz(^!z)!)P@A*y2amei{Rr}IYJd3Y6!yy zk_@j-c#2Kjzz9SCze(-u*Ia6Ug00m(tO|6NexyxgFiKO(i`4$%*7i4B>lw+W^9IHV zSjRs8o`<63C7+kA+8K`Io4rO2!7?$4DTXMwZJ|_>mLLBEs1HOSv0$Az%Y=8QiRtoE zRk^dGrBv53%xLuAWSBoV)#EwR#9`F&$1u_Yxr3p}z-)%u7H!S=HL5=pMnnqHM!Og? zEiM}0G{&0&MRu{5Ue&k7W2w0<b7XTHpq<dzB5GW6ZO2n|DXoZL(<_>Ipm{T4`-1MP zP`Q4yFqlv2YVj8xu9Q%OT^d}v{a8G%S(jFA^fwSCc_*#z&|XVonbEKG*n#;u)all; z@Czfm4a8}0l8u(0MS|WDoI_9D%Lm#;NH&w%#`&M<TiHeb`VKCyj%U6gHnxo`+qk}s z)c7vO*0tyxCU!8bC7;Nw4LV#e1p*|cwngDyV-OCeP!2<9YVPZyDG+9Hi-Jcnire8K g;>0?4agPq$j%?_24)^IDA^AKW(n^!9J^=mx0JjZ;Z2$lO literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/editparts/TransitionConditionConnectionEditPart.class new file mode 100644 index 0000000000000000000000000000000000000000..a970f5711e9afdeb80f77a3d59fb0873908f2e21 GIT binary patch literal 6126 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure$CompartmentFigureBorder.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure$CompartmentFigureBorder.class new file mode 100644 index 0000000000000000000000000000000000000000..be191d305b5f47024a7c2b8303a99d7777402ce7 GIT binary patch literal 1779 zcmb_c3s2Kf7(JJb6-t%C1eAvg4%v7W5ue2u3+R%?5F{kVnAmNXa?RE@ZHM}=)I>0v z_yhb=#_z6Wl3A9JtV{0t-G29+bHCT`KR<o}Sj7_sJq&Lg&(ei2{J^yJ{hC>J0-b;4 zl|~>On>GVpH(giQmd>jpa6ElqSPhT+`sN|GgRQ2KEjV@8^n!Y8XT$NT+*6Qbn3e>* zQWLJv^{QunSgq>M%6{OPl^}FuNCgMN&#o|RmbxIvAi#BDi{LTCi(FR_^Lq@*f>Y)F zU>MNQi<F84E@)72ks*<j4ud6O^Ouc!nR~ltxyBiWOHReC?U|mCcC?w4mt}a{4Pj?R zo<h)X@t|n?JRq)(FbZv1D2CZH@=YaeA1&_GdEkB0LkvT~D8o!lF54VcjNq~i%M}JC zSENUVCKXl<!(<%Si4cZf*A#ZZ@UElaIE?3>=^luRZ^V6U(`e-PRLbKu4c9TvFhr5s zmb^Q>LS10V%!zXg_>ZHbkQSAp;s$0FWEo~VMYnZ8!%fUFs3dyVaZ7xk!Zn-goWpI0 zZfD5a&1;y)0z)75wJR|h=FTB>NyD;a9|+lZgmn<8Si!1-TMQF17dXj_hTB*pUO53| zpD+|-L);2usJWxI&_&i)pB1H_VJhy(i3&LyMAQ`7IL8)!RQ43;S5CvL@GT+BB7JJ= zEx$JpO$M!K+uSSEOyB3ef=3L6F3d27u``A$rYVgHn&2#*mUD>S611bBkJf&&*3d&g zK%HOsM$0j@FJ$##kk%CWfI2iytJZv1F@#~V7&5pNAv`5NiJ<+&$m=9M#~Axe_Gyf< zCdO#!7hy=uaZC^jH9DpuG>h~l>2zjsVd*=r9%1Gyaz|J^g8om~aMNX+E-*nt$4Sy; olVCnP+9JqA1O$gWxZ9-9;2!Q1Ne>=0MLvW<|FXjw*6|qZFF=C&BLDyZ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/EventFigure.class new file mode 100644 index 0000000000000000000000000000000000000000..c7d372e04a4f50527168e34a58e8905349459dda GIT binary patch literal 1008 zcmb_bT~8B16g|@xO4kM2qD7@*i=h1wHsKXwq76in;tQk+`ZV1g%9!m;Gdo3m@JIPl z5=s04{wTwpt`CybCw$mDduPwwIrrSNzkdJt31AmN9vOy?HiJMWGO=6*=P~bV8;C0r zj;+*+Hmw-)(MYO6AR=kC3C`tUY(x?qTnc3mr%4_;h9|C&2xB=)L=YMNWj6}a&kXbX zQc3%UA=_y77;+sQ2@hEme9U1!j|U938OKkxj{Dqn`By!*9y}CWSn{!qB10(=_E;)y z-o|pEhQx*{H;$S;2P*qm!9#`>0-abRY<Q7kuVmt2A5&Px$EvI4IoODY)TamP#m7^u zF%)S#z5SRgJ`jdstI?go^bTmR*~{Y@!>9is?Pf<0N8DJ~UaIChZ6aYjRPo%YS7Uge zQo835iM4Be!^aD3G8Cxw^eTq+nLVdp=@`RuS1R#gJnRc|%KNckD0g+p;~qEC<$pGF z_QI)uFjerrbjelm)ELBh)=2J{XOBjFqQ@o_htkn2{^j1C&-{`z_(w_!(}{VK2qL-q z58+WKk+SpyfmY`1OEFK`H{_6^b-Q(qg&TNh*YLaT+ysm5>;$Fu+yswW?Fk;YZcsfV z(E0@R?{px8Es7ghpy*SPMT$!(k;yA4VvXKvDC0Hx`6VGL=_PoD#uQ&i6D^{UL7Van O;kIdYldRIS19l6;{1rL? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/FinalStateFigure.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/FinalStateFigure.class new file mode 100644 index 0000000000000000000000000000000000000000..2519131d5b97bdffb5efdb26b3e07373d5f368af GIT binary patch literal 3156 zcmbVO30D(W7`+dHK>9?$9Tz~WLV}4}w;JjK2x0?TLa}ybNFHG%$<WC}z;3p-wVQU| z_x^&`O7PTk`UCo-dV1eX2$0}%dU8%?-uJ%se)oHC{`vQ>zX2S;Z$4BAoU!a=*vy() z$H;`oQ^uI(gw>3S=N!|@Q0S<%F*Rjol3|rF9m@`no5`H5vf*AcW29nQq1To8P$|&; zf4wbnBv3bKq*ad^H*%?7E8_?>N3~xSPnlC$70ymO;iPR$O_*_}L4^oS#*66;s~MU! zMlTtcjd03f<}t@+0o1DLq>GH{92Z#C);=Oo*=;41532>X-8X_CYtZ0BJyR*wn>G_k z<z&M>W_BuN%t|z3t$?4h?woBao&L_Y_Ob#>%px^dFW?(dcEZRQen@PT*o4gj)t!Zm zkG7RLDWcG$E}L-`DX+P|zkQ?@0$U`iP%W?~YG%}6E<L8~VPh<%G*DLDNR1e_sn-SJ z$@|0_>g$T!I}^Rjn0~B6i>_dM4R#3h6SYu*Wg(Acp(4u)1Pgft3l#_!DkT^<$T&Y9 z#cm&V2^`a%cqrzkRW@rR$=QLzi^LwZ3DmMl9ybJbx0Qp}UM|vD1|)o_A$gn$Gb?b` z1>>O-dB6yfp%r7@0^9EoFSW+0RgsDbh<<^Fta28?^60;QrE=I6fkP69;V0K@HD#EZ zp8mzz5s+5S;f$!*gfT^Sv@9n=!ZxN4B*J}#>5F)cjz}EE<F$AKCw$;+?OHk`1(T$* z(#o-C!$T_0qb8YB5+`wrO^Edm_C-$*pBog|v#juYT1Ipo-4Z=G?KQE>%4HI4MSIDh z-P?mswol>=_7lSy-PN-aPwG{zuKt3Va3-|QfW)AyGpkqUC7#l&Do(GrACnl?lIjU% zCMO*2Xhh-yo}nmi*%@U&sHz?_tuk32wvk#qi}OA__W%Hk23kMn$BP*C;U$jv3aBqM zO2WVxXI%p_q`@k7L7-#B7MJ%cqR$c?E+L^XP6ly&yz{xW1o!e2TH8%Xn7Bkc%~$ta z-?2P&xtSL*C6Pvk$G1-3<M+lD_^tD!(!!z0GkqmGEkMFy6D&foK|U*$@DlRJQ&y4t zTT7}cu*sbamx9w0Gngf;1ft7`PbO^*ZMT)O=yXSk^|Inz9r}0$ulevQCw^(~$~7fk z#~Wl6<M4ddQ(1nYER-GAC$JunHznR$$gbD2)spP=_S+Kg;9U+po$5;==FIBrfcIj* z-fq!UeqZ7Pe8`!|@IsCnV=5)kv=XT99;4pC$3EN?*tE2s0&cF3#3%UFqmI|ebu6Xq zrq&63F7X8(^Vp(Qwd^a2ukj6Ud*(dAYcZWm$IL6t`ay$VoEaCH?<Bs*51wn!KCqmK zg^Y_cuxPFcDe#lz_Y-rga_PboG-l=OI6s6mg6kL0V(-f+r0YW~?N;%_s{&2>D&`v# zKn<T&{I7-f`v_M@+&y6JUC4`fP}jJw-d8n`4S%BP57&Gv|NV3W)bU$GVw)?~?s(f4 zoEWI&4`>JkJGRZEInda82RrA`zUZRP&8CSt)bqE+brbN65JU%!X^y=J(WQP1^GyeB zz&`A!t<Vq@!u4`T@A(5k#t7tbury9Ht88JFt!|tRo^~;gpH<h;SEas3JfEVT7FG0l zGZ37|v0LaIpx>^+j=i_hTRj@MjsB|C=p1^rAi6{l)q-<+KT%(us7}n`oR$nNNaipU z?BL?*+qmdGp3mcjU>@;fmBCwR$|D)1yj{nsuNl?eYew^!3~sLE)?!_Uv6|VnGsht7 z>R>bWqL~=&BT`-bA0kSM2u<Q3Y#hRMUb{C~r*79lud-tOH(_Clb=PtvU&bk-Q-`ax zIz^l(u@hNxqLTX#avnOkMh_bCBX=P#5}3<*T;b!Y_qaBX>rq|BdwG16$7exqeVNC% zZee-+82p{470^uDP67ZCQm+#m_-x`ew+qKv%n2raa!I?66w+;?>}M9tvlG9#et!KA DKtMuq literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/InitialStateFigure.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/InitialStateFigure.class new file mode 100644 index 0000000000000000000000000000000000000000..3d49d591507b3ddc079faa4286e6ed8c86b0198e GIT binary patch literal 3011 zcmb_e`BxKH6#gCr2I3SEH{5VnLNH?$mlCxK2*n0$3B}r#A$f$+Nrp})0(P->v3Aq$ z?Vr(F4L$Xo{sH}?diuSY5JQ6K>FE#2%)9U2`|fv_@6F%;{P`DvBltx_oxlah%@|hR z%6n$cn6}L+$1~)-OcgxK$x-OZtT{Vt<uZm$Tb|<@(^jV7%Dge0vpmbRlS*aKmuUzI z^#50X6^;a2M$N1okke+t9&~b^z|Ms7D^s>Lo0mp@&NDKuIXh#e@`h4~3pAbLCSy7y zP~RDu5D4`<X{lk2z>ZaI!*~X3HMH=MYP~rtosnMN7_joQwz;6A73&1Tl=T-}SE|7F zc1CJKt1^o>VZDGhA>Fi@Gs6gDqmE73EYNtW6!FQ<8Yg9Z1M-@clJUe9^O|YcCM%Kj zToxogJRF&5hQJmb4QLcto3L_nw2+;W?zlN+OM$k8lQQiI)3wyPBs{yySz|+e@yAD^ zc6nwP_2^Itwlm4zjFlHi_(uOv8?lykQ~d%Rs|P}@X=>HkNdYk|pgRSR4Iq;<<}9J_ zT8=X9nsZ0e#!#tg;sJ_?jsrN@j3^Fi=oZ*t*#ISzjC8Wna~F&;nc|FOY^fs#L!dc1 zJUWy(KYnpk;NY@YA8Q#8vs};W9KNHpXB+i7g<P8Xi&S;d<2|TgkLfs${e(TQ%70SF zb86MB&|k9B-i*?T>p11>EU48P9nY&(16woLKc}NlNg8LQm6`FBqX8Y~F-TF$adXmr z5~=|!D|30WM7$X<;EV<qVbuhd4V3=5FcKKmFe0#Rg{&_XO2<XK#70&L8B@tBS3#hA z#S+)n%O4bV+?b9e#yN`2d_XI^tMXn;EXr;|$0fW<yZn;fp5;f^nnfm>@S4B~p~XsL z5ewKgR%X`{vBm;ojg^QsR!gigvP6np8^#-WOT(K2y((o-HEvm%&zl+Y^+@SO$J>|; zx-Z}nfdiej<PxbBsZ>nqNFhzORRtNB^JKuyD_ARPqS6wFk%CtmkfkDX;>9$7Y&p%b z(?My%DcdPe^Y*GbmFB~rb$_U`I&yH>C~Bz8)YXiunx)^d9Xj1pWxcFiz7Bo7gS-YR zcT{#`t)>nS1<nZ1Ass57spbDA*oGoZHS%*h=9i)ybX-{xo!Y*x<6XQ*3ZqlS;Yn{n zu{W==VYS_%hVzDw4{?)q%kgGRm{Zag*t$|u{XL%gF+SDsi9mZLo>Ja?9UZsuSuhMi zAvX|8%_XDA{&O8);LD)@1J#Wy)Lc=jz}GtN;4W`)Vi{rIW((P*b)9IQL~&(yVC?ny zR>ybvJ~%S4?^-@`B_!o(e`KyYufcB~f%ATbo@!94K5r^MN7$a>q*HKH{LWEz*}TGp zs=Q%0@z?X)ij`3}GT%aIg2o@~#?=X52CRRG@Z~?Cx3#ru4U5?DJKBHab{);YuY)@N zx1bF=w)s-!ke6-A$vB;cC~xYDcJElkj%v$x9=OG~><aX-6T7HS3kJA{Uew!OzNvGX zun+qgbVyx<!3km=gKyy8-LB{&I`5%tq^pR-quqz@qo;AQ>po62*pm;?qXfMbf?g#! zt@hKcjp@ep1DsZpvrCc(I2-NeqW?aIg2#m-UW^v;a&IVl5A8*~5^ZB%URMXTHcl${ z+GG)CbW4bPkANQM7aItsfiRj0poI{262M_X=tC#Q5P{^acNN`maR|40Vc&t_C#5HV zR!+)YYEJvWZy`gSI(oZ_8NSuiejhB>EX4gQTm@B}qX(5b;~~UlX2vdJmXB+}V_^~R zC!&P+K@lGnaXZSbuZs94`YTO>3UBq>;3(Fhhjl&5svjeO;|%nKAL6FKeJRAP*oYtS MBM%q&$@lT|zwl!;JOBUy literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateBoxAnchor.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateBoxAnchor.class new file mode 100644 index 0000000000000000000000000000000000000000..750a3fceffc4015881b0826dd8b18d1f1092f17a GIT binary patch literal 778 zcmbtS-)j>=5dJ1jlX|(DnriFMs!+sKaG@_gL<+VLDg*^9ec#+oE-RPYu(xOHf2A*q zK8Vl$QR3X?3Jv&B@MY&_=KH>z`F4N*`SBCLK6ct@5Qf$z%H$^ZI#ZKWkF8gH&Qalw z&7|mgrss2$C5mI?ty2?|6pnLsQuYq*`Kv6NTGvLC@Tk<{C^hq(RqXWHeyonBc0Rs9 z5n3-zX8Zx6|8#U2o$y3Wbrz?hd|bstTV!!Q=${grM>ggFE4UV76#?PlGP(ZM>tQuo zMd^-A#&3$*nB99lPMOdf*+{3S+L<!1i%mZ@IpMgP<^Nq6$bt)h2v4rIpD+^k;$vw^ ze~DACm9U+$cc0Wdj^vV(lm`I_H$&XQ7GX{3Z_hGzgq?p2T=>$)ZNlzVT<>5TcSGDm zkI)tU%Qr#@PHf>K9-7kD&E<FS{Dc0e@mS_tkw*qJ<ZBfzIopyQNZydx+I#j5YhS8< zN6w(C27>G$lzeM}!aA-?CU|tQAsS8GK(E$%A(5oFzV{WIzp(uscL<-Q&=8T5QZ~Dl OT(|(%a)kR8>cL;om(2eF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateCellEditorLocator.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateCellEditorLocator.class new file mode 100644 index 0000000000000000000000000000000000000000..875081f29ee1457407003f449b82d813acd36095 GIT binary patch literal 1955 zcmb_dU31e`5Ixs%EL#yt8v4OU>ZXtw+lf&LP+Ck0U<iboK#3d5TV(mhRz|j5NhaZ6 zwKE|d`q1ffe@A~ur{_u@V;elvhiXQ;+STsevuF3N{`%+lKLD)brG|vSw&yoZCvbw$ z>X`ekRrf+u9!a|wI$np$P`0gZ*XcA(*>FP7H}{=p&zFI@qrO$7>pqC|RnNBgSwm7_ z{=j-=nXW~rr}YDAhZ<4>msBKayG}QdW>fB)q35}Q`Q8=+sW^r}t~&11vN{cy(H}+Y zJ+Iek1Z8^Maym|UTcD8tZ!U#hfn>#NNF7r+WgvrDfvJ39R|oMM_z1c{I*?)2s!La3 zuIhB;cCTHRe$A@8QeZ)4?Cx5=qvXCa8Md52;8_IX|6`RIrhVxuiWzw<$Af*#mgXx* z9!h_h&az78EY52<C$KzB<RlLRi}+kXZ_2RZbwb}`;urIU5k`Z<&^&Y+G-0gRsI1`& zfyLnn!&WtU6lTckmj*PXXK)cK8kWZ(sebrSZ4KmbiS#qxaLE-3qqrKrb-3POUwLgA z`mfFBY&$lfE6XZk!9WqK0;faY>I5!nta*3qf#>!Vp{3EL8Q-eb_fd6@NX?>T;4(~s z8QW`jxkt@++5*M=7OzoUiixIgbz6=d41vnv3a)Bc7q~Fa+xylAuHm|XIO4sfJZ~8I zCepmtaTB*Rut8Ra_Zd%Nz=nbEz+;jb@F1{C)T5XudY3Z{cgMh86?~d)5VjPYJ4$`u zzyqaDwWQN*vEo;7U+J%^#|<4>JT~w>stnF!6`x!IEvAg8QMWlu;u$l3@F(>vvrdNW zE`jXC9#!3^?0ohEXV8e<<UG~JQAw9a93~W#r<48JpA`AA#+=mI1f}nIJ>Qm_j+!Uu zKRi$`t654eIh}Y<^G>K^#0j3{dj@J=%~0B;KEYKl{syDCdV;xMDJ8JL=PZ4JQ}mdn z#~e;m`ZTu2$M}R2{i0pjVEpn~f6u>>Vno2_c4z)X_DS&=OK)+3e+~6kdW(DlYg4>V zuy!+9I-5MkSL*Tg3BG+%dU=cuCEeS5gAFBBl(b2yvQ|3A!}+;AE|216V?NuURN-=h zt#{aSL=0w;Ch7&ET_oNdF<vLi3eMmMj<}z3F3RazjCPQdk0;n>E@>R#DV{}a?9t;n z`N*M)9n{E45<g<MpRvhRFy6Gv?-#zr1g0Y8QWV694f;Wn>Q6z9D#2}9s}iJ&t8cLM ZE(JZ(E)(3!5cR16%+!GT7g5BY{sj@9^4kCa literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bb85083394a343edff1a3e283a4f25bf879edd9b GIT binary patch literal 1391 zcmb_cTTc@~6#k~IEYwvh3SJS!f^AWj;x(x;22w6bAp{H$yiIq9?U?OMvpWm=vrH6? z5B>mul<`c9Mxex(ZnBqi&YthwzB506eg6Sq2`?OE80tC>J(<YFaOE9Dys3>RJ_tWG zQY%s#(dM0wRG}vVX>{xz$S{pX;_X`7YF8*$9po5hEtK#h*-3;K#QbO}@HTathz6kx zCF0_)Nt+BqrX`c&BE@bDAb5=cUrQy;8;14LKoHA&47n8@h!HScc5w+qd1P_Lg@daM z*^>QXv>}z)O505lzvInFFpM>{&!asaODmr!bGBH9wLv6StWvRV+qQI@Mv#brVWwAd zzqZ#8g)+7BULF&;<=`g6$^iQ9;x_J3`JpiDTm_L>)~O1p#B!<JE%Hn%q0nt%;*Z{r z@QGt#Bx-rw!+i&n43ig8rklHqDNNG@D3oojWhAleKVi1Dq^k3nLD9j({;WKolZ#o* zF%0`!87>u-GuOAVe?5C)%KNstB^PB>$ea5<jm1)XV=zqIw@k~liCk0tdfVNu-k2Hk zyE=`1T1m^r!awV|@SY!Xnpj==kxpopH-%~Gz_Pi@@b+|_$&vBGn0H#zPrRMA<=UyZ z=d2qxL3cyZcCSR7D495T#xQ-+T>l&ev|#oyz%*@GmX0G<DA+ZluMFJ|hDkp{U$02E zntWyc3q8KV{nY(u)atqxMt)TkNOsA`YOi68-VE1q;{;`kVpx=k%4Y(h`xxW%$GCfp z2jB4MEaFRyQ(TKU(epY%wDLS26J{1q$eO_dJbLFyzeoovC~k&qPw|{`x4F>u8xXjQ AR{#J2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/figures/StateFigure.class new file mode 100644 index 0000000000000000000000000000000000000000..bc16186afdf032b557c4d634bef103a4cc4b5f1c GIT binary patch literal 6599 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateDiagramProperty.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateDiagramProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..98abc408dd004d8b6862083455fcf55f67b822f8 GIT binary patch literal 5235 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateProperty.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/editor/properties/StateProperty.class new file mode 100644 index 0000000000000000000000000000000000000000..80d1e48002dd5111291a3a80c1a34da4c436a066 GIT binary patch literal 2444 zcmb7F?^hE?6ulFEYzT{{0m0DHYO6>9vkDbkgR}@(u?gCOv1nVn*^G2;lFixOp#DSs zY}<3B)N^|Jxqnno@9b_ufUR0Surr%^@80{~o4bGi^T(e6=1|p;5V+;IJBIDqo^Ljc z$2GI!_=bEYt(I>)4Ziec-E21P#*QJYw(qz`({-BC^=;`Ho9gGg;r_XXUV){!Y>bNu zF56zqthJ*zotA4!0d0Nt(Z+IVO(0WzV(ywo%_Q`u?~*}5U}z;E)$q$^ttFEf5a<n$ z52!~Jnq0JMcEk3U1bU`&Wu94asyuyCphSZCNNzrqn~#;759Q_$<mL~_%{R=tOyM02 zYsd&(ixVDO#=7)8bBEO{MGGAxI3+N!BmGdPz~t0%@wwx#1|Tq|BZYo}lSR8BH(K?I zbhpe(jit;K9m}khP1jcY=w<(6RG5cT#W>0by{fZhH6!d&Nv#V(fMjW#o;0ei`E;&o z>`13BefPPsYS(4M<IEIt<rI1_p<^8Hvh@CswkL2q7A>|wZ<sSqL0`a4;Bsuz*GUl2 z>vp5VRp7!~iV_%Qe^yM-m(@*PiH2`mK~)5nr*g48V#S43^`Z>n4JxGA#|t{9kP{f` zz;u;fVE#WqUMF@CGq|W>R>1h5t=5r;A&^!hd06b(h(~)2Wc{%rEytC{+MUW1Y54^W zmj$lJ0lsxX1hSSZyS!ypdX{T9X+IpL;plSEp=w5v#uZK66`iIwui>h|f`V^TY}v-H zEuVVb&b1|<`EBbtNS?w1K2>vjjs57pf|0c2H!xQo#3Gh7To*VI_*I9Mj?eHp4alrk z1y03e%RLYntad9)hX9=v9Cg)#HqpTIj+jHltlJzqeYnZ+qaLb8?Us&nI6sI>xUJ($ z6zRG|*`S|s{Mg^4F`UmeY^b{2Iie);<?zOTrDFxF0tuUfyWKk?ME9nHT0fP{W@JWb z@0hqZl)WvN7V`}rXxKg^G5l4>L!~L{J0U$K^gA8jEA|=@l~CnSKj^pzejNIC)we_- z6@G(m+JSi<HhWbPoMr8L_~}fr5`F0BP78KP?&-l?_alix==^1fyNi6Pzk$q&-;w?e zqrY&Iz-j(Z@d>1PTt_x|3m&FnMxpBjQc&9T%<LZCI~sVJNZBCpOn40M;{zUN0L}zF z)#^ihM3{tXc9ixipNiAa^h-?cV_M)ZTzbJ5AuA;bOr#ho5j+?r7V2v8jgobb;uZVs z^voVUo_U3Z?M(7ljPBu+eH0S7f57%c!0sFa&Qtbeka#o<?l8_`88?_(sOgCyDvVPQ z6Em6Q&lq`ywe9IWe6f#pfjyL7DCE0}cTZ5w5N3`=na3Eebiqt?U?%W2Hkp1ah!SI5 zvilKUorzSr#{;~y!kT@F`}_DdfuIAAl%^0YgI=ze33da+<eVjIRj{xV;~l{92#{G} Q5<1a_9wumo0SQ?D0?9mnlK=n! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/add.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/add.gif new file mode 100755 index 0000000000000000000000000000000000000000..56c64ac2cb06d9aebfd1e09fcf96d29a79734198 GIT binary patch literal 1000 zcmeH`Yfn-E0EQ1t6PY24a!gA}vj|w3Q`ATUTLQW^ZKYPuk=0t+2eJCnY^jmDC5pG! z9OIT?k#aO3K=E+6oO8GwIEZfQnr)V?xi+_I>+-Gq6MgD^e!#Om+bfn<m6lzl19adg z0Bn8#va$VfX=`ou)4S;BMCe1Dc%ML4utXxUlvwhuAdB(EI1wiZ0$vUfF@lK2A_N}A zV^KUBiA3<fgd?F)C>RW)DC!P-=W&M<_h2X%M1vTDIU+7E=0_0}#(WS4TcQph;>QA5 z013E)kTEvv5BS|E<VHN&#b*x0rNb?Hd>ZmXcE8h#%y?jEA_&g<ZR3%bkOu+-AhZCz z@!4m578~qvEx5)o?I>oL@|cIi14CiuFs8LTZ3C!Ug=kIllP34%fLHy(IWYpMdpsjg zygfRbPGi$O@(i}a-R9TkixGZ9NYH?sJs0A%xaGYT#h7vUw*Bs{xA&zOrv~AVnpB-r z-6O^!g}L*Jvvts@yk@&sf$$!_>Nthw)w_h%P~pwlh6<P~u{T}<o14JeqB(Y%wYp&L z$l-ZbIVj;;`HhAf#nS>FSaRHQGT)ld0XZCyC)PJ**>VcCqAU$J)v%YUVdf}{sj56c zwQqfW9r(Y0QsCh4BvJ~{3-ESqJD&h32#}t-UoxZfo}pwG3ESFakJH#yDvF%s6H&QE zqkVM&DI+6;%5U_Fl4+zQlWOZ*3)xFMDr1SrEMZ1TyK|G-2P>4U^Ek7#Ry=q>P?t@) z9&eF$k!ZO=nPD@eEyzwf_Ix9yk4!(^Ptl7Mv~dQR@r!kVP1hVMw{(;-Ci`o;nA^<E zWihsk+nj*)l`2xYu=_`vye|1^=80Ttz4L1iq2{-)-dU5kRqkeAMmzO;TpRk7><URi K^npwW2>t-`b4sxQ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_general.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_general.gif new file mode 100755 index 0000000000000000000000000000000000000000..1da17077cca00824807354360f7e014af1f3b2da GIT binary patch literal 961 zcmeIxv1=1i90%}cu<3QMgtpQU3MF;A62uz{o`p&yHu0u<OC&g?oI~WMaFW5dXt+`e zKc(o6H`tPh%Pq=*sF@0{h;SH`htq?)ybOg$K)CVe<?qlhAHIC&AN*?fc5a$`1yUd> zAyt!DCUI=yPHAqFcus*jMd}uPuMD0BUIDx!Ot%g+V*oXQR)JbTZSXTq@E!2ofEpo~ zVHggA>L8?1U`3%7hju)$<2W7;n!_mLG0<30WTDPNlSK}T9mZG^yL{;JgmcaWqavX) zF3Z@Ei7&aYI4A*1sZ<2W%gA-)267XHfg<ZF3JZmeqKU#mnQ>8iC@D%GC7=vZ0jdC1 zHU_97R57Lzrdba$Wtb+Ia!dtcMj|TwpMT>56_RE83q*TMK5Hw#W_GUhw7Jq3`&zBq ztMng^jM4dNX-VJOYj;}nFuT$w$J>_<OS3apXL7oqTh?2zc3b@e4X!`^Q$OB5d%bph zV|;Ob^6lm7X8Ya8_mi)Si}lA#di&(yaK7=W{`3BuGgzqPyW@#{_r+SN{r#wSqc*pE sEBXD1j`Sa;C#&7gv&NkV!`w!H+{)!!&)2&byGIRm^~3r?{xaG83vR0082|tP literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_method.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/condition_method.gif new file mode 100755 index 0000000000000000000000000000000000000000..bdef5b4582fa1918fcb5b450a478e5c97d5e3b0e GIT binary patch literal 966 zcmeIxPixdb7{~E+s}Rcy(TW7A=(@{dP{dqhqh2~)+$IGN!Hc=LHNDMA#)Bo7?lM%w zfvsgds6kK~C`iD6ITpmiw1~7GWUQA#JU9qqJQQ*f9^=ap{PN*>0Y7*;?xmJ9YiNd6 zXqtm{2OEg!h!`l+QDk@}YWU0yGA&rs!l4}|CiXQPXgGFojBsM(tcEk2#2!g}!p%rn zH1jF<=oX^VqS9eRXT)H{WTeK3#iEkUB8NqYMIMWMMoR&sA)}aapYebR#FR6XUR)-^ zSb4GX6M++n6BQ<TkSda@D9uS$rbw1YSx(nP#+lBCCXX#1J6xn(WI}LJq*6+i)l_EZ zAVAbWSRiZ=4oDkhc@antqz^Ix8G<TdPy|#2ih^R0mxhqXkSCC*P?Rz#)}Y`}Y(XIa zB!B|Q;eY?^0;jdIzrUdA&$Q3_#Aeey*w^<pt^Ue1qVBEO?bD5^-u~?cXZ_yh`mve0 z-KEL)Vztp;GCuZ_4ZShG{o5S*Ha4icS1!(@xyj|d)tiTI{A#>gHm4u9=U>t%m5H&P z)|;oVM<1P-dA#Srhf#OXsG=X$*%#g0C+o)9)i2%N<$->u`@ORG^Zu#MnZqNm4!r+# iw=%Wc8vlB{d#-+dRljaN-)SB_a;<%JrSo<{yYL4s*T4z@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/delete.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/delete.gif new file mode 100755 index 0000000000000000000000000000000000000000..66c412555ed3c3fd5950c0385084191d719b3f7c GIT binary patch literal 1000 zcmeH`+e=e%0LOoGQ@4fgw8=KRjMN%~MD}1eB$*LYg91yWs0R(B`DTc?B&AsncTwk! zJ;cVe!Dwmd&~|ao?YP_7+0M=;YBD!9r({8BVP5K?`A78Dhc92gZ(sPrx4cq#^;#VS zAg~X>;nC54GPxIv?PA#c!a{U@J{paNBM}V8!zpk)6b@tIa1g^#3=4)rXi6v=2nGWv z>PJxoK|BcJ_xs&`zsKiu`+VLMsgQEFd&6#rJs$Vm9O80$VHkBf9WXo#!*Q!M=x{h( zuE_K>GBe|JI0AM%Zn4-MjwQ1>U^aiW*_KQuWNK>b!w2u=<jUAs(r82`CVVDS!eEFR z49Ss^Wxak?tKHCOMvcaVTD?9rv^F?s(`c+(ZCI@i4-CY6dqaJFm`a7HRCrI%vRoci zDicyEBA5H*@}<ts)s7BCDm8X@k1Cb#6^gi6oM>*gx3{k}HCfx*EMoCgOG{iNiikwP zhKAXi8nmh^R#_Po3PYu(UV#8jIiJ7E<u3AgiGl(jm%Gbi{b4Y^vDpVXIlt-jFD%v` zoxaXw+BlpTgOP-wuQZy6#oDCN79q$_r@Lvi9U}1;0NW(edV2ack@y{eO#ti!LOdP^ z|M~X|<Q<X-nV<_49#<WI0+2o6B;`!SxUTGG2Kzj}v9Y!zi&LS4sw6HKIj?%<ps$|V z&ty=!WWw7Fi1)zslENUSm1P$-k|04RD$9N19%qYcU(@o5;Kdr@Gji&(kV&o{hh@1} zO2~TEV;`<7Vv;yI$ri3HxKLjxyVr%YveHg`vivNU$#}PU<acwKidPbr_n_`>C-x@q zdQwlh0ZFniwf)GU7C*gn`r=vYEq_@??>Rv$cK`Xa9fBhNq5To1e|XrL&g2*KL#?#} GQ1TbZVoXf{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_add.png b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_add.png new file mode 100755 index 0000000000000000000000000000000000000000..9e4977409ab0f41b3dfa43ac6c35e28a8ca5d949 GIT binary patch literal 906 zcmV;519kj~P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv00000 z008+zyMF)x010qNS#tmY3labT3lag+-G2N4000Sga6xAP000mG000mGT*j@#0008v zNkl<ZILoDzy-O=;6vm&K%s7*%;~Es*NuotWh{lK_vmi@?3KoK$#ah^}wRryk1)H_9 zQLwcz;2*F=u-L5P9S8<NLNo*<*%*BXLB{!h$-BjJuiVRa_o)tt^YI)wKi~(&eV^Fb z*+HpPlCs%sd~k43<v0$6kk<M6d2?=V&fDGH{ia^{5-cw-qfjVts;X+5rfr79;T+HN z1B@|@jEor5)6>Ozy?zMbv!-bsUDrPxEG{nM;^KlkJw06;9v=Qf6va_WDS{w?<2bNw z8-gGp8jUvE?e?ej_4WMB%nZA^x%qFv{rx?P#o{l?WHK*`;;83&@O>YtR0@<*TwY${ z?d=VsC}M1EtWl{{ep^^rxJswf;8#{wFh4)v6^q4w=XrkAwr!ZE3D<R@C<=Oddf+$? z9LE761P>1n2~|}$r>3T)TrLM;ZEX!pOG|NCmb0$w!uNexmW9{XS3EyI!*yM>+im#1 z502x|Xf)8<+xzR*)>cB2q?(XUr%|m|e+Dq{{{D`Mi3!NE48t&BSr$ywL?)AgAPBH5 z3#C#CrfCi+ilPn;4b=ny2!%qRl%iZNLli~C<8e5S1J`vyDTOS{=<4bMV+^t^gHj6L z_YnjEgmSqI+qR$j`}>V%v#HeUbtsC0Xfz5<(;&+-YPH%&gCKx0W*COivTYmu+1VMk zx3`<3DE^g9CJ_X|*UjN@7~S37;5ZJ9F)+pui9|pt{rlwPq;Y+H4Zct)pj<BdkB^T> zv$M00i9`ZC&jY~MANX>nAP9&=B8{h~r^DmpWAEzf3LyZ{bsa}XN3GS>)qhf{l*SnQ z$+m3}LO=)sr4*r12$Cc<2qB;L_V)g)R;ze<dHG-=lgZ%r_Le(1IM8CT*rw~cIoq}e zD5dChI)>+Y#a63zxWB*ud2({Hb9Z<5|1fQAY@kx9NZD*Q-q+Ws20;KqNK4oC=J@!y zm(S;a6yR_5FP*J#unJL-tN;K2D0);_bW?9;ba!ELWdHzp+Vf3JF3QhMP037DaLX)8 gEzd8?E>^Gr0ALjeCxU}EivR!s07*qoM6N<$f(yi+rT_o{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_delete.png b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_delete.png new file mode 100755 index 0000000000000000000000000000000000000000..d4020e37104c4edfd60e609edf9373774804de8b GIT binary patch literal 935 zcmV;Y16cftP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv00000 z008+zyMF)x010qNS#tmY3labT3lag+-G2N4000Sga6xAP000mG000mGT*j@#00091 zNkl<ZILob*u}kB89LAqtl3r?%pc18t4MjmLB-o~?1qUk*4o(j5kk#$<4>)kRMP1|_ z9nRTFtIIoxFBU}JlS-gaOHpenbZAv<Z6IoE($w^Z<2deJ?>^I)FVFYk3l9(Qn~?u6 zHa0ep$z<3>A`uh>K_Y~pUa#M$QmN|H)ReQnzW$4z`7takEa2qigh-M!y}G)(;`jR# zgb=~=Jjk;A6p2K>mdoWY0E~D%?iq&h^Mm>Md7Pe}lD)mXzXE~4-xNiK9LGVc)k3q` zgl*ekSr&mnpi-~bKk2%@uW4F0o6UYVC>D!2KR=I;j*jjVLPDPB;pOE8rfH(pYQgh7 zyuH1l)9FCdv`VQ|(&y&p(yFS0T3lSj%*@P(;o;$r-EKG3ZnvQ*3N%fF=XvOKI*3N2 zh{a+sO%vH{Ru)BZWnyB2O(YVa*VfiBIXM{$27{lQ&1V1W>nnJkhb+tJbUI*J7Jk1U z<#HMMd>*x04U#1BV`F3gjEsz!jH;?A7K<VP!8A=|G8r5k9AJ5Q8L}+Hwrvy&1soqA z!?G;UG>t~1A@ue2NrE7h7yzIs3hj0q>2w;oTn+;R1F$R$9LK?N9Iz}4hG9U{GzcMR zx7%=C7q07qxxBoDZQBn#&p+MW-SNG>z0h?Xq9~$ND#7RTAsh~)r>6(WWD<_!z~}Ql zJv=<zKR-W%IXpbX+1Xk3=;-Lba5y}g&*$NJ9&T@MkxHdN(=<4a1IKZoC<>w|f?=5R z-QC@as;b{(yuQB1#l=N@XlQ6ZnM{UE(*(mXux%SOO@rro5JEsv6k@ShrB<uynx>_7 zT?Y*ShGAf5XXk!tY3VK+jZU{(t-eO1f%o@!5JJ%Hb}=|O2t`pU&1Un{=H}+Vg+c+f zTJ2{SB9RDkxg6Qv-kz2uX~nXvglU?B>$+eV=82~1uaA$9U$(Zk3`J4AtE;PDyO7J} z0HB-6WQ?1eo6FhR*<gQvzvQ|us@3YfVHnl%@o@(LejNW1z5zW*S;GO167m2504RD? zSaefwW^{L9a%BJjc-r$#OfJgLO-;#6RB+2IN-fVX$}U#0003YW2q%JrHj4lN002ov JPDHLkV1g3ltkD1f literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_edit.png b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_edit.png new file mode 100755 index 0000000000000000000000000000000000000000..2ccc45aa62b25bb2912f00cd25568f920cabd4d6 GIT binary patch literal 741 zcmV<B0vi2^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv00000 z008+zyMF)x010qNS#tmY3labT3lag+-G2N4000Sga6xAP000mG000mGT*j@#0006! zNkl<ZILnojy>1gh6ot>stak?@%gZ8}$P^UBUDBmM%C;0V2#Jyx;1ME31+|qnMV=!P zG>DBM^?1NGOeQjO|^o#$?UR?7bAh#`!^r)65-d?l<RL%?JS4+1Y{C8d6Gie0<EE zPKV++#$+<Vza#*l+wB6teWlbJX1+~ChM5f!O_|v+^AGR+WHy_<1CVWPZ7l!+04SvZ z;BLKMf2Nd50Dzgn%$V0@Sr%t!XO977%MJnnAR;g`gb*x*xUeP!mTPORAR-uJTKoI^ zkH+Ki2O`QZ0p^Eq5;Jq7(RdO?(Q_hF&bg;I0{+sBAPDL~5WF(Re3MeXbk2QUU0sC) zfU2rML^l$I5Xkc!S(eFuzyB%E^A~BFzVG#VNYnIU2Ftf!jWC%^(Cv0%tv&bNzmB5l z<M#G8I-Sm+Av)&(fM>HAd+#BoL=XgU&S5YZKx>UCihQrv%Z)LM=BogB?-!Y~EJINg z5JI5YY+^JTp(qLv(Itn$@+J&J)M_;pMS;O!03ih8IEGRR-g``^Q&d%T9T0{gh$srf zFtFC5EK9_3jC#F}xx=ce7VEO)?(Qx&H#ZT6VJf9;jK^bWt<h?=ptS}wgNRU7Rb{QM z=5ZH*)6-L|udj>4!^87~gM;_|e*bfx=if)8(NALxthI2?VK^L)PfkwqBuTD+rr%Op z>suQe8*#hczSnBC9wbS!wz9IaR;$$>9vvNh+1uNDTbAVz|EXHD*}T(kw-eyv;VtVI zw5mx9zKO$F0000edQ@0+Q*UN;cVTj6004N}^G!@H%Fj(r$xKvm%PdMQ&o9a@R<Hm7 XU=;`_f`c}T00000NkvXXu0mjfr_(;% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_sort.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/dis_sort.gif new file mode 100755 index 0000000000000000000000000000000000000000..9d38f6dff8adbe24d21d40b9c12f964b4accf627 GIT binary patch literal 160 zcmZ?wbhEHb6krfw*v!CSZy!IA?94(#8*fByXW_4W1f@$n1{4FCWC2a=dT@h1x- z0|N(x4oC`Q1_O()z)8>5u16${-dM<P>TF>Tb4x694qKvacIfK$)DsTDW&iT5J>Lge uFElwZXJQhE0?P))qnx3#4A+~NYAMR>Q{@tW_@zx#-}8XO6orX`4AuY)CNi1; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/eclipse32.png b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/eclipse32.png new file mode 100755 index 0000000000000000000000000000000000000000..568fac1d05f4d05a2470f02033e92c77ce49a660 GIT binary patch literal 4594 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/edit.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/edit.gif new file mode 100755 index 0000000000000000000000000000000000000000..97308d17933adc8972f8c27ae7670d779f251463 GIT binary patch literal 582 zcmaixNlz1D0ES0GY+VxTf<{CvL_`G@5VaMJ8U-SPqR~VWBO#~}J?McSKq$=78!;v- zF&Lwu*3_1zX=`!lI$gd_m)Tp|Y5RTM)tfilU*MZ3&*{0ny;plw>JbH|z|t6oioZ~y z2#dcng*?m`P(BX}C0Hn;Tn=WlQmz!w{YhssDU?YfB*9D)mJJgqmw;Ibq9`iGP%&0E z%q7z>mO|^vw3y1WQW+%1B|a{(@e~t>^m>|$#sooN#5gYqVNv3Ff##zuFL1oTa01Qo z498P^f@L|H<pNxSW_iFy{j3;d1e)P!hK*F<XqusD)*BJSp@=6U`a&ET;@u&^7392B zC_se(pa1}V0DK_e1QADo^7w%rgzf%_%};y1LDB;pz98xKksgnmEJM27q{HQ2b@>S! zxn^^%+MH&)lOWtbiM1bAr_pRPnutXUVXzP@CbPk0{cg1CjMk-Pvv$d>TU`EZFfM%4 zYqf@tUvzWx+Sv~auim^9MG^bo8va&qkYVFkYbC6Fg30D4#wRsX)0(E1W1SscD%IH| zc+=iZGc$^VYP@;7{O#-kb$f5Srg>NOr+KC7=B;y@)@?GqVc+?Y3sbE-H(D%5yYKf* zx9q5LRvmiwd;mYuP*=CP_TH1neR#*=#>Pv-!`B|(#yjhGpBf##ab@f-etb`Te}7xs z#iv8~nJw2(*X)0^b!<*M`10ffy?jXC{i5db<kyLI!and?eMec_H~D^0iFN%0P<mQ4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/error_obj.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/error_obj.gif new file mode 100755 index 0000000000000000000000000000000000000000..85ec26bb8b34cc79a89c232ab5939ee85920c692 GIT binary patch literal 354 zcmZ?wbhEHb6krfwxXQrrHNWU<d&k$jqAz*HuX78(R@LA23c2SUeBVF(V`TED#Ef$q z=I1mmE?T(Wb@2V<9rZdi;Y&j9oy?*WVj3qTwa%%UezXtzXdnD+_106dp6Bx7zAu_} z(%tSsV)XaU)~}V7-<lfUHZ}a;zyI-(BmcpGfvQ09CkrD3gDQg#$W)M@7})9$Oe*lu zk?KDolzCD`(No#CZSuvQIj$PZg>SW3&Cw2gt=M=@#b09e6a_n_OYJJZ6jXA8niUvy zT$!0zcq@ek#l*eEy9I?Sc?I|jRrse0v^c8>@fC8;<>afFDIu!DwY-p(M<T~df}5R% bk%evbS|=3=Azl$)p*8-#-kwKP9T}_vU#@Hx literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/folder.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/folder.gif new file mode 100755 index 0000000000000000000000000000000000000000..dde8be86c0dbd089492af9a73a210ff54ab4b5e2 GIT binary patch literal 1043 zcmeH`>rYYv7{-rirD=(-%(gy6S8J{nO}jUBnPzs`Y_;{F>8xh0n%Q;hW+o+MNGX=h zjH#L0jZ&w9p&`M+yx|2n2M@yOa1J*EB;>B)hyIIx`|a7g_v5oYX$SUi-;qNG$bb_7 zb{6q6@3*Ctbfqu^Sta~qPX*a!yo)b+SE~j4=-sK0g-6PJGM-5?%OzQC$%z+|qm|&P z>b^7Vp0icr(>1+UYQVg@zP#FjYn<*|_0sIR;R|nM7v7FsY8t!oPL|&+zs*(L`V8Iq z4Bu-}-DyQ=^_``S-`LGOR`a*lpLh*zT}5xjg$+^$w~zis!EBKiwm?Pg>f*NXN9_oU z2S4S*wfv!nomzS)$`GKeF0`^+%@ayLfeMaL{ay@xkU;N2s0kcz1r>q;sB-}3%hcr} zoGr#H#dy6G`#6ZT3~ISD9an~b9sR{0MR{Yojxk&W_KT$bLYYc9q85#e{}@JkMko5@ zYB{7*z!PG*=DS??Ly3uDd;mg074Z`xBr1I`V(3Toqlj*70#|5pr3QylVpyXeMomhs z9!B-ZF9VF35X`95nN_%1O_<esiw?)Ngoz*w8ogO#uwbU&n9*W3Pil=e%w*LCG+T)| zZN#L_Flp8QwiyFjrp$BNjaK`l?T=;3VRua19Ztuz)9rTJr`-;xYue>;xjinA$L$HE z*X!~4d|tQ5=k@x$fy?Lj1qg)SKjZh$&d$ut%mx7d^REGlJ0uJM8i4q@$J{28Lao4| zuodZCPSd8n)VOo#K1S@8gEhBvNVKx1ZO8W>Dp<2VlfCN1(DvxmjTPNngAz+(DY;@= zSZGG0l60Q4HjR-%uPrW#r0ijBzD8XtVlJX&<GvtKBa5@28MA?!V5AjCZY#*k9!dfV zgTi;$FYh1)GnQmc<x#=wn#K%f=E73!;gPzu2d)rfa9Vg&0zJN}w;(;TlCr0in^Pgp zT7UR?TonnWrB+Z+gRM~R*@#y=FVC-{Vzns|E7F;3WKpD$dEp82P+u}9IBYRFIxe5A jO}-y|Gvp){$X)OxX5C?H$7<=yWgG7%wk?e%1H1kL`WESh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note.gif new file mode 100755 index 0000000000000000000000000000000000000000..8a62aea4f5869aa0c362cf8ff876e2976119706f GIT binary patch literal 543 zcmZ?wbhEHb6krfw_{U%<BElmh14JS+Dk3T>D$=szHa0poE;24IIxa3IE-o%UJ~lo; z5TX(iBNG#&;}c>MlcExnViFP(!oa|glB1GRqLNdhlT%`nlao_YV^Y$hQv*UKEiEl` z*4WIMGiS+?C2N3SkIRxRK5O>)YypBJE?dsH>^bAJ=ZepnCq7r+gj~6D<p~gc3Hks3 zKhW3_0uCHFp!k!8k%6I}K?mezP@FKZ*EG~OHMg|3wRd!OD6ny{v9R#;@d&qat844e znx!toAg9};psKH<FD|IBuA#+PFR7%)KTCS4vOJ%*I&+gEm&&YV(#rap>iSGAy!x_Q yqWWUWI!8`6OKQ$KGW#fdE2pd!hmeGpkeI-p7Tw<diIb;xef;$KOLHS6(5(SZqi4zh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note_link.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/note_link.gif new file mode 100755 index 0000000000000000000000000000000000000000..96385e7ee847877f34ac3c82f1e95a136d378bc1 GIT binary patch literal 568 zcmZ?wbhEHblwgoxc*ejWBO{`s0z@(@K%gU|qoZSEqvPTNL?$jSE}A+LAu%>FF*-gz zJ|Q6?F+h-_5|d(*lB1GRqLNdhlT)LUl4Fwt1SKXVH9%xj(xOw-V$#xLGG)q?Icsc| zZ1GvM$7RhPpDjmRwjA-<a>i#52!-sq5_0B=&zUD7SKfp?`4V#F%9STio?Lko^W;m+ z|Ns9PMg}-=;DF*!7ETU^dIlYkk3n(5z&^F1zNxvTwXMCQv#YzOUXG2EjhUI3gN>K3 zmqS@oXWl$zX@(9t-6lCj9c>+90Uc#!wZ$FcO+53YS1HO1Xew`B!ntylj`T`3Wt{_^ z>^d@PLTePYSDxOYHt+C!Wwu!|lI(&KYJ$St*E)13Oqw!rMsJJJht5x*+l_ww{Q2$s fpSG|6{@I-PuJB-fEgQR-NyUVPhugcD7#XYqs}X_g literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/options.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/options.gif new file mode 100755 index 0000000000000000000000000000000000000000..3edf8b7d1259fc29a05d4720b2743ce6c6c0d082 GIT binary patch literal 833 zcmb`FF-}}z41`CJVk3c+NYJjd4ONOrZa`^}A_3`AZ~$mr)1}?ez!iL(MQKv_LaCf@ z{xe`{_14e!cxL==f81PNJ#MtoFKPGh!^cnj{UXBeUU=@;Z@(UUvc2PQI1KMcvmQM8 zNAT|bBBYc`YHuQoP^6+1tr!<Gl&LIbE62SRs#KM#RpZePb*f9<YBSY@CN-sLXdBqj zU@=Vhc#k6^DxxFCYsoSrE3zZUEGSk+Ra8ffNzvOGUC|vqaAY(lV=AU&*a~aFAPq}s zQDZUKK!e5bSdep~GCOmukF{h~S)DbO3k!-}*_}P8hZMazmD4%M!w+aOjUDKR1PWmd z7^GoID?C^XHqc;=opYI-=&G@i=wmHeclF>aa$!NSrfcvKr!fFtv|}`Cu@XO^$uxGr z3Bf3YHDHit5?b(JG1x$lPvmaO<iv0>j6@%6$$EWc_I2Ic#dSj4ysqNjWwc#i-g$J{ z;Ug@CMp~qOlf}cp3!2Y?D`6g*Shd;ev#zh79^QWIWP5-2^Wo3)>G{Rk-><vxucyaH G`t~2YQe#2@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/prefilter.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/prefilter.gif new file mode 100755 index 0000000000000000000000000000000000000000..702eb4a59cb487a552549fd0b6899820c4f4d9d5 GIT binary patch literal 936 zcmZ?wbhEHb6krfw_|Cv!V33fI(6C^^g$oy6Jb3V-zTW=-|M~Ip_W$q4|HlRxM!{$Z z45JXx0r>@#7Z^Bt8H807940h4G_vw?i3luM*wD-)>%?Qw;Ly-1s?R0kF!8|QURisl z289L%1_l<lX+Dw%5*pfNMECg!2tPbMja}C$q(Xq<ERzGT%7>Yol^hva1r#&_F1$F& zz`!J-p&-)OFj-xg&!gc=!|_H|elD8=2hB!ii=)qcW+l7~+nU6wvXo2w-OcT#S3iYF I3ouv%04Awd+yDRo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/sort.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/sort.gif new file mode 100755 index 0000000000000000000000000000000000000000..23c5d0b11c4a26466ce83a628087957c3157d567 GIT binary patch literal 162 zcmZ?wbhEHb6krfw*v!Dt=Qd?o<*NL$mekrQF|AAe`uB!(Z}yFfm2Rtco!n8ea?$_) z|C?po8DK#1CkrD312=;XNC0F81B-vb$&~_LS+7D>PF**XjMmUwGAU-6$GW(pMcgqb z(|2w9;dV}`sl!pnk4?!TK`?<qjp^d1oiQBiuKPNywB+E6IxyLiF`t3QbAeTH-o*pK HEDY8F*6KJy literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_final.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_final.gif new file mode 100755 index 0000000000000000000000000000000000000000..ae77d3fbf9a675a6abe5e0a0e840a66e40da371b GIT binary patch literal 953 zcmb7@v1^lI5XNs%YsE;=K`1I(Dtv<uaui!dC<L@3)Zk_%pdu$)iB&6PQPd$rC!vE} zp-3Due!56$19ffc;Uc6UmR1`F>5_s_oX+RI`VaJ7!tuWM-0ykr%caW~2L^BDDNkFp zeV9myl*ovjP%#q=u@W1x$E7fdkSK|fc)V366;dTNQjb<+G9gnkBXcN`Gr5o}xsjuQ zHl(42X1w;86Gxbp*_b`Xq7q?I7Gv?Cz@-YSvKp%g6yBP!DVwo57}3fu?8<KJm<no$ z0UDIR!W{-f8`981vxlLmaa6=aJp5rSDpgSv^{@*HT$+lRn8Q7w@K#*KO&s=+2Qbl% zIN%=;a0qIM0UDHe3Jwg0Hl(5Dkz8D(#xYfoAmI;VQJJYZa)n(`;8NYxkt32u0N}!N z1P!-{5_td<-G~EBFbs#Fh8UpH2`q46Ftj1<v7&g5Yt%T7jUh<*!&p@29t+IY9~9X} zW1rcQ0xHWr)|*8cj9EId?aXi>XC7kt8CE#RCP5mX1Ga?l;3*qLxm>QNrzc60{{H?# zp-?OqOQq7-*jS}fsaC5~Q&Y8CEltx#qtR?OTdh{R-QL{X-0uDVA@BU>#NS=rM9Xw4 zTH`-Kd*9Ie?jyq=)`lLfQqr#HUz{!fJn-uL-OlK_iIv6Dp{|jc!SepY_t&LdnjKpG zGV@u|oAZxXthQc1eY82by!7nKR%d#4V&Ln&M*Vd%^74DSdwBX!Lhr7=J(e5KwLd=m zHU7MBDK|6s;ClCh)vxWDD{t7zJBytkgHP9bCpW6;?fEAwz5DvQ4$_TJ-xhvf7(H{G F{sBNnuRZ_( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_link.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_link.gif new file mode 100755 index 0000000000000000000000000000000000000000..cee473e0b0d003658e2a34ef786ec190b435cfc9 GIT binary patch literal 863 zcmb7@F>BLd5XNtCFkmD&)#y@%5~Pzyphcl#uvKt~n+O>Sa!VXKW>>OUr%X3ybBgZi z;!q)Qb6g$r1>z!3=kNaY3-~VKc;9>O_dNH{$&2HI!_$s*<hNWM6)_PP36T^kRZ$al z(GbnLG!-*37Ynhhx31zQ?&2Yy)fy^c5-t%EiISvBnxspHBn8??qeU~Xv*y$>RaXtw ztg%#PYOWS)SrlBlsk?fpXF>5cOv5!oBVnXf(==T(G?@xDVn9O)7IzFr8)>v?&N5Ur z$IZel%O7K@+|9#0%PtgLhFgS1;vOj8TDoOeVvjt)q?<VK4+IXOMhs{uc?t)E(MB4r ztmNvNniK9>LE?|GR1qFYuGocwOV98mN0KH0xOh&`xFt&R0F!RwfC<Amgc>oR=>!W7 z2BVF1){5#i*VLS3V+4sm#!^LQEwEXCQ8XK^eKt!fs3!MXZxdxPHtE#18^eX%c&Oz! zSmmIZgfyQ6TOvF>HKU~6Zg;!gUa!~h_XmT)a5x-|M&t2#GMP-L)7fk`pU)SI#d5h^ ztyb&xdb8PVx7(}Ue;@My|Lp#`))M(4`_)?i3Az4QzO?Q>|N8TZ$c+aV)3f=v>CM*D v^WNFLXCHQSZ~ybF`<L(U9KAU|_;q^uY4>pN-RoO#zkl30die5oM;`qJ4SjlM literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_normal.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/state_normal.gif new file mode 100755 index 0000000000000000000000000000000000000000..8a59febc3b38e95aa5364482e651671fc3c1a31a GIT binary patch literal 914 zcmb7@ziZQB5XP@kN&}|EHMmrl3@Wroi0vSSfUOQCbtnZ1SkY66irq4Hia#bH(?J~q znn}`vR*)=Rgrppf5md0~R|mID;&eXu)_=fv3CH{1bD!tAZ<eoIzPPYipaT7-<HJNk zq(nyKgo>G1h?UrgJuZbwghWY<#N(|psgNqEk$SWmlL?uU8JR<goXLe;$&DNZv>^>G zG~>0$oH)X)%*O077L^E#vKWg81uj)smDN~1pzzj&P1%gi!H8CNVOMrz$5c>54A7ti z7Va<@+K`48nmr6fjiVwa;^7ZtQK^cWsE1up;L=pg#2oGcg}34=ZsM?qJb;OA!~y?+ zfJ0D24A7v&Q*dA~v>^>GkL2PSHIAuz1POl_i^@#Rkt^(i0+;HhjvSFR0st4DBWSoq zl*j{^=tdl1f?+rWHN*goPGErpgP{#+j}^shT%*QuYz#rdAI73G_gG+Be^8{2#y-=M z0xIPm>rGJxV@fBsoeT$Z@({~USm7W|f;2t{Yzg7PQyNA2e7;yLmP(~^xm>MQYqeUv zUT-uS&1SRJYPH+#PN&oB_4@t(a5x-|Mp>4P$K&JPe;@My|IGfG%n^O0bI}_A37URL zySdXVdq+!KU#XOJ3)__k-)81_rnk>j?q$6v{lVeU{`!v#Q&;bP_<r#0%bSUnJJ)V3 zK00}Q=GMkqcZnu$etMBR___ad@%C!AzS>=&`N8JdUvtmjy*%~){QW_D_U+>n!>!jF NYo9BxF6E{s=`Z^&mjnO+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/stateeditor.gif b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/icons/stateeditor.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3d22adbfd1583a6ca5f82540257fdb8ab6c71e0 GIT binary patch literal 1052 zcmZ?wbhEHb6krfw_|Cu}A}S^#CN3%_Au28*CLt*yB`qZ_BP%B_Coiv|q^zx~qN|~% zr=g~=p=PA1W~QrYp{HeIplxlW<F2ORWUlXJW8`CR669zc>R?n9WL+9+TNZAA!BF$I zncf{BGS@%uZ9F-_d4IY4qVmusWg&M`98Xuf9V+rUUF~tU*5h2g_wKg1wXI1z`m=UV z%H2OD_gsVT`6j=!-BIWJ;x4oVTxbcp*cN=dG5lgj=*5n(i(TP&nj<cEM_%rYzStFe zxhL*Qf9%c9n9F_1=O-i_o|tiMV#3wQNmnMNUz?h8eOmg}Nf|e$XWW>Xbz@G>&AEBE z=H(xnQFLf#@tL{BH|7@KoLg~wLBZ_>MYk7~++I|EXKC5RWwm#gRoq=(acg1C?L~FB zm(*NcQG0K7&Aruix0kitUDb4dee>N_?RQso-rv}Ae`D+YP3`x$OnR`j^WnDc2V46e zZtHuvqv!FizQ?;KJl;3?$)1UicTah`f6C+ivmWi4^LYP)rw67!J2?IM;hE14&3kcd z_KOqqo*r8C^7QhTXI8#C3q<Q)onQC*!ur?ex4b&P|Lx`NZ?5ckcXQ9X+xy;JKJxC~ z`FHm(e0q8J^SehszI^=g_4Ci~Uw(f7`uo@S-@ktR`TgV1pI?9e{Qmd%_rE`X{{Q>? z|Nno6Q9vjJ6o0aCGBC_z&;cm~<p~CkpA5E~Z$vsLE_7^U(QLZnx!|x*_rD(xH@lyg zu`1$-E$Uc#;Ye4>qXU_T-OkE-&$CipRS}pXtt+bGA;8=rtYWR`zR8pM7%L+K!;YNF z5|8ClCaF<64Gba&M71k^ZRlir+B(HRM^B*ez=DI5)lyzfF?2|1VB+RC2>E#`#ZyQp z|BwiSR3b~KXzpYM!=RL|**Z)Oem@*6PE3$As`@Zv((+Smypm3Dc07FO(!|VB^1$Np z3D4VmT^mXs2ry{$O7)tpW#nDb-Y2BM#t{0@b@Fnrc#-UFj?OJP4DM={OH$O>dnF7) dmKZcPb*Z#7S(-{Me$vjb7%Om7OhSOc8USZZfZqTB literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/Messages.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..f13b3d5c9850969600df9423216c179f8bdaef73 GIT binary patch literal 1437 zcmbW0+j7!S6o&szDTEMupi(Oy>JfozqV!5Z#};wM8A@kBxbdPB=oV8$(n*4&kI=XA za3SM`58y*NuAKzSAUL*MkiD|k`q#G(`T6Vn4*(@>#}Q$8Y&(6;a1GbfE$xk|cWqDO zA9!!*8MZ|)JwDKnj}5D@4Y=#-eeP;|;USJF!^)BVUe`>W9QM0Myyr0_ciWBU_1ZyW zXRpSPuAh3eJcpFZ45_LwZh0Nu9C8VX07MNz)Br@C38Icc{u~&Vo3++{yIHLr1i2Zq zL0T%q)SBG2hfa_04y{9zQ+lb=GY!k|o-!=t3mt}N)js4hR*;Tkm0`n2o)N2H4Hp;^ zeeMNf3~K)G0t@q#C%~|-Kt__N>xRV}!$Frjuk^0TMYHUlZgzCX5O(-7R`FS7Ea0+& zOGpu~_ttP3D)sYEPfUTz2u8Bwz9hNa{8Ib@hvSoR1GnP1$xuCedcUdT4QkVL6kNk? zhG${!8BH(GZSW)&jq)A;7|bRB6`XkmIU)aOMrp4nbc5Y3hl88c6)IZ-@*YF$OpyPl zPsF;@9}c+X(FoRN1POu%q7EXETmB}$FvPZ`#(h-9zLFR9fIjUAvRFinthjGUWYfOU zIR*&|QgpLK)<b%VUm`7yu>2L7&tyb!k^Yx_p(M%36cWdVe<N;b{lf5VdJ2KX;x}YZ zLuGOTIYmiCgeid&uHY(J32NkKC{Q9#As~H0rZ~d&Pjn8_3wB_2B3{BBq8IVGdGU9r z<1;hjPbhyO%>RUn6s!r6e`|!|v_RGuSPz^+0D*8HDoLCW$~-A;T59v3QjBIHYA^i; DTY^wJ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties new file mode 100755 index 0000000..60bd910 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties @@ -0,0 +1,308 @@ +org.isistan.executionmapping.commands.diagram.ManageStateDiagramCommand.commandAddName=Add State Diagram +org.isistan.executionmapping.commands.diagram.ManageStateDiagramCommand.commandDeleteName=Delete State Diagram +org.isistan.flabot.executionmapping.commands.diagram.DeleteTransitionConditionConnectionCommand.commandName=Delete Transition Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ModifyExecutionConditionCommand.commandName=Edit Method Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonExecutionConditionMenuButtonOptions.selectFromPool=Select from method condition's pool +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.greaterEqual= GREATER EQUAL (>=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.parameterName=Parameter Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.returnedValue=Returned Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.returnValue=Return Value +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.eventMustHaveAName=This configuration will be available after the event is created. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.parameterError=Line {0}: {1} (Parameter) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.returnValueError=Line {0}: {1} (Return Value) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.ifExceptionOfClassIsThrown=If an exception of this class is thrown, the execution condition is verified. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameterName=Parameter Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.lowerEqual= LOWER EQUAL (<=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notContains= NOT CONTAINS +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.newMethodCondition=New Method Condition +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.newGeneralCondition=New General Execution Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notEqual= NOT EQUAL (<>) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.greater= GREATER (>) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notNull= NOT NULL +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.isClass= IS CLASS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ShortComposite.valueNotShort=Value is not a short +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.ifExceptionIsThrown=If any exception is thrown, the execution condition is verified. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FieldComposite.buttonChooseUsed=...* +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.misssingExceptionClass=Must specify a exception class for the condition. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.fromHierarchy=From object hierarchy +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.fromWorkspace=From Workspace +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionVerification=Exception verification +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.trueUpper=TRUE +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.falseUpper=FALSE +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FieldComposite.buttonChoose=... +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.valueEmpty=Value is empty +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.true=true +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ByteComposite.notByte=Value is not a byte +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.LongComposite.notLong=Value is not a long +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.CharComposite.notChar=Value is not a char +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeBasedJDTComposite.classSelection=Class selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.filter=Filter +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.chooseFinalState=Choose final state +org.isistan.flabot.executionmapping.editor.actions.ChangeExecutionConditionAction.actionTooltip=Change execution condition +org.isistan.flabot.executionmapping.editor.actions.NewGeneralExecutionConditionAction.actionText=New general execution condition... +org.isistan.flabot.executionmapping.editor.actions.NewMethodExecutionConditionAction.actionText=New execution condition... +org.isistan.flabot.executionmapping.editor.actions.AssignMethodExecutionConditionAction.actionText=Select execution condition from the pool... +org.isistan.flabot.executionmapping.editor.actions.NewGeneralExecutionConditionAction.actionTooltip=New general execution condition +org.isistan.flabot.executionmapping.editor.actions.NewMethodExecutionConditionAction.actionTooltip=New execution condition +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.finalStateCreation=Final State Creation +org.isistan.flabot.executionmapping.editor.actions.AssignMethodExecutionConditionAction.actionTooltip=Select from execution condition's pool +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.IntComposite.notInt=Value is not an int +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.errorField=Line {0}: {1} +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.fieldName=Field Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeBasedJDTComposite.selectClass=Select the class you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralJDTComposite.buttonAdd=Add +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.errorLine=Line {0}: {1} +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.listEmptyError=The pre-filter and filter lists are empty +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.exception=Exception +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralJDTComposite.buttonRemove=Remove +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.mustEnterClass=Must enter a class for the property "Instance of" +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.parametersProperties=Parameter's Fields Properties +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.fieldName=Field Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.preScope=Pre-Scope filter +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.selectClass=Select the class you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.parameters=Parameters +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.erros=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.noName={0} does not have a name. +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.fields=Fields +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.isEmpty={0} is empty. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.checkErros=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.name=Name: +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.scope=Scope +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.editor={0} editor +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.noName={0} does not have a name. +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.method=Method: +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.fields=Fields +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.ExecutionConditionFilterDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.errors=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.isEmpty={0} is empty +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.executionState=Execution State: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.exception=Exception +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.mustSelectClass=Must select a class +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.errors=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.editor={0} editor +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.errorMethodMapped=Error +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.mappingLost=This internal method call was mapped to the method {0} which cannot be found. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.errors=Errors +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.fieldNoname=Filter does not have a name. +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.class=Class: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.false=false +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.prologVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.TextComposite.valueEmpty=Value is empty +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionsError=> Exception Errors: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FloatComposite.notFloat=Value is not a float +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.returnValue=Return value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameterError=Line {0}: {1} (Parameter) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.returnValueError=Line {0}: {1} (Return Value) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionClass=Exception Class selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.DoubleComposite.notNumber=Value is not a number +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.applyPreScope=Apply pre-scope filter to: +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.parametersAndReturnValue=Parameters and Return Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.editCondition=Edit execution condition +org.isistan.flabot.executionmapping.dialogs.utils.filter.FilteredElementTreeSelectionDialog.filterView=Filter view by: +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.internalMethodCallSelection=Internal method call selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameter=Parameter +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notClass= NOT CLASS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.contains= CONTAINS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.executionCondition=Method condition +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.transformToGeneral=Transform to General Execution Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.equal= EQUAL (=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.lower= LOWER (<) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.isNull= IS NULL +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.strategy.EventStrategyPrologProviderTabItem.eventStrategy=Event Filter Prolog Strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prefiltersConfiguration=Pre-filters configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.conditionConfiguration=Execution condition configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.simpleExpressionStrategy=Simple execution expresions strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.expressionConfiguration=State Configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.ifNoExpressionVerified=If no execution expression is verified, state is +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.internalMethodCall=Internal Method Call +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prologCodeVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.mustSpecifyConfiguration=Must specify some configuration for the strategy. +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.internalMethodCalls=Internal Method Calls +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateConfigurationStrategy=State diagram strategy configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.prologCodeVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.simpleConfigurationError=The simple execution strategy was not configured. +org.isistan.flabot.executionmapping.commands.executioncondition.ManageMethodExecutionConditionCommand.commandAddName=Add Execution Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ManagePersistentTreeElementCommand.commandAddName=Add +org.isistan.flabot.executionmapping.dialogs.common.CommonExecutionConditionMenuButtonOptions.newMethodCondition=New method condition +org.isistan.flabot.executionmapping.dialogs.common.CommonExecutionConditionMenuButtonOptions.newGeneralCondition=New general condition +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem.strategyError=Strategy error +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem.noScopeFilter=No scope filter +org.isistan.flabot.executionmapping.editor.actions.AssignMethodExecutionConditionAction.selectExecutionCondition=Select the execution condition +org.isistan.flabot.executionmapping.editor.actions.NewGeneralExecutionConditionAction.generalExecutionCondition=General Execution Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ManagePersistentTreeElementCommand.commandDeleteName=Delete +org.isistan.flabot.executionmapping.editor.actions.AssignMethodExecutionConditionAction.executionConditionSelection=Execution condition selection +org.isistan.flabot.executionmapping.commands.executioncondition.ManageMethodExecutionConditionCommand.commandDeleteName=Delete Execution Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonExecutionConditionMenuButtonOptions.executionConditionSelection=Execution condition selection +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem.responsibilityScopeFilter=Responsibility scope filter +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionGeneralLogFilterStrategyTabItem.mustSpecfyConfiguration=Must specify some configuration for the strategy. +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionGeneralLogFilterStrategyTabItem.executionLogFilterStrategy=Execution Condition Log Filter Strategy +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem.componentScopeFilter=Component scope filter +org.isistan.flabot.executionmapping.commands.diagram.AssignExecutionConditionToTransitionConditionCommand.commandName=Assign Execution Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonExecutionConditionMenuButtonOptions.selectExecutionCondition=Select the execution condition to add +org.isistan.flabot.executionmapping.dialogs.utils.validators.ExecutionConditionSelectionValidator.mustSelectCondition=Must select a execution condition +org.isistan.flabot.executionmapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem.conditionStrategy=Condition Execution Trace Based Strategy +org.isistan.flabot.executionmapping.dialogs.utils.validators.StateDiagramSelectionValidator.mustSelectDiagram=Must select a state diagram +org.isistan.flabot.executionmapping.commands.diagram..AddTransitionConditionConnectionCommand.commandName=Add Transition Condition +org.isistan.flabot.executionmapping.commands.diagram.AssignPreFiltersToStateContainerCommand.commandName=Assign Pre-filters +org.isistan.flabot.executionmapping.commands.diagram.ChangeStateInfoValueActionCommand.commandName=Change Final State +org.isistan.flabot.executionmapping.commands.diagram.DeleteStateCommand.commandName=Delete State +org.isistan.flabot.executionmapping.commands.diagram.AddStateCommand.commandName=Add State +org.isistan.flabot.executionmapping.commands.diagram.AddStateCommand.defaultStateName=State +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonAddName=Add +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.defaultStrategy=Default strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateDiagram=State Diagram +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.editStrategy=Edit Strategy... +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.mappingLost=This execution condition was mapped to the method '{0}' which cannot be found.\nWhat do you want to do? +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.internalMethodCall=Internal Method Call +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.internalMethodCalls=Internal Method Calls +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonEditName=Edit +org.isistan.flabot.executionmapping.commands.diagram.StateSetConstraintCommand.commandName=Move/Resize +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonRemoveName=Remove +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.editSimpleStrategy=Edit Simple Responsibility State Strategy +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.noSelectedDiagram=There is not any selected state diagram to make the strategy. +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.checkInstanceOf=Check instance of +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.mustSelectMethod=Must select a method. +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.parametersErrors=> Parameters Errors: +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.actionText=Change final state value +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.actionText=Edit pre-filters... +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.actionTooltip=Edit pre-filters +org.isistan.flabot.executionmapping.editor.actions.EditExecutionConditionAction.actionText=Edit execution condition... +org.isistan.flabot.executionmapping.view.dnd.TreeStructuredElementDrop.reparentCommandName=Reparent Tree Element +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.preFilters=Pre-filters +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.executed=Executed +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.faulty=Faulty +org.isistan.flabot.executionmapping.utils.ExecutionConditionUtils.methodSelection=Method Selection +org.isistan.flabot.executionmapping.editor.figures.FinalStateFigure.final=<Final> +org.isistan.flabot.executionmapping.editor.StateEditorContributor.snap=Snap to geometry +org.isistan.flabot.executionmapping.editor.StateEditorContributor.grid=Grid +org.isistan.flabot.executionmapping.editor.StateEditorContributor.ruler=Ruler +org.isistan.flabot.executionmapping.utils.ExecutionConditionUtils.error=Error en seleccion de metodos para la vista ExecutionCondition +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.state=State +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addState=Add State +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.finalState=Final state +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addFinalState=Add Final state +org.isistan.flabot.executionmapping.utils.ExecutionConditionUtils.mustSelectMethod=Must select a method +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.note=Note +org.isistan.flabot.executionmapping.view.ExecutionConditionView.viewError=Execution Conditions and State Diagrams View is available when a Flabot editor is opened. +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.classFilter=Class filter +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.selectClass=Select the class for the selected element +org.isistan.flabot.executionmapping.dialogs.ScrollableItemDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.ShowPrologDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.emptyExecutions=There are {0} empty execution condition +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.state0=State0 +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addStateDiagram=Add State Diagram +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.diagramReferenceErrorTitle=Reference Error +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.diagramReferenceErrorMsg=The state diagram is referenced by other elements, first remove the references and then remove this state diagram. +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteDiagramConfirmationTitle=Confirmation +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteDiagramConfirmationQtn=Are you sure you want to delete this diagram? +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteStateDiagram=Delete State Diagram +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.conditionReferenceErrorTitle=Reference Error +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.conditionReferenceErrorMsg=The execution condition is referenced by other elements, first remove the references and then remove this execution condition. +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteExecutionConfirmationTitle=Confirmation +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteExecutionConfirmationQtn=Are you sure you want to delete this execution condition? +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.renameFolder=Rename Folder +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.folderError=Folder Error +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.folderErrorMsg=The folder cannot be removed because has children. +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.add=Add +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addTreeElement=Add Tree Element +org.isistan.flabot.executionmapping.model.semantic.ExecutionStateValue.notExecuted=NotExecuted +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.methodExecutionCondition=Method Execution Condition +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addNewMethod=Add New Method Execution Condition +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.generalExecutionCondition=General Execution Condition +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addNewGeneral=Add New General Execution Condition +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.stateDiagram=State Diagram +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addNewDiagram=Add New State Diagram +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.subFolder=Sub Folder +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.addNewSubFolder=Add New Sub Folder +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.edit=Edit +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.editTreeElement=Edit Tree Element +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.delete=Delete +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.deleteTreeElement=Delete Tree Element +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.sort=Sort +org.isistan.flabot.executionmapping.view.ExecutionConditionViewPage.sortTreeView=Sort Tree View +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addNote=Add Note +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.classSelection=Class Selection +org.isistan.flabot.executionmapping.dialogs.ExecutionConditionFilterDialog.1=Filter configuration +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.errors=Errors +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.noteLink=Note link +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addNoteLink=Add Note link +org.isistan.flabot.executionmapping.editor.figures.InitialStateFigure.inicial=<Inicial> +org.isistan.flabot.executionmapping.model.semantic.ExecutionStateValue.faulty=Faulty +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.none=None +org.isistan.flabot.executionmapping.model.semantic.ExecutionStateValue.executed=Executed +org.isistan.flabot.executionmapping.utils.ExecutionConditionUtils.selectMethod=Select the method you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.remapCondition=Remap Method Execution Condition +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.parametAndReturnValue=Parameters and Return Value +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.error=Error +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.remap=Remap +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.ifExceptionThrown=If an exception is thrown, state is +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.mustAddExpression=Must add at least one expression execution condition. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.simpleStrategy=Simple execution condition strategy configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateSelection=State diagram selection +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.checkErrors=You need to check these erros before continue: +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.selectDiagram=Select the state diagram you want to set to the strategy +org.isistan.flabot.executionmapping.dialogs.ExecutionConditionFilterDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.AbstractExecutionConditionDialog.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.MethodExecutionConditionDialog.selectMethod=Select the method call you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.common.ExecutionConditionEditorBuilder.transform=Transform to general +org.isistan.flabot.executionmapping.dialogs.GeneralExecutionConditionDialog.parametersErrors=> Parameters Errors: +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.actionTooltip=Change final state value +org.isistan.flabot.executionmapping.editor.actions.ChangeExecutionConditionAction.actionText=Change execution condition +org.isistan.flabot.executionmapping.editor.actions.EditExecutionConditionAction.actionTooltip=Edit execution condition +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.finalStateValue=Final state value: +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.okButton=Ok +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.transitionCondition=Transition Condition +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.notVerified=If not verified +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.ifException=If excepcion +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.notExecuted=Not Executed +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addTransitionCondition=Add transition condition +org.isistan.flabot.executionmapping.commands.diagram.ModifyNamedElementCommand.commandLabel=Edit Name +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.text=Visualization... +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.toolTipText=Visualization +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.dialogName=Edit Visualization +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.commandName=Edit Visualization +org.isistan.flabot.edit.multipage.FlabotMultiPageEditorContributor.exportDiagramName=Export Diagram +org.isistan.flabot.edit.ucmeditor.UCMEditorPaletteFactory.paletteGroupName=Tools +org.isistan.flabot.edit.editor.actions.CreateComponentDiagramAction.dialogName=Create State Diagram +org.isistan.flabot.edit.editor.actions.CreateComponentDiagramAction.dialogDescription=Please enter a name +org.isistan.flabot.edit.ucmeditor.UCMEditorPaletteFactory.paletteName=Parts +org.isistan.flabot.edit.componenteditor.editparts.ComponentDiagramEditPart.snapFeedbakcEditPolicy=Snap Feedback +org.isistan.flabot.edit.multipage.FlabotMultiPageEditorContributor.exportDiagramName.FinalStateCreationTool.chooseFinalState=Choose final state +org.isistan.flabot.executionmapping.editor.StateEditorContextMenuProvider.changeExecutionCondition=Change execution condition +org.isistan.flabot.executionstatemapping.editor.properties.StateDiagramProperty.diagramName=Diagram Name +org.isistan.flabot.executionstatemapping.editor.properties.StateProperty.name=Name diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties.back b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties.back new file mode 100755 index 0000000..7da26d4 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/messages.properties.back @@ -0,0 +1,308 @@ +org.isistan.executionmapping.commands.diagram.ManageStateDiagramCommand.commandAddName=Add State Diagram +org.isistan.executionmapping.commands.diagram.ManageStateDiagramCommand.commandDeleteName=Delete State Diagram +org.isistan.flabot.executionmapping.commands.diagram.DeleteTransitionConditionConnectionCommand.commandName=Delete Transition Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ModifyMethodConditionCommand.commandName=Edit Method Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonMethodConditionMenuButtonOptions.selectFromPool=Select from execution condition's pool +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.greaterEqual= GREATER EQUAL (>=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.parameterName=Parameter Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.returnedValue=Returned Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.returnValue=Return Value +org.isistan.flabot.engine.executionstate.dialogs.event.ConditionEventStrategyEditionItem.eventMustHaveAName=This configuration will be available after the event is created. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.parameterError=Line {0}: {1} (Parameter) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.returnValueError=Line {0}: {1} (Return Value) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.ifExceptionOfClassIsThrown=If an exception of this class is thrown, the execution condition is verified. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameterName=Parameter Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.lowerEqual= LOWER EQUAL (<=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notContains= NOT CONTAINS +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.newMethodCondition=New Method Condition +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.newGeneralCondition=New General Method Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notEqual= NOT EQUAL (<>) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.greater= GREATER (>) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notNull= NOT NULL +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.isClass= IS CLASS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ShortComposite.valueNotShort=Value is not a short +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.ifExceptionIsThrown=If any exception is thrown, the execution condition is verified. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FieldComposite.buttonChooseUsed=...* +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.misssingExceptionClass=Must specify a exception class for the condition. +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.fromHierarchy=From object hierarchy +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.fromWorkspace=From Workspace +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionVerification=Exception verification +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.trueUpper=TRUE +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.falseUpper=FALSE +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FieldComposite.buttonChoose=... +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ClassOfComposite.valueEmpty=Value is empty +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.true=true +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.ByteComposite.notByte=Value is not a byte +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.LongComposite.notLong=Value is not a long +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.CharComposite.notChar=Value is not a char +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeBasedJDTComposite.classSelection=Class selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.filter=Filter +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.chooseFinalState=Choose final state +org.isistan.flabot.executionmapping.editor.actions.ChangeMethodConditionAction.actionTooltip=Change execution condition +org.isistan.flabot.executionmapping.editor.actions.NewGeneralMethodConditionAction.actionText=New general execution condition... +org.isistan.flabot.executionmapping.editor.actions.NewMethodMethodConditionAction.actionText=New execution condition... +org.isistan.flabot.executionmapping.editor.actions.AssignMethodMethodConditionAction.actionText=Select execution condition from the pool... +org.isistan.flabot.executionmapping.editor.actions.NewGeneralMethodConditionAction.actionTooltip=New general execution condition +org.isistan.flabot.executionmapping.editor.actions.NewMethodMethodConditionAction.actionTooltip=New execution condition +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.finalStateCreation=Final State Creation +org.isistan.flabot.executionmapping.editor.actions.AssignMethodMethodConditionAction.actionTooltip=Select from execution condition's pool +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.IntComposite.notInt=Value is not an int +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.errorField=Line {0}: {1} +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.fieldName=Field Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeBasedJDTComposite.selectClass=Select the class you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralJDTComposite.buttonAdd=Add +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.errorLine=Line {0}: {1} +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.listEmptyError=The pre-filter and filter lists are empty +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.exception=Exception +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralJDTComposite.buttonRemove=Remove +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.mustEnterClass=Must enter a class for the property "Instance of" +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.parametersProperties=Parameter's Fields Properties +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.fieldName=Field Name +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralFieldComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.preScope=Pre-Scope filter +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.selectClass=Select the class you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.parameters=Parameters +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeFieldsComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.erros=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.noName={0} does not have a name. +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.fields=Fields +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.isEmpty={0} is empty. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.checkErros=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.name=Name: +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.scope=Scope +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.checkErrors=You need to check these errors before continue: +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.editor={0} editor +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.noName={0} does not have a name. +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.method=Method: +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.fields=Fields +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.MethodConditionFilterDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.errors=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.isEmpty={0} is empty +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.executionState=Method State: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.exception=Exception +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.mustSelectClass=Must select a class +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.errors=Errors +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.editor={0} editor +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.errorMethodMapped=Error +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.mappingLost=This internal method call was mapped to the method {0} which cannot be found. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.errors=Errors +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.fieldNoname=Filter does not have a name. +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.class=Class: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.BooleanComposite.false=false +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.prologVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.TextComposite.valueEmpty=Value is empty +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionsError=> Exception Errors: +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.FloatComposite.notFloat=Value is not a float +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.returnValue=Return value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameterError=Line {0}: {1} (Parameter) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.returnValueError=Line {0}: {1} (Return Value) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ExceptionFilterComposite.exceptionClass=Exception Class selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.valuecomposites.DoubleComposite.notNumber=Value is not a number +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralScopeFilterComposite.applyPreScope=Apply pre-scope filter to: +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.parametersAndReturnValue=Parameters and Return Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.value=Value +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.editCondition=Edit execution condition +org.isistan.flabot.executionmapping.dialogs.utils.filter.FilteredElementTreeSelectionDialog.filterView=Filter view by: +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.internalMethodCallSelection=Internal method call selection +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.GeneralParametersReturnValueComposite.parameter=Parameter +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.notClass= NOT CLASS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.contains= CONTAINS +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.condition=Condition +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.executionCondition=Method condition +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.transformToGeneral=Transform to General Method Condition +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.equal= EQUAL (=) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.lower= LOWER (<) +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.ITypeParametersReturnValueComposite.fields=Fields +org.isistan.flabot.executionmapping.dialogs.jdtcomposites.combocontentproviders.ComboConstants.isNull= IS NULL +org.isistan.flabot.executionmapping.dialogs.logicalexpressionbuilder.SingleExpressionGUI.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.strategy.EventStrategyPrologProviderTabItem.eventStrategy=Event Filter Prolog Strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prefiltersConfiguration=Pre-filters configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.conditionConfiguration=Method condition configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.simpleExpressionStrategy=Simple execution expresions strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.expressionConfiguration=Method expression configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.ifNoExpressionVerified=If no execution expression is verified, state is +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.internalMethodCall=Internal Method Call +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.prologCodeVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.mustSpecifyConfiguration=Must specify some configuration for the strategy. +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.internalMethodCalls=Internal Method Calls +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateConfigurationStrategy=State diagram strategy configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.prologCodeVisualization=Prolog code visualization: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.simpleConfigurationError=The simple execution strategy was not configured. +org.isistan.flabot.executionmapping.commands.executioncondition.ManageMethodMethodConditionCommand.commandAddName=Add Method Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ManagePersistentTreeElementCommand.commandAddName=Add +org.isistan.flabot.executionmapping.dialogs.common.CommonMethodConditionMenuButtonOptions.newMethodCondition=New method execution condition +org.isistan.flabot.executionmapping.dialogs.common.CommonMethodConditionMenuButtonOptions.newGeneralCondition=New general execution condition +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionTraceInferenceStrategyTabItem.strategyError=Strategy error +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionTraceInferenceStrategyTabItem.noScopeFilter=No scope filter +org.isistan.flabot.executionmapping.editor.actions.AssignMethodMethodConditionAction.selectMethodCondition=Select the execution condition +org.isistan.flabot.executionmapping.editor.actions.NewGeneralMethodConditionAction.generalMethodCondition=General Method Condition +org.isistan.flabot.executionmapping.commands.executioncondition.ManagePersistentTreeElementCommand.commandDeleteName=Delete +org.isistan.flabot.executionmapping.editor.actions.AssignMethodMethodConditionAction.executionConditionSelection=Method condition selection +org.isistan.flabot.executionmapping.commands.executioncondition.ManageMethodMethodConditionCommand.commandDeleteName=Delete Method Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonMethodConditionMenuButtonOptions.executionConditionSelection=Method condition selection +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionTraceInferenceStrategyTabItem.responsibilityScopeFilter=Responsibility scope filter +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionGeneralLogFilterStrategyTabItem.mustSpecfyConfiguration=Must specify some configuration for the strategy. +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionGeneralLogFilterStrategyTabItem.executionLogFilterStrategy=Method Condition Log Filter Strategy +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionTraceInferenceStrategyTabItem.componentScopeFilter=Component scope filter +org.isistan.flabot.executionmapping.commands.diagram.AssignMethodConditionToTransitionConditionCommand.commandName=Assign Method Condition +org.isistan.flabot.executionmapping.dialogs.common.CommonMethodConditionMenuButtonOptions.selectMethodCondition=Select the execution condition to add +org.isistan.flabot.executionmapping.dialogs.utils.validators.MethodConditionSelectionValidator.mustSelectCondition=Must select a execution condition +org.isistan.flabot.executionmapping.dialogs.strategy.MethodConditionTraceInferenceStrategyTabItem.conditionStrategy=Condition Method Trace Based Strategy +org.isistan.flabot.executionmapping.dialogs.utils.validators.StateDiagramSelectionValidator.mustSelectDiagram=Must select a state diagram +org.isistan.flabot.executionmapping.commands.diagram..AddTransitionConditionConnectionCommand.commandName=Add Transition Condition +org.isistan.flabot.executionmapping.commands.diagram.AssignPreFiltersToStateContainerCommand.commandName=Assign Pre-filters +org.isistan.flabot.executionmapping.commands.diagram.ChangeStateInfoValueActionCommand.commandName=Change Final State +org.isistan.flabot.executionmapping.commands.diagram.DeleteStateCommand.commandName=Delete State +org.isistan.flabot.executionmapping.commands.diagram.AddStateCommand.commandName=Add State +org.isistan.flabot.executionmapping.commands.diagram.AddStateCommand.defaultStateName=State +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonAddName=Add +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.defaultStrategy=Default strategy +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateDiagram=State Diagram +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.editStrategy=Edit Strategy... +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.mappingLost=This execution condition was mapped to the method '{0}' which cannot be found.\nWhat do you want to do? +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.internalMethodCall=Internal Method Call +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.internalMethodCalls=Internal Method Calls +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonEditName=Edit +org.isistan.flabot.executionmapping.commands.diagram.StateSetConstraintCommand.commandName=Move/Resize +org.isistan.flabot.executionmapping.dialogs.common.ListElementsComposite.buttonRemoveName=Remove +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.editSimpleStrategy=Edit Simple Method Condition Strategy +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.noSelectedDiagram=There is not any selected state diagram to make the strategy. +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.checkInstanceOf=Check instance of +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.mustSelectMethod=Must select a method. +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.parametersErrors=> Parameters Errors: +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.actionText=Change final state value +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.actionText=Edit pre-filters... +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.actionTooltip=Edit pre-filters +org.isistan.flabot.executionmapping.editor.actions.EditMethodConditionAction.actionText=Edit execution condition... +org.isistan.flabot.executionmapping.view.dnd.TreeStructuredElementDrop.reparentCommandName=Reparent Tree Element +org.isistan.flabot.executionmapping.editor.actions.EditPreFiltersAction.preFilters=Pre-filters +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.executed=Executed +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.faulty=Faulty +org.isistan.flabot.executionmapping.utils.MethodConditionUtils.methodSelection=Method Selection +org.isistan.flabot.executionmapping.editor.figures.FinalStateFigure.final=<Final> +org.isistan.flabot.executionmapping.editor.StateEditorContributor.snap=Snap to geometry +org.isistan.flabot.executionmapping.editor.StateEditorContributor.grid=Grid +org.isistan.flabot.executionmapping.editor.StateEditorContributor.ruler=Ruler +org.isistan.flabot.executionmapping.utils.MethodConditionUtils.error=Error en seleccion de metodos para la vista MethodCondition +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.state=State +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addState=Add State +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.finalState=Final state +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addFinalState=Add Final state +org.isistan.flabot.executionmapping.utils.MethodConditionUtils.mustSelectMethod=Must select a method +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.note=Note +org.isistan.flabot.executionmapping.view.MethodConditionView.viewError=Method Conditions and State Diagrams View is available when a Flabot editor is opened. +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.classFilter=Class filter +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.selectClass=Select the class for the selected element +org.isistan.flabot.executionmapping.dialogs.ScrollableItemDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.ShowPrologDialog.okButton=Ok +org.isistan.flabot.executionmapping.dialogs.LogicalExpressionBuilder.emptyMethods=There are {0} empty execution condition +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.state0=State0 +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addStateDiagram=Add State Diagram +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.diagramReferenceErrorTitle=Reference Error +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.diagramReferenceErrorMsg=The state diagram is referenced by other elements, first remove the references and then remove this state diagram. +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteDiagramConfirmationTitle=Confirmation +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteDiagramConfirmationQtn=Are you sure you want to delete this diagram? +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteStateDiagram=Delete State Diagram +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.conditionReferenceErrorTitle=Reference Error +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.conditionReferenceErrorMsg=The execution condition is referenced by other elements, first remove the references and then remove this execution condition. +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteMethodConfirmationTitle=Confirmation +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteMethodConfirmationQtn=Are you sure you want to delete this execution condition? +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.renameFolder=Rename Folder +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.folderError=Folder Error +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.folderErrorMsg=The folder cannot be removed because has children. +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.add=Add +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addTreeElement=Add Tree Element +org.isistan.flabot.executionmapping.model.semantic.MethodStateValue.notExecuted=NotExecuted +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.methodMethodCondition=Method Method Condition +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addNewMethod=Add New Method Method Condition +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.generalMethodCondition=General Method Condition +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addNewGeneral=Add New General Method Condition +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.stateDiagram=State Diagram +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addNewDiagram=Add New State Diagram +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.subFolder=Sub Folder +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.addNewSubFolder=Add New Sub Folder +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.edit=Edit +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.editTreeElement=Edit Tree Element +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.delete=Delete +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.deleteTreeElement=Delete Tree Element +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.sort=Sort +org.isistan.flabot.executionmapping.view.MethodConditionViewPage.sortTreeView=Sort Tree View +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addNote=Add Note +org.isistan.flabot.executionmapping.dialogs.utils.DialogUtils.classSelection=Class Selection +org.isistan.flabot.executionmapping.dialogs.MethodConditionFilterDialog.1=Filter configuration +org.isistan.flabot.executionmapping.dialogs.ParameterFieldsProperties.errors=Errors +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.noteLink=Note link +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addNoteLink=Add Note link +org.isistan.flabot.executionmapping.editor.figures.InitialStateFigure.inicial=<Inicial> +org.isistan.flabot.executionmapping.model.semantic.MethodStateValue.faulty=Faulty +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.none=None +org.isistan.flabot.executionmapping.model.semantic.MethodStateValue.executed=Executed +org.isistan.flabot.executionmapping.utils.MethodConditionUtils.selectMethod=Select the method you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.remapCondition=Remap Method Method Condition +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.parametAndReturnValue=Parameters and Return Value +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.error=Error +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.remap=Remap +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.ifExceptionThrown=If an exception is thrown, state is +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeStrategy.mustAddExpression=Must add at least one expression execution condition. +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.simpleStrategy=Simple execution condition strategy configuration +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.stateSelection=State diagram selection +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.checkErrors=You need to check these erros before continue: +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.strategy.CompositeTabStrategy.selectDiagram=Select the state diagram you want to set to the strategy +org.isistan.flabot.executionmapping.dialogs.MethodConditionFilterDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.showProlog=Show Prolog Code +org.isistan.flabot.executionmapping.dialogs.AbstractMethodConditionDialog.prologCode=Prolog Code +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.fieldsErrors=> Fields Errors: +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.chooseButton=... +org.isistan.flabot.executionmapping.dialogs.MethodMethodConditionDialog.selectMethod=Select the method call you want to add an execution condition +org.isistan.flabot.executionmapping.dialogs.common.MethodConditionEditorBuilder.transform=Transform to general +org.isistan.flabot.executionmapping.dialogs.GeneralMethodConditionDialog.parametersErrors=> Parameters Errors: +org.isistan.flabot.executionmapping.editor.actions.ChangeFinalStateValueAction.actionTooltip=Change final state value +org.isistan.flabot.executionmapping.editor.actions.ChangeMethodConditionAction.actionText=Change execution condition +org.isistan.flabot.executionmapping.editor.actions.EditMethodConditionAction.actionTooltip=Edit execution condition +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.finalStateValue=Final state value: +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.okButton=Ok +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.transitionCondition=Transition Condition +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.notVerified=If not verified +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.ifException=If excepcion +org.isistan.flabot.executionmapping.editor.properties.StateDiagramProperty.notExecuted=Not Executed +org.isistan.flabot.executionmapping.editor.dialogs.ChooseFinalStateValueDialog.cancelButton=Cancel +org.isistan.flabot.executionmapping.editor.StateEditorPaletteFactory.addTransitionCondition=Add transition condition +org.isistan.flabot.executionmapping.commands.diagram.ModifyNamedElementCommand.commandLabel=Edit Name +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.text=Visualization... +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.toolTipText=Visualization +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.dialogName=Edit Visualization +org.isistan.flabot.edit.editor.actions.EditVisualizationAction.commandName=Edit Visualization +org.isistan.flabot.edit.multipage.FlabotMultiPageEditorContributor.exportDiagramName=Export Diagram +org.isistan.flabot.edit.ucmeditor.UCMEditorPaletteFactory.paletteGroupName=Tools +org.isistan.flabot.edit.editor.actions.CreateComponentDiagramAction.dialogName=Create State Diagram +org.isistan.flabot.edit.editor.actions.CreateComponentDiagramAction.dialogDescription=Please enter a name +org.isistan.flabot.edit.ucmeditor.UCMEditorPaletteFactory.paletteName=Parts +org.isistan.flabot.edit.componenteditor.editparts.ComponentDiagramEditPart.snapFeedbakcEditPolicy=Snap Feedback +org.isistan.flabot.edit.multipage.FlabotMultiPageEditorContributor.exportDiagramName.FinalStateCreationTool.chooseFinalState=Choose final state +org.isistan.flabot.executionmapping.editor.StateEditorContextMenuProvider.changeMethodCondition=Change execution condition +org.isistan.flabot.executionstatemapping.editor.properties.StateDiagramProperty.diagramName=Diagram Name +org.isistan.flabot.executionstatemapping.editor.properties.StateProperty.name=Name diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer$Transition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer$Transition.class new file mode 100644 index 0000000000000000000000000000000000000000..089caac1e2a8cbbad5236a732dfe7d92f604a6b9 GIT binary patch literal 1012 zcmcIiU279T6g@Xzo2+ZP##%p;+O)Ko?1PJaRRk%BfuLY&P~Rr&G@Y`U4LcL*kMgBp zDfr+I@JESvwkZ|$(J(M`@11+jnYs7=`1$QSfPL(EC=o_kK8=-8#tI!DrDBrVSf0vc zVO6F%Xyr`I=SolGnKVXBrHT0}jbG%`#Y}2z-pY9@5}EHF=0Y3gU>+)j@I-tTaVi-3 zW^y7EOK50$YDbQfKm$TeBrcteXG$ykoKWoz2K_Oia*%zJKFSCJ)Nzwg?)AqF5Y_@z zQFGR<03K=_87eJbFJ=>&ABsuJ)U9Ebh;%G+<@{x^Vvm&}yc@3IzfTDt`Qa;}?vH)` z>^)b82B9vJgxj$Dgz&z%8a?jImC8QBA7zU?kuQ}i?8aYBf9#q}2nJfq{2&#^NaLYP zc=f-^%ul!;EOfaRWuD#=FP?+K;wj*>!VxYJ-}~%+V9({PMHjdcwa?LvI_C(_3P6kZ z76X6|@0$#Ih$gmhn<L#z7}jxzJtin*sIZ(+DFn-GEM*>Xw&U@lcIN_jujy-?;OHG? z2?*=Bj|WT89-r>E8hu6cOOfDSbP4JH25J8j68;I<zJjn)r=Z*94}t68bhfY!{}(n0 B^x6Ob literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/ArgumentsReplacer.class new file mode 100644 index 0000000000000000000000000000000000000000..1b7bfe263bdd9ec4522bfe65788ab8a274935a88 GIT binary patch literal 4119 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 QZ{Oon-u4Fg{XTsE1*>DUe*gdg literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/MessagesUtil.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/MessagesUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..79bcf1fb04c4dd3aef3a228fc4e7f8be5889d101 GIT binary patch literal 1937 zcmb_d>vGdZ7(E*siwGrgE`%gNV*{m*Lol@5O@YKD-0U#LZDu;1{@BQiQBY)$Bxh*f zfVT;MLI!4d03M3rtRzAp%5Z7@L(+cxedm0av+K9-UcCYEGwKHV1Zo|>U2y^@2&Gqf z?8?<nSW(ZE-3y(LM`NhgWw+~i?aI0e0@+qUg<Ec=k*xmU!a!Caza}?i#g+7YxVon7 zP#|~R@tp96K&CXaB9N_hTFOKQ{T2=&CooiZJhj|gUse9^a@AD=BlV6g-4*FOdYu@v z;S(niSgijKsa6FB+A3^@K1-Sp?h*G^sUD>smGwvkot|&2g`U@PRW;s;ii$(3GkZ-Y zhB0bjL||e+APZwSEYQD0EpR%a{Q|gwBLYW0_BKvqq35_Q<(rtqQ3F$-bU*g6a16%< zj1B4b)WgRDhfB58+{ZDk$5GH8duy9nF)@x47Ea<62TCa@uO%>-=DH_3$+D^;PHTvt z1dgSpvD<ORLK(9H2g6QWiNIJXC36FF0w+E;yx{}^XZm4)i_dJ;)fyHU^gkJ@z*L-R z+Q6yRr|KUq#Lrt!<p?VD)UMe5D7DC%p|qbiWH-{V34u!%1~Fvf3a%NrD)8HPs=3)! zwj<rz6X{DkRDMwFcpJ*+mxZbp*@PV%_Be8WL8N;MG4WBHW%HZ#|JSa@#OFNyNZi7L zfq8+u-&y9o-|np|FAN^3t}AU_T@AM>Xg^*HTuss7*Ja20<p+3y(Uc&{FX3tF+1=CU zcSyi&Mwi2qqwlKW-B;jQEf*B&o8jdO9w?#jI6e)oDtrrVEx*LU7yRgh$*0~19S-qn z#SVNAaMiE1LW>UmmyjB?P@dgFezWl!<A3Ih+n9KXA80A&i(B|{3#H8jA%`>c*Z6}` zoJpQTM6x2DLX3s8OiKR>IEV8Q(<J{Beqm-8Xk}(g266gz-O(=aH}|sK8z|3i<6`5? zHZCvEZPE}I6O#=ybc95s5m`A7*dZH8$Z|~QI%)gp)rVjCmBDkSdn2J*qxArh^AXkZ z9Jy{@%T8uLXPY3~BpWsrv0aE`cG&U>8*#9RC1U2-7R{SsOa^!Ol_l?3I`7^6d8dg~ PAV%>&@Cw|IdiUTxJX+XT literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharacterConversion.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharacterConversion.class new file mode 100644 index 0000000000000000000000000000000000000000..e277dbba89fd43fb1e2269d33e7fc019dfa017da GIT binary patch literal 713 zcmb_ZO-lnY5Pj))>-O943hGUJaKWqMWzkbnq*CyhZpSvV-7TB6_@lfC7Qur*z#k<} z)}l~7N+6lMH*Y3y^8WGq2H+U2JW>MJQ9N{&R@%tWy$fVNGA=!kKQ$@}88kGOlZgt4 z?wGWeL((o&f!m#suVmnjWGsC{u@{9iiZzS!$OzQ#<xIMPWZhN&o_xa)X<trg@GTJ# z9>aR6l0fcMh02@>WDh*=uqTl5q5+kVhU1`svOxOauvdgY)j<|H8`T};kz=HzLb{xe z`xM{Een0|^PUOp=Cu3#r3ov6wN(*#5|8D<8pgAOS{>v=CneAF`d3FM&ZZwU3x={AP zyUYB~Y>(_%vCn?f{D&!CY(I(EJfCT13b6Ai@$Hs*n^$eWV5Qxfqtf1)qxO^t8oW1< z;hjG$5fxEkS(A~yFBw*`#y2jIv=K>U8>P6xIyM$<Ts|$AZ9k*($U%w=gVQWnP6|3- V35$XPn}3RH%i{W<;;p2`_9qQZm}vk2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter$Transition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter$Transition.class new file mode 100644 index 0000000000000000000000000000000000000000..b316d26f8579b459c9368214709a56c66d733f56 GIT binary patch literal 1066 zcmcIiU279T6g`u#P1cxh<40=~HA<z)KDgLd#g~8(2#TZx1Q90dm`>TuhMi66kMc#Z z6nyXp_@l%#+mwpvn_*z)-aGf4Gjs3#@$=hv0Ec+&p(OA=&E}D|+UC+kpAtDs^GKbk zc$MqaFqo@_TrRblM+;@GoGTmgDv2gb6>FIck7Xv~TxE8cnp2h0+CR#qvD)E1R0M(( zc`BnslH$$mM8&y4!>F@-;>ZQWNT5avrqg(#jm}>RRQsdRU@A}<rXQ7$GMY`)aZ{k& zA50q%*lMDRnzOc>@K9r9tc`lTTFg{-Bxeb!+v7Br$y8?A`RiaMKh{>@!+4V)e=ZR7 z2b<LxOnrWT*A=EAP?vGc4(&e^ko^q{vt?IuhXVd2U1hO)rCrS*{(CT<x<L?Vj*L;+ zFp<_O>!By`_P@7+kGh^h^jM}cXTHS6p(!km49^N9tRC-udhh7Dyshv8H^R<2T4DDb z!IuKi=H4a%*x|lQ&^@%Uhg*#FE@8NhJM>6U$cVynLZtwdxx1D*V7BA&!cO-BJJ<9z zCOCRWSptGOCHB^!Cp_J4HT;U!=OV$q=n~TT4bu55B={53y@F7wThQId1D<ZA*hM^o F{|g6U3VHwl literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/messages/util/SpecialCharactersConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..2134eab2940d77d4191e04931f2eecdf4993fd76 GIT binary patch literal 4042 zcmcInO>h%s7=FHFv)gQ!8jw_iBA`Ii@Dr#Sp)F|G1_(4QG_hDIKilon20~JkEh7Fq zT=c?OE>y>v&N$-?!c0LO^`egB#nF@Ayz9xk*5}(zo7j46C(UM`?|c8>_j}*3KmPN@ z*8sZku7-fXsY-PsS*#Unu2oK6ELmd}H|bn+>}j`HDRa?vu2@r3#qvb*ic_mu6HYD3 ztx_^S<=925WKLRD%XXb=&8(EKI#s@DPy`~EtgBYCWRY)h?2==<0&CJ{Av-v5eqeAY zm+lu3S+0>wYIcXM(zFw#U1$(ykCHSa7llAuo!cB77|sk8<SMO?)K?Fu%@g_lbpDuJ z4+?CkuV?aR`edf>{D1aoUaNU5J+x>^n}-%@1PpH>e==icrKK$%%nTk82+7wxDe{GM zA+so<4t;e3s<%tBuuqm5=%dcUP<kMrl`-JXg)?XRS3LCF3RSCIE6UXM2&|*>fj;`_ z$1G390)-V*>nFVC>uTw>OT}{0JtPo}cMc0EW@X&bnaw8*Jc(^g;DqBg%&Q5E#XDC! z24U*oVPGR3)ev8~T5ou+qXP*8JF$yN@2v+Q6gSPzVX1qMfyb~(;GzCv*%_F=GUikZ z)>z45Zu%>>RT{RcMTxyd9YJ(SS(_O>ce2P3<yXE$dNdh~X9Y%Av-)(Ta6tOfEnvs9 z*_HRBxzuI7wYrO?&%kZ4{cg0ZOR*l}{f*v~cdKk|J)O&!Wa&O<pcl^zT>l@I)i_4~ zV+PBr=GiDqW|`eO`fx-;=0E+`_sPIf93ywhDNneQ-l@z=^5X_hfIUqsmdBlIgBMwA z@oZ;S1A9aJQU!;nFJ5%2I&$ceyr&EdfxSz$+4a+G>5|oyk$S<vFix{|^N=@AhrlOs zb9Dl>LdDy#wMUlhh=G@Ih7I4cZBDyw`vk1`D%UQvlEPU7=b9BW+&Nq@U}22m<^Xoe z;{uPy&E+NH=ZNNaVBCNMX7piZVQJ-i6~J8OFlnHOOLWq$_@yGSKE7No2gt_Sk|Ey+ z7bl^2Iq>SUQgvwEhGq3xH;pt^r#4+;!H6Qiwm`sUNeWXy_YbO^A}iSL8g|kPz0ny2 z&aG}XWwLBJet8t~u4P}&SyNtf*RV-u=yd~cEMzECv#lv-eDMZFOY@cKs_h&p$_cS~ zX$BiNtUdCa@(z+Mmz}CvvT8MlJx^~;S8U~(lvkk$XI}^^ktQ!pXdw<aVV$_O3Cmfz zrU|zZKh%V!ytPeO%3IfjrM!omu#~sH2}^m=CM@N(H(@F7ktQtVZD_($UTg{Gbf<4& zIcfQ;(#OZKnI3N;n)3Vx_CLVZd)Tgig^rQnmwZIZ5&b?o^COCfs*yDw3VFzlgeAI% z-JelL07*U{_atqh{CzNZd)|nr5XaN}?8CEAu-BuM*H;eky7nZ01=mA~``FhICDVaA zi{TSc*wb9o<yDC*TloGH6-v5yLfUtDCU7DV?4sqVkzi2V$NoGaO;3#|$^xYA&AY0E zq57^;=T&`T#pexb3()5cEkK{QzI%s8_%TS(K+r^uMz&)+KRal42TVp{2%YR!2}XP; z-oh>~9@04t*U?kYP%jSFo$I1R>0C?VE_Oe_p@t4WIQtj*NrN;FlQt}evCkjKk-wE| ze<i-h`otW}53nW?8J$BmFvD=)2_F0sxsm%A9H{?xE5TG~7ISJ!4W=~F-4YE+wvVtU z5e?1ZWJ-%_J0GCH4J|S{gRqiPXR$Wc@;$;K`ARnRF1A0`6;->s!?ExKym(MPM^k!K zzlHTtRlSWuOo?i9IDdK;*{B|xL1cHVWe&E#l#1%gZS0Ne+6>xaiZoYJZjS2e3}Ool zo}ktRK{rCexAf!rqcLR;6EadkuOi>a6MXOCdFthvImC1E9MApp%t4ybJIs<YIa&H} z02!hqIL;fv5RPF4S)3;t=SAQW=fM@6#49+(#x#T*$m2Z}a1$@!7DxIFPUBO&h<oJv zoU`#;oWYM6#V<IEUpcaVr>;MlcUk>Yen#rqVs3DmCsNR^-%#SY3DCNqsjW==6ZioY zzA4y^Z^)^#OFczRFY`^M)t{h>8f)hOX5nI*HSh|D)>S^kv~d*INTuUdYBga*#k_11 z8v0mlLPL&!EUtgBM-X-BfxpqIAteIq+UHq`%LoG$#oJ50G;h*Sm4bKd9O({yol=5_ zW)Y2rHg)AT?wZ4EEU#U6ZUn`qsPf_bAEJ?tcDeveusu%F<subL@R(foLbJtd#ydQx xNW^2~hh{A`OZNhvD^UdJ*;`Z^eVzaE$|u?a+<cQP0iLS2`73W*DSqF9{x4I|@bv%y literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.ecore b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.ecore new file mode 100755 index 0000000..94da829 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.ecore @@ -0,0 +1,270 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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:///org/isistan/flabot/executionstatemapping/model.ecore" nsPrefix="org.isistan.flabot.executionstatemapping.model.model"> + <eClassifiers xsi:type="ecore:EClass" name="ExecutionStateMappingFileModel"> + <eStructuralFeatures xsi:type="ecore:EReference" name="stateContainersTree" eType="#//semantic/TreeStructuredElement" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="methodExecutionConditionsTree" + eType="#//semantic/MappedTreeStructuredElement" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="generalExecutionConditionsTree" + eType="#//semantic/TreeStructuredElement" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="stateDiagramsList" upperBound="-1" + eType="#//visual/StateDiagram" containment="true"/> + </eClassifiers> + <eSubpackages name="visual" nsURI="http:///org/isistan/flabot/executionstatemapping/model.ecore#//visual" + nsPrefix="org.isistan.flabot.executionstatemapping.model.visual"> + <eClassifiers xsi:type="ecore:EClass" name="StateDiagram" eSuperTypes="../../../../../../org.isistan.flabot/src/org/isistan/flabot/editormodel.ecore#//Diagram"> + <eStructuralFeatures xsi:type="ecore:EReference" name="semanticModel" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> + </eClassifiers> + </eSubpackages> + <eSubpackages name="semantic" nsURI="http:///org/isistan/flabot/executionstatemapping/model.ecore#//semantic" + nsPrefix="org.isistan.flabot.executionstatemapping.model.semantic"> + <eClassifiers xsi:type="ecore:EClass" name="NamedElement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + defaultValueLiteral=""/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ExecutionCondition" eSuperTypes="#//semantic/TreeStructuredElement #//prolog/PrologElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1" + eType="#//semantic/FieldEvaluationCondition" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" + eType="#//semantic/ParameterEvaluationCondition" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="returnedValue" eType="#//semantic/ReturnedValueEvaluationCondition" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="internalMethodCalls" + upperBound="-1" eType="#//semantic/ExecutionCondition" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="#//semantic/ScopeEvaluationCondition" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="exception" eType="#//semantic/ExceptionEvaluationCondition" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="patternMapping" eType="ecore:EClass ../../../../../../org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mappingmodel.ecore#//PatternMapping" + containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceOfClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="ConditionValue"> + <eLiterals name="EQUAL"/> + <eLiterals name="NOT_EQUAL" value="1"/> + <eLiterals name="GREATER" value="2"/> + <eLiterals name="GREATER_EQUAL" value="3"/> + <eLiterals name="LOWER" value="4"/> + <eLiterals name="LOWER_EQUAL" value="5"/> + <eLiterals name="IS_NULL" value="6"/> + <eLiterals name="NOT_NULL" value="7"/> + <eLiterals name="CONTAINS" value="8"/> + <eLiterals name="NOT_CONTAINS" value="9" literal=""/> + <eLiterals name="IS_CLASS" value="10" literal="CLASS_OF"/> + <eLiterals name="NOT_IS_CLASS" value="11"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EvaluationCondition" abstract="true"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="condition" eType="#//semantic/ConditionValue"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ExceptionEvaluationCondition" eSuperTypes="#//semantic/EvaluationCondition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkAnyException" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ScopeEvaluationCondition" eSuperTypes="#//semantic/EvaluationCondition"/> + <eClassifiers xsi:type="ecore:EClass" name="FieldEvaluationCondition" eSuperTypes="#//semantic/EvaluationCondition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fieldName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ParameterEvaluationCondition" eSuperTypes="#//semantic/EvaluationCondition"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterPosition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="fieldEvaluationConditions" + upperBound="-1" eType="#//semantic/FieldEvaluationCondition" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ReturnedValueEvaluationCondition" + eSuperTypes="#//semantic/EvaluationCondition"/> + <eClassifiers xsi:type="ecore:EClass" name="StateContainer" eSuperTypes="#//semantic/TreeStructuredElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1" + eType="#//semantic/State" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="inicialStates" upperBound="-1" + eType="#//semantic/State"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="finalStates" upperBound="-1" + eType="#//semantic/State"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preFilters" upperBound="-1" + eType="#//semantic/ExecutionCondition"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="transitionConditions" + upperBound="-1" eType="#//semantic/TransitionCondition" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultState" eType="#//semantic/ExecutionStateValue" + defaultValueLiteral="NotExecuted"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="exceptionState" eType="#//semantic/ExecutionStateValue" + defaultValueLiteral="NONE"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//semantic/NamedElement #//semantic/NotedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="sourceTransitionConditions" + upperBound="-1" eType="#//semantic/TransitionCondition" eOpposite="#//semantic/TransitionCondition/sourceState"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="targetTransitionConditions" + upperBound="-1" eType="#//semantic/TransitionCondition" eOpposite="#//semantic/TransitionCondition/targetState"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="stateType" eType="#//semantic/StateType"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//semantic/State"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionState" eType="#//semantic/ExecutionStateValue"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TransitionCondition" eSuperTypes="#//semantic/NotedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="sourceState" eType="#//semantic/State" + eOpposite="#//semantic/State/sourceTransitionConditions"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="targetState" eType="#//semantic/State" + eOpposite="#//semantic/State/targetTransitionConditions"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="executionCondition" eType="#//semantic/ExecutionCondition"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EStringToTreeStructuredElement" instanceClassName="java.util.Map$Entry"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + transient="true" defaultValueLiteral=""/> + <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//semantic/TreeStructuredElement" + transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TreeStructuredElement" eSuperTypes="#//semantic/NamedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="treeStructuredElements" + upperBound="-1" eType="#//semantic/TreeStructuredElement" transient="true" + eOpposite="#//semantic/TreeStructuredElement/parent"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//semantic/TreeStructuredElement" + transient="true" eOpposite="#//semantic/TreeStructuredElement/treeStructuredElements"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//semantic/TreeType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="persistentList" upperBound="-1" + eType="#//semantic/TreeStructuredElement" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="MappedTreeStructuredElement" eSuperTypes="#//semantic/TreeStructuredElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="treeStructuredElementMap" + upperBound="-1" eType="#//semantic/EStringToTreeStructuredElement" transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="TreeType"> + <eLiterals name="CONTAINER_TYPE"/> + <eLiterals name="PROJECT_TYPE" value="1"/> + <eLiterals name="PACKAGE_ROOT_TYPE" value="2"/> + <eLiterals name="PACKAGE_TYPE" value="3"/> + <eLiterals name="CLASS_TYPE" value="4"/> + <eLiterals name="EXECUTION_CONDITION_TYPE" value="5"/> + <eLiterals name="STATE_DIAGRAM_TYPE" value="6"/> + <eLiterals name="FOLDER_STATE_DIAGRAM_TYPE" value="7"/> + <eLiterals name="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE" value="8"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="StateType"> + <eLiterals name="INITIAL"/> + <eLiterals name="NORMAL" value="1"/> + <eLiterals name="FINAL" value="2"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="EventType"> + <eLiterals name="AND_EVENT"/> + <eLiterals name="OR_EVENT" value="1"/> + <eLiterals name="SINGLE_EVENT" value="2"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AbstractExpression" abstract="true" + eSuperTypes="#//prolog/PrologElement #//semantic/VisitedExpression #//prolog/VisitedExpressionProlog"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" eType="#//semantic/EventType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="parentExpression" eType="#//semantic/AbstractExpression"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNot" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="BlockExpression" abstract="true" eSuperTypes="#//semantic/AbstractExpression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="expressionList" upperBound="-1" + eType="#//semantic/AbstractExpression" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AndExpression" eSuperTypes="#//semantic/BlockExpression"/> + <eClassifiers xsi:type="ecore:EClass" name="OrExpression" eSuperTypes="#//semantic/BlockExpression"/> + <eClassifiers xsi:type="ecore:EClass" name="SingleExpression" eSuperTypes="#//semantic/AbstractExpression"> + <eStructuralFeatures xsi:type="ecore:EReference" name="executionCondition" eType="#//semantic/ExecutionCondition"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SimpleExpressionExecutionCondition" + eSuperTypes="#//semantic/NamedElement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionState" eType="#//semantic/ExecutionStateValue"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//semantic/AbstractExpression" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="ExecutionStateValue"> + <eLiterals name="Faulty"/> + <eLiterals name="Executed" value="1"/> + <eLiterals name="NotExecuted" value="2"/> + <eLiterals name="NONE" value="4"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EEnum" name="ScopeFilterType"> + <eLiterals name="ARGUMENTS_SCOPE"/> + <eLiterals name="FIELDS_SCOPE" value="1"/> + <eLiterals name="RETURNVALUE_SCOPE" value="3"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="NotedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="notes" upperBound="-1" + eType="ecore:EClass ../../../../../../org.isistan.flabot/src/org/isistan/flabot/coremodel.ecore#//Note"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisitedExpression" abstract="true" + interface="true"> + <eOperations name="accept"> + <eParameters name="visitor" eType="#//semantic/VisitorExpression"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisitorExpression" abstract="true" + interface="true"> + <eOperations name="visit"> + <eParameters name="expression" eType="#//semantic/AndExpression"/> + </eOperations> + <eOperations name="visit"> + <eParameters name="expression" eType="#//semantic/OrExpression"/> + </eOperations> + <eOperations name="visit"> + <eParameters name="expression" eType="#//semantic/SingleExpression"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SimpleExecutionConditionConfiguration"> + <eStructuralFeatures xsi:type="ecore:EReference" name="simpleExpressionExecutionConditions" + upperBound="-1" eType="#//semantic/SimpleExpressionExecutionCondition" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionConditionNotVerifiedState" + eType="#//semantic/ExecutionStateValue" defaultValueLiteral="NONE"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="exceptionState" eType="#//semantic/ExecutionStateValue" + defaultValueLiteral="NONE"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="preFilters" upperBound="-1" + eType="#//semantic/ExecutionCondition"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="useDefaultConfiguration" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="useCustomConfiguration" + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> + </eClassifiers> + </eSubpackages> + <eSubpackages name="prolog" nsURI="http:///org/isistan/flabot/executionstatemapping/model.ecore#//prolog" + nsPrefix="org.isistan.flabot.executionstatemapping.model.prolog"> + <eClassifiers xsi:type="ecore:EClass" name="PrologElement" abstract="true" interface="true"> + <eOperations name="setPredicateFunctor"> + <eParameters name="functor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </eOperations> + <eOperations name="resetPredicateName"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="predicateName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" + changeable="false" transient="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="TagProvider" abstract="true" interface="true"> + <eOperations name="getPreFilterInitialTag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eOperations name="getPreFilterCommonTag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eOperations name="getExecutionStateCommonTag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="executionState" eType="#//semantic/ExecutionStateValue"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="PrologCodeFactory" eSuperTypes="#//prolog/VisitorExpressionProlog"> + <eOperations name="getPrologCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="stateContainer" eType="#//semantic/StateContainer"/> + <eParameters name="tagProvider" eType="#//prolog/TagProvider"/> + </eOperations> + <eOperations name="getPrologCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="simpleExecutionConditionConfiguration" eType="#//semantic/SimpleExecutionConditionConfiguration"/> + <eParameters name="tagProvider" eType="#//prolog/TagProvider"/> + </eOperations> + <eOperations name="getPrologCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters eType="#//semantic/ExecutionCondition"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisitedExpressionProlog" abstract="true" + interface="true"> + <eOperations name="accept" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="visitor" eType="#//prolog/VisitorExpressionProlog"/> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisitorExpressionProlog" abstract="true" + interface="true"> + <eOperations name="visit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="expression" eType="#//semantic/AndExpression"/> + </eOperations> + <eOperations name="visit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="expression" eType="#//semantic/OrExpression"/> + </eOperations> + <eOperations name="visit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> + <eParameters name="expression" eType="#//semantic/SingleExpression"/> + </eOperations> + </eClassifiers> + </eSubpackages> +</ecore:EPackage> diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.genmodel b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.genmodel new file mode 100755 index 0000000..9bd7f3f --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model.genmodel @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" + 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="" + modelDirectory="/org.isistan.flabot.executionstatemapping/src" modelPluginID="org.isistan.flabot.executionstatemapping" + modelName="Model" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" + usedGenPackages="../../../../../../org.isistan.flabot/src/org/isistan/flabot/flabot.genmodel#//editormodel ../../../../../../org.isistan.flabot/src/org/isistan/flabot/flabot.genmodel#//coremodel ../../../../../../org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapping.genmodel#//mappingmodel"> + <foreignModel>model.ecore</foreignModel> + <genPackages prefix="Model" basePackage="org.isistan.flabot.executionstatemapping" + disposableProviderFactory="true" ecorePackage="model.ecore#/"> + <genClasses ecoreClass="model.ecore#//ExecutionStateMappingFileModel"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/stateContainersTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/methodExecutionConditionsTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/generalExecutionConditionsTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/stateDiagramsList"/> + </genClasses> + <nestedGenPackages prefix="Visual" basePackage="org.isistan.flabot.executionstatemapping.model" + disposableProviderFactory="true" ecorePackage="model.ecore#//visual"> + <genClasses ecoreClass="model.ecore#//visual/StateDiagram"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//visual/StateDiagram/semanticModel"/> + </genClasses> + </nestedGenPackages> + <nestedGenPackages prefix="Semantic" basePackage="org.isistan.flabot.executionstatemapping.model" + disposableProviderFactory="true" ecorePackage="model.ecore#//semantic"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ConditionValue"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/GREATER"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/GREATER_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/LOWER"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/LOWER_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/IS_NULL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_NULL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/CONTAINS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_CONTAINS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/IS_CLASS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_IS_CLASS"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/TreeType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/CONTAINER_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PROJECT_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PACKAGE_ROOT_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PACKAGE_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/CLASS_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/EXECUTION_CONDITION_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/STATE_DIAGRAM_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/FOLDER_STATE_DIAGRAM_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/StateType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/INITIAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/NORMAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/FINAL"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/EventType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/AND_EVENT"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/OR_EVENT"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/SINGLE_EVENT"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ExecutionStateValue"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/Faulty"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/Executed"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/NotExecuted"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/NONE"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ScopeFilterType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/ARGUMENTS_SCOPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/FIELDS_SCOPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/RETURNVALUE_SCOPE"/> + </genEnums> + <genClasses ecoreClass="model.ecore#//semantic/NamedElement"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/NamedElement/name"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ExecutionCondition"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/fields"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/parameters"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/returnedValue"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/internalMethodCalls"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/scope"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/exception"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/patternMapping"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/ExecutionCondition/instanceOfClass"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/EvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EvaluationCondition/value"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EvaluationCondition/condition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ExceptionEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/ExceptionEvaluationCondition/checkAnyException"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ScopeEvaluationCondition"/> + <genClasses ecoreClass="model.ecore#//semantic/FieldEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/FieldEvaluationCondition/fieldName"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ParameterEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/ParameterEvaluationCondition/parameterPosition"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ParameterEvaluationCondition/fieldEvaluationConditions"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ReturnedValueEvaluationCondition"/> + <genClasses ecoreClass="model.ecore#//semantic/StateContainer"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/states"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/inicialStates"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/finalStates"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/preFilters"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/transitionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/StateContainer/defaultState"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/StateContainer/exceptionState"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/State"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/State/sourceTransitionConditions"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/State/targetTransitionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/State/stateType"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/FinalState"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/FinalState/executionState"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/TransitionCondition"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/sourceState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/targetState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/executionCondition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/EStringToTreeStructuredElement"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EStringToTreeStructuredElement/key"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/EStringToTreeStructuredElement/value"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/TreeStructuredElement"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/treeStructuredElements"/> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/parent"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/TreeStructuredElement/type"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/persistentList"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/MappedTreeStructuredElement"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/MappedTreeStructuredElement/treeStructuredElementMap"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/AbstractExpression"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/AbstractExpression/eventType"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/AbstractExpression/parentExpression"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/AbstractExpression/isNot"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/BlockExpression"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/BlockExpression/expressionList"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/AndExpression"/> + <genClasses ecoreClass="model.ecore#//semantic/OrExpression"/> + <genClasses ecoreClass="model.ecore#//semantic/SingleExpression"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SingleExpression/executionCondition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/SimpleExpressionExecutionCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExpressionExecutionCondition/executionState"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExpressionExecutionCondition/expression"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/NotedElement"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/NotedElement/notes"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/VisitedExpression"> + <genOperations ecoreOperation="model.ecore#//semantic/VisitedExpression/accept"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitedExpression/accept/visitor"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/VisitorExpression"> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit.1"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit.1/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit.2"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit.2/expression"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/SimpleExecutionConditionConfiguration"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExecutionConditionConfiguration/simpleExpressionExecutionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/executionConditionNotVerifiedState"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/exceptionState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExecutionConditionConfiguration/preFilters"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/useDefaultConfiguration"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/useCustomConfiguration"/> + </genClasses> + </nestedGenPackages> + <nestedGenPackages prefix="Prolog" basePackage="org.isistan.flabot.executionstatemapping.model" + disposableProviderFactory="true" ecorePackage="model.ecore#//prolog"> + <genClasses image="false" ecoreClass="model.ecore#//prolog/PrologElement"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//prolog/PrologElement/predicateName"/> + <genOperations ecoreOperation="model.ecore#//prolog/PrologElement/setPredicateFunctor"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologElement/setPredicateFunctor/functor"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologElement/setPredicateFunctor/parameters"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/PrologElement/resetPredicateName"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/TagProvider"> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getPreFilterInitialTag"/> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getPreFilterCommonTag"/> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getExecutionStateCommonTag"> + <genParameters ecoreParameter="model.ecore#//prolog/TagProvider/getExecutionStateCommonTag/executionState"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="model.ecore#//prolog/PrologCodeFactory"> + <genOperations ecoreOperation="model.ecore#//prolog/PrologCodeFactory/getPrologCode"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode/stateContainer"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode/tagProvider"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1/simpleExecutionConditionConfiguration"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1/tagProvider"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/PrologCodeFactory/getPrologCode.2"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode.2/@eParameters.0"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/VisitedExpressionProlog"> + <genOperations ecoreOperation="model.ecore#//prolog/VisitedExpressionProlog/accept"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitedExpressionProlog/accept/visitor"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/VisitorExpressionProlog"> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit.1"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit.1/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit.2"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit.2/expression"/> + </genOperations> + </genClasses> + </nestedGenPackages> + </genPackages> +</genmodel:GenModel> diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ExecutionStateMappingFileModel.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ExecutionStateMappingFileModel.class new file mode 100644 index 0000000000000000000000000000000000000000..c9b2eaab9da1fa50d392696e7bbe71ea27361c2a GIT binary patch literal 1016 zcmb_bO;5r=5S_)33Vxv?o=hOd1TJpk72`$G3&bc!y)Nxg7u#LZZi&CmgFnC@Wt=UA zcn}fw(9EW@vv1zadvEVAuK;iidk*9nv~}cj8OzuR#e0G1YQymv-NZ<(=%>L@3<gs9 zJk%ZrygANwY_2`ZUC032HtoP7gJNF{1rG$(Ty^{C8V8mc>{}po138G1W7wm!j*vG; zR~VFiH0hgXS{We~M)7Tg$l$tGZ_U|cOie2zU2b3Km?&{g5~0@&Fhpe<1Qt&LyQ%#% zR{f4ag{ZaBJZf(;JtFDJbi^Z)_kSR1mw?_hsuiL-1N`Clq`$+q)T>1O5^0$tn999M z9nQK_8mr@63O^EI+#<y?ILyZOSy!$OL#;RonAB>o(Z2H?=__GHz~Jd8H7E1RU?}56 z1Uyx6)??$8kP981L@ru~FgTdZ;7j)$S>upZ7%b4YL@ss6P7bVqwN)MpX<UW1G_J!& Y8aK0iG0ShkHdXIXbq-2&+D%X854oOH&;S4c literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..55d2bbe33a0d61687d10abbff615a0ee9119c2d6 GIT binary patch literal 784 zcmbtS%T59@6g>rGU_^QOMB~Z@#KcM5;v)tjApz7t*q8A_it`}DVDz($8{@(c@S}{k zBPO~rQJVDL_O?Ae?KyAnFRuWOuxlVDQ1ye6rKV~cO3xZPa^Qy+-IF~FmG5yeBv(!* z${Sg(e?yMd*0CY&&<`FABm{C}c_%GL@{Y^FnC#F%QeaQRlI^I;lq_<GJoW>!>hqHV zX=--5z4K13E^yLXfJ9Xwb<7ueDm)d4mn(gNM2%URSV7jns=&n`;gvi2`Oqd8GRPs% z(E1{QvvOr2(rE}3Gcb@6$hMS6otZnJpeF|o2^3nsEuFp$l%CIv`*uJqNBv8jt`?{L zDNaK<6e%Nc{dZ=+L-Ge_M-)czSJJ+fBWC#D_s;<s)9m`Qz$VRHAphM~huTr>Ay$+7 z68CNWQEb{c$23f?Ec5Juvu?&SGEXQx@-T)qjwWZIgd~bskE+_J8`y--TMP$2T8dV7 FJ^&l9>bd{` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage$Literals.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage$Literals.class new file mode 100644 index 0000000000000000000000000000000000000000..e3223860d5a3a3f0a46204751ac6cee9e46209db GIT binary patch literal 1400 zcmbtUO;giA7=D(oQi$@QqM#xmDku^K5gq)X(}bFtG-cYzc*|_VQiEy2B*F1-sV6-+ zUiIeDqeuUQ<GWiBFQts;u<x_U?(@7~dB6Vp_zA!g?&r|OV8ls757Hpbc%<)yydGz| zcq9D%EQlj|nTaOf+Y6$G-i)_JsF&rs$^BQnA!h9$6A2H~9C{drclm3shn$X9>bt_v z7-q~DX7RaeRUEJ87F^RS7dAI7r{rx|Hf<_~X){dP(gop%!CoqK(cB>%Cqg%iAy3ma zhKHS5yaWDX#c>OkV^(XPTQyDcpdEQt?1)4}z90ePBm!mAeO58Nqobr{STeRlE%WGG zyJ$VHWRiCU`#7G}lkl_@469J87RoixwrVaz|0Bv`6l6~ry65J%7<!6St~`b@n!^ag z+J6*V!x@}q$P3FMZKp`deXNrEkIl0-NN$a3IFAbq(+!cChh0~bT~}^(-9``!)p86| zbMx(r+3J)$7$!9IqEAv^(r_7*3@aU}JtbI-ql^cUNK!Wuf?>A3+)?jH$tevv^h?PZ z4OgY))6SA*k-dz!|Ab89+kyJyq_||grXk;Ay`f=FvaWY#EeZ0UhsV&~)G*MZUC?k_ z(k^$VRrxUj-bi>ewP{pH2XzgD=w}$RDQV7rvn~>s*F(zOs2%$}+~P?f_XjTrYVm&J z3t3Nwk-w+NqMREHniY}rs*)n5Rz939eT>AqX=3$aT-KJ*xJ<aRlp<v*CS}PZvUD37 zPLVxLyO6AW9=yZQ2b^Pgk8uSrN_a)VX$fZ)ye{Fqg101Gd`ow`aEI0jrT&HD{)RDp g$25Lm0Y9;d&$z2j$&*V8E#n^90n(<)h?TzlZwv^CUH||9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/ModelPackage.class new file mode 100644 index 0000000000000000000000000000000000000000..2e8e9a959c86fae8a65b465715081f906834a204 GIT binary patch literal 1887 zcmbtVTT|0O6h2!nX={;-SG*t~DtKv-iwH$A)21~uY1(O0hPTW%EG3vGog{ViXF0w& zKKKLtQI03u0L1}IwKK`tZ?oq+-<~~Z`}5cL9{{id+X5sA<UGGA+JPN})D;gL+VDb= zePUK8v^^ImL)N10w(T~>mbcFwu^hdt)cQc1On_km6G!wT6&;EzDvcv%g#wHcn2Bha z<=E|jiL7;iW6x)z9D5QNVVYEy2~4S{{(9(Rpd5j*Jdf>$yVU8hBwWGuJUjt`X}Vdj zDM`3WVEZr(+gqY24z`Ib7egQ&aaC(_QQ1qvB!M-g$;P?Jc5{(EHy2qhru!z4Vv434 zl9tEqyio^}awea+^Lcqs&esj4qM1l($YxopRu!#e78Mmir68*Wh%$sH2n06!uQp?z zd_^-PMU!i~Y1Cv?TDXjFSvKBR3g+ojq$wzoye>_ogAkBU7hI&;G)po@m(;(LVMT6S zhO8T=ph%^fRMt&Z(TzyU5P{`OxEE!~sMlmOU#V-{59>I&jn(Sf;adVji%Yu%hVxkJ zX;^^A0zATe4S2A2t9`ax6r9Mw6Iev*C=h|2#ijo$mlT%3(+o_(H3H+R?J}*?YB1lR z4TnXY<yq9(rM?~Ecyg}ELixD8^{Bne-S#fp4&%K|U^bR@PW$E^8U$FT>wRfVPL6#X zQWWL~hR;yb!o}1zcEEh*S`6uT`qP(Lc<Ak)Yy|`D+x*Jv271?@p~O%ZbuOe>?N7n? zSg>i+r>#K6I~30Wy?7pr)CxWS^S_^ROn~V~>t4sVSad`LCOLb2k7lFGlR!psaWDLE zSRlaG;MLkox}e%&l$ijV;&_NxI`#!VBant^5Fm-;6n0#K<4g}8!|&rgcmgq&D6XA` z>u}@5?<V3~f8g6acpAUo>A`mq-|NBm5zqAC2VB)G%wdFijP?v|^b@|p!>_RP1&0Zo z1QeXWcMe98?m3^0{>NTG79uOcGPf^dyAs>g*sj4k_j$$N8}J%!8bfX3lN(L_279Lx A+yDRo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ExecutionStateMappingFileModelImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ExecutionStateMappingFileModelImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..75a742b1cb2654d9acd03cfd794983045d3ed609 GIT binary patch literal 11301 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ce53513fb7bbc17dab7a0e98827b26622e305733 GIT binary patch literal 2887 zcmbtWSyS6q7(JK8vW<Y&EFlS{E}>;>P#fqLLkNp$9hMNFZs<mZxfl^y_Q-N3dF(^~ zOrIzZFex)_p8C)q)#<siyo7BA;u+~Ky7zqB`M%Hp{`co!0PZ2Lp+R6i?`93FXcaxv zF?MZpJMS6th0K&ZEAMdAlR2|cu$-)s%kN0ruyO_4SXR>oGvnpmmnm*&Xc8DyNHSwv zg`zZMZkO}CE6W#>ZyXK@B(5m7UZOyg<yfA;^w99qTi_%JG)GG!XhEw6{X!Fxt7hhz znUw=;GD}CfFLkt`T_BuVS>KphnM(?k6*+7DnX8E~-W8bK^Sr`+!!WL<{+RF57V6uf zqZ3^MEm`SRoGUOfw6t$NHx1ilyw*LJVM|=7SrC#$1UGO~Lyy4F`4KGGrL5%`Nfpjj zf3EDmB{1T9|E$qxFC?NA(yQY=^a(WD`K&-!y{?b9_hrUQ45y<Ii0k+O{Q{v$73K%L zFf^RjFd)!Tvo84}BMXY70_{tdBUehfZRu{9+qM*lE#)(&oi<%dt%J>WZ%@8Sqp7!K zPej&~=&JL4RW~xMb=@O*md%2%MHG#QlXl*oRTNmbs{C`4k3vEjS29yoMqCh*<eY65 zix-n22tW(#!i0u#f!_1EP{z^m89t}uNj@Lf+O?#cn)f4>QX%|O$5*&7Fi=)3St%%V zh9~I^RZtczyBrUJCs$A8%OMjQCI$LybV=E^%$oL$n=R#}<5eT1f&98rJ6BGc*^*`N zNH>g!%&?6;8P6#1#RsF9!mMKF+$sK6axJYKnAEX=uLU%^XT{7hES<FPv<#-i6jC}K zVUYo(OQf?SaJN1yDyV1f2Kup<EDPKoj9bOHllS6g{JCjcJ7sPCm?#;Kb*w6N!d|`% z7)1iJlqvn#3G`jg84ceGq_0+}f~tRM*j3|*VngLaU$x_0K#-@`%9P7FqU1Ao6p8(^ z5ES|Ax0L{Zffe{s$4~e<sLxg8{($FaOJ=1{khs5GvpZI$L}^iNF)s_Q%rNc9uA6Hm z$Fp)W&4$myIOC8trr+oVy6ae0yTk6Vg<Tz4><L6<t>Im-c2-;@5M9rg+>BI3fVos( zmsMQGRJI7{DaVnnPg7ackRwwrC`(m)!<8P*EM-07)69Q6Aw-}d%vFS|U(vuBFmQ-y z?44JLHQ+Ux7f1d<>&U_4A-YG7aQg&e^BC_R_$NEqZSN56L*BYYG!VTF{fKe56Ca@q zgXqODXFxa6+jwRWLtJ%H?l49;8|A~lTpJqhXar@83)C6ssMKj5ImX9-aMIw*iE;$S z(S!*fS1%vJU5s&Gz`!SbD|>#Ujq2?5=qr3G@H?k$x3yo4_Iz=0g2d(trZ!{K$C%+s zmg^&Y6I<fz2rI{U@;7gkO>E-`mX01gV9S13HH#tw@oKh)bt<6DYC=O#6X&e?fl9Mf zNU0P(!3N!!UK%~%s@||i498*}ax_2=^VD~EN*sYrd>`Q5^VdL_ru^_4TQ#&0zkp># zxxVb8aDWtn$@`7i<`*EtN1ff_sGK(7-=pq_kf+hMd^Dwh11$f&k7pcJX1BnG6N>x~ Dg-{=Z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelPackageImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/impl/ModelPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cab77e15e54c289d6b7327fe6fb59f9005c09ee4 GIT binary patch literal 6556 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 Bi#`AV literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologCodeFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologCodeFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..bd72f36d3827ca1cf12280bac5ba814faf3c0f3c GIT binary patch literal 740 zcmcIiF-`+95L_p~K_C(pZ-53%v?-&6CJ3a9sB!K#)<!<t^7*3h8h$}R!2@^{Vhx9` zfF?l{_S$P}XLfep-d|n;;0lHr^aNbHpe5B*M`h*GsD+CXH&`^0oaJQ1N_kIK%gU8# zqz}$GE$=?Vm{U_#L>C@2*b{KNQfnoR;@`K66&5jr0|7U?LEJMdt~}ZJfOXAmzAyz0 zHO3BKz|;9`ON5%6vXKgzrv}H)Mnx9GXxloi7;~kW&zeduaWU&O$YWsPMgpGyz>q3$ zaPmD7=2}u34Ih@Io1oI=--ti#PW&h3-?bU!t_cNB$)JF<ZmzAbE|Z*WA_09~`|R94 X8!dxFNQTScsEq@D5pc|V4^BP+9nu2K literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4e5b1af8fd50d3f7d8734fd0000f5a1352a33a6f GIT binary patch literal 355 zcmZWlyG{c!5FF=#gYZ<KrRLILiIx&26@o~S=pAQsa%6i?J|E)SDEI(A3bB_I1f}q< zH9MZ!@%PW?7k~#`mKZ2JajLazU7JnRD{mH@HGPonvg0UVreK=J#aahmlGjaQ&$XUy z+Qd_!m`fZeT&>N!(cTF2b+INZ=#j#0FHhFHrX@{bC3jAwCtHfVswvMBEu9so7ZXU~ zrW!y0Y0YyI^GAj2c859bqRpHX?y7z6J~Dn&7$w?O*m@OJKN`-tOO~e2i~Z<dwEKP& f$)QllIh2npBx{Ld^qEgE-1JkN$wc8?>HrtN{`O`> literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a14d65c858ac08f6b5ddf8be0cb775b708829dc7 GIT binary patch literal 807 zcmb_a(MkeA6g{Kns#%&=mPOA>&_J(75TYT835xIIHZEhkJIlI8eOB}mJ@f&6RCH&R z$X9J)=FXhiIp^Lp_v`!P6Tl@-EhHG4I&`?2saYg^K5@lZM_fKjdmbt66BtQP1cCA$ z?&$~V@*vc%c6dJyZDB_`e6f&XC{D$b;I5!Q@5fVVM;6iyXNF$dt_o(7OK(DJ9ZKF> z-ekziPH!;0=`~vnt?oZ0(_qM4k)W@lYldX4K4M5UDfb+9P_VGeu%?Xi0(Z6W4k39I zu}2a{km0sgUz2^s(MA>w<vc887z$nG%ii1@%Wx>hu4E{6wJqF{2$k6{!HOM9daebJ zDfrjpyA6~2Lq_fv9T_b|`oew`4&}3H)k`8G&kgiEv}IexWv+N~VH%8DiXN557L8-$ z5A|}A<}7lAY}4+XqWP?M<lj(wrDX#9H0LM+RishIL5!NdJwyd29uXbrYBfGN`2p8F B^pgMp literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage$Literals.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage$Literals.class new file mode 100644 index 0000000000000000000000000000000000000000..d61cc1a7513bb053faaba45bcb62a188820a5cc4 GIT binary patch literal 1184 zcmb_bT~8B16g`93(lP=9eiXF=q83F~@dFiNQny>uq;#8h)96z(-44y-cDLEx5{$n} zebNVifd9xB<DDsJFz`knde82jd*;kNGe3WS{{dhF+i8q3RKuuec(E5JA~5!R(Fqen z9!htZcws;<6WJGoffw|Qe%O`1F^EDx>=|`k>cagXdUB=eB{C9zoW?lA%)U4fhA*ha z?(9o9VVJ5n?5e%fwyM^yRdX2fdRgiE-XNBS?C%-U4I^n-rZ3`niwGw>+U<J7Dpky) zW3_9=U5jD)EQMl{L|$i@NK)ZWafdqXR;6S$80L;dO}k{Z%SF?%8}Au%txB`vSf#f0 zjuvS)D|Suwkl*8PcH^{f6We4z@RBzS7YeH_hH;Z7l)+`pr7_E3p2K80=5d7~BP+G0 zQ>>Y^aqB!1+nOYs*Ep^tM}hTZGRo8PWnTsq*kWPztoe=-%7Ebp$3>)+(k+fWZc}Ri zE4Ay9?0PPpqMGPShLy8*|K+B%mpIaxP}+AmR+P&r(so3Tj2?Jh87a~|j?BnFfn!yX z=KmT{S(JsFgwaPueaMj=Q6F)vE9wGKTXgUf*|iP_k&I(H@S`!PhQ}O}qlOKRrzaZ1 z=(L9C92_Zz>8cmV+OXe|ks~@jZF;sEy25XX$WzZpFSE^X7`d|SX~v1`w5~1?9o|Y1 z$ViV{#tak3myFh+6GvA#g`5h2P)-d?SDJ^ev{_wg54w^ys-%KTn4&sOPoJo&pZNtd z-*A=TD;6}oso<i9%L?Ar@V<f%G+a~A(C~?Z&pwmP7+%nSo~(e4VUlG@avn=8k2O}n cCfmSU{KBSYD)vi_Ug0&>ELmX`_EswM2h1TZvj6}9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/PrologPackage.class new file mode 100644 index 0000000000000000000000000000000000000000..ffaaa6584880f5266eb3a9fec0d1b2d564ef0893 GIT binary patch literal 1881 zcmbtVTT|0O6h6zPH_Ju9OA!$S1w<P~@dAj}bjxI>B%L;N@F}xxml{lyPLeYCvm9R> zAN&FSD95vDfV9>JurtZoZ}*&Uzdbo;`|J0Qp8&7{AL1}XKz7`wWO}COGg~^cSk3Vz ze#+||-*jx8^m&W5+os)=T26yoQrmSbrzw>JQ)2bctjXgrLSXWkoiNE_=&99?dEJjg zjKI90=XJ|$dtBnJBOE&}muMJCV3e!5eM(@ecoARmUEFY+z?d9pu>C5tIy?c_2*kPq z2*kNsF%HT~0>%l@Prl#Yk|gPJr^yCtmZb1h1X6;uRHg;xFag&IY$9Ja%ucqOo$SEu zWP|Kv&%`CUqE_^rD&xs$@p7UDrWlhkUMg!vZO@=Zx=&S|08xhVLjoqbcf}AV$SZPA zr$#rqbA1j4n$r);)R46URTm_LKw8i3VW3u3^0Z7~HVTcN00Pq?pRDDnQOL=<R{khx zu%0qirK0FGZ_q<jQK=}JDp*mta2P&w(8_}yu#i>)hCvSfG8PBO==bTe4bs!^nb^TH zwM~DQ!0_r?mB5IM6`z7NSdYUa0$2QuW~*)Wwu^!@X?P4za0{^^fxXqWE3)_W;dT;> zK}y3EOcR(Wnl@KEtr~ZAR<pQhF{jR~DsxSN!^z1e_q!z2;w^5YnuSo!fVPz_=6P6) z^Zijq$>j~Rj@O0CTDaHpzd3R~ws)=Lb5YaCqq8OoI58XCB`|YNERtVfb>DHnU^U`& z75mWV4SL#kx#!{S)Ri4sblkreFV1&P_P^N<iBNv3;&j|PFPK4kd%i_hTxZx-ifwZ@ zNE`R!@cznW)I+{p#7wx%@(3i(hIrXx;o>t26Oe&8BygM*O$jN)=?ES}JQ2Z@h_PnS zHv=<p<2>#r;#+<Ab_8c|eYOwZiC_^w7r}QC&qwe*#0wF;i1>a4i}<BJyxfBmc!~$` z5EZYW`gOG87yk~c-yr)HhePlb-zl^J+Ym!J&w^R;kF^2MLD(0t8Q7O0eiho+p?wqD XEo2akJHh)c?4nKKmhbS%#gcyjC?@WT literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/TagProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/TagProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..496ec3a2d4f6dea8a033b0dc0a8a2986e4a83498 GIT binary patch literal 382 zcmb7=!Ab)`42J({wX4;G2le0+)QbaNdlFF)3Kmwpr`tG8nVnf?v&Cog-~;$jVpbGa z@Zu$b<WKm&|Ly(d6~HA93ych|Qg+t2z7>l0DbOm3<!7!s@hR$1xTdD@(b+n!IoKwr zkeq!Wx6Enl*PILN7#wYAOE!?|?pGVG#NgDiEHmHwAe`@_7f(UY431~#iywI@S-;N> zPKNsHRM#nf%FlFu^X;hY9SxQ=Tl^ECRiG%ovcG>mQs{X8r?F|7x?J@jte^w(i=JX) cU@+E1fw2a$iwXKbim$$hecc#LwT^J`0V`Z~wg3PC literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitedExpressionProlog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitedExpressionProlog.class new file mode 100644 index 0000000000000000000000000000000000000000..cc93c98343078e28101216280b1cf67901587d34 GIT binary patch literal 337 zcmbtQu}VWh5S)#gr%B@nXs?Y6wy9&45FucHxojR6?!7(kE|PDv@B{oP$v!Ov!OCKn zVVGfO_T%&I9l#@|4Mv2e=9WVVrMjMX(QUM{9K|1M(B8-@ol7b7EqA(=$SG^omS4<L zWjjBnETx$A`HOFGPPpE?SI5zrXSLajuMNh8+u@M-7*Y|IZf97t@cdgs7(4GJRf4}; z{3Da*-<f9ji=RO2nyt%>Fj?y%dwB{`2seM!c^HhAop5GzVQ(Yr*WhwMxUxOM<OEa` BY?S~2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitorExpressionProlog.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/VisitorExpressionProlog.class new file mode 100644 index 0000000000000000000000000000000000000000..88c6ee0f9c4b4824dfe17b6f57968f5efc858052 GIT binary patch literal 534 zcmbV}!Ae6h5JhiVYqTo(0d}t&18%!=QCF1;54un&r0MjLl9z-eE&VnZet;h(&QqZ- z6tRmW!(`^>Oz!L3^9z6*oJn*9?nA1T%{CY9)zayCD2ldZ*2M<T$wG~e(fV37VL?vC z6kMp)lv_$jqisx-GnYPm<RuOS&R2S)mDAianXkwci9>-w`w$stV<tt-lH-s_jXp~R zdYe{K;OTPwPo&I<zF4Df{bC0+yc+K~s*-qwp}^z*>XUEN{wzM*U%X;GM}N`xtFTUn p?yMt$i(fprZpY>i7wGcpvDaNTMdAppITFWTXP<8bPI&L&^d0XIuz~;p literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/EventTagProviderImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/EventTagProviderImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ff5ff6436cac5754b76dab3eb7875bd4e658da5a GIT binary patch literal 1665 zcmb_c>rN9v6#k}^b}1{D0!2^|ywGjAtfJzjcmXU%K)^tn_;b1)>yqtGv)vNk!dKBm zA<@JK@S%)nwk@=!8X>0XOlQuV^L^)>@AT)dZ$AJm;$;*eh8^h@O}k=OeD0d>9G;iH zDLx3R>f6$#OJ9_Dxoo>dvm^_`G0UEGBzcs|j+s3auD{QVyPiC>3&MLvmr;Zn1`hZk zHyuu1JNW})`B6j|RxSqB1i&y<_QbmF_yp$KzRex7GQ_t|0rz~5*k<VR<ms9$m82WI z96iZxPvzERi7eX`@hQWIaW+~i#}Hnl0>sdTejU9SVCXVZxhUccqwVOcRokI@Xc%Vb z7ph9T4cbNwgGi_dy83ll#~8*LB2;AI78vF`p`RgC2gqo+$`DE|s8EwSu3?Hn^JT3D z48un1jBBO`4A*r;p=r3ukZ9$%Vp*c>R}2j^4Bc~7w3Ko%bo3~PG(&IT5R}hQra2uk zXq4!d?TYPcDKETzo_B<5i?q0t<DRX~^~<pT-mWmb*}9k-{wO@v@qpQybPFU6>2C89 zkw_H9Y4w{$Gtz8m62ds$XB!jHt`csXmv@B*$n|Z@Y>k=YPE}+&v`51OYUx}uhDXRm z@wjE0YK_&gj3=ZSOS%^K8D{=TGnp8kVKR#644dby{oiuXuu6QBDTcn**<yJ8Uu(q> z+mlt#Qu9xJ9m{t3_gPSrh-p$~7k#^F4Jo11|6NGwH`qz6w1>$~Gf3+tI(?*bi1y9& zG5XTqG59t<bc~VNBaFtc&~k){ub8eGZZr(H8ir)ekg6Mk$FrXUuz6Y&L<Hy~hyhH{ zpe`Yf4Gdu+um!L%ahpy=0C$KUqt7Cy>g3Ge40NZzVEPk13PFX9(6tJ#!l*pxK|Kt^ z-Hy)5cIWYq&i8P?j=VuoieG||XX8spct{m_N?Uw|miB0qO&KLlGD=_#FM<rR6e)!D E-=}W0x&QzG literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/GeneralLogFilterTagProvider.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/GeneralLogFilterTagProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..21e865106da6bd69075ae8b99694261cd60e48ae GIT binary patch literal 1094 zcmb_b-)j>=5dJ1flQd0#B(~Aks`aUfU=Msv5lX2doVE}R`nb8Q=a#+OV{cRXXX#Tx zLErtO#JNjMV+e}HhuxW7=9~Fu_S^42K7R%91bY<}2z_HiPo*k#BKF>EF)+@PmogYR zWn#W`G7?Fm;?RrCP--u+MjJ*%iT0k$SX!Zd6FyVgN&8xaXVzS(p|lm02pi|(LU>v* z_;heC16M(raCEbZGsy|%LlrCclu&GU`h?OkbE~0<l{zY@64rec%U7dlkdYc_Noe{e z5V|j{%FdI^lKY@i!dw4ll>Rn^E}<1lcV^{yJ};QF5}G?9Y_>c8^>}*D@`$@t+#)o> z@mQy@1H#s9nqw11Cgv<vv<SQN;YUFr6PLC*phMVU<jJr1>}Bscg%d>kUpr4(4zW{# z_j}I1&?DJh&`||Dg#GJA-^A%CNsM)Jc$%<yGL@ZNW`x<PVH+!iwW<DczJ!<ml_jCp zGb0;hkHW&(`-6%PGU9j$))}uQ{x&7HtT5h}`Q))Bwo8w$Q2WGA0d?NX`DGca?AONu zSi?G>_)nn0dj@{YHUk%%&5vwmq02MS;uN~M0J=2~U0n#hjXRU7hg_(@<*Hw>{q72P Zzs;3y<oMP&W>T7?v5R{--}`y|gP#-mB{2X1 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologCodeFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologCodeFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7bd6bcb59497c71e8af474ccea987bddadde5732 GIT binary patch literal 26496 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 BmE!;a literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..71515d68c9b2e8d0dbdecc8250f7bf8afbabc761 GIT binary patch literal 2919 zcmb_eSyS6q7(JIwwh@GwH3>~!pk-@N8|W5?5FjRXAcO*?r5hFIVnk%gBg>iOu@C(- zeWE;sNtkK#)QA44PS2HOY_`q>`XK8{zW02~Ip6o`?|)wZ0pK=V4Rrzwu9r8gl2!6e z$Jn;bP1iT%bD1mqmh14PFAHX|XgPVK;BHCVD0;5#@<gF%8%x1@&dm9)_ae(T8X5!! z6{5`9R<R@vS=i><^<;P=b8K^y!0g4$AG0jbU^$jA@Nj7Og5ey)OA~OG!N$>y77hBj zA!U}#+*30z2bN`?3G`m*XvGzQSaxw`b$W3&BM>@tIvb~srenA&klFG5;vK^<-YzX; zL5lm0h@ECS-maqqodV5y=~uEYFfp{SYd$j#+a#eYzDHiu=eihim5!qu*EIA944qAF z(JtpL$H*w2mx8rQ#C3s@fR5AApFWUI&`7V2cW_gno(dD_to8ND=B~{7>EX2m1X4QQ zL!Us?UB&x79vB*4(=Z^=UX3pEJSU4v!~$0qEJrSu3!BngH8*W3kX&$croCo*mU@m} zw)s2qm=MUv|D>n5ta{T~L&1@g)LhGoPdPm{i-9`{)FVY9`a4!hVDW-}oL#0g)|B%k zYg=Gy=p2qRv$k0(ov)6Fk!E(12@T@{y=RLf#L@8yJ|z=WV}NUIThhxu2&l^{PCwW2 z1?~uRhmM6js49$9C@_D?>aGDxYq%@WR~1Xvwq@S5r@ef+ARYgR77bKacXeM_GBah% z-jZGn_gP=7J2I71sY(qdFo_wZ&Dj&`tyJ2Y%2r0l93Bd2%*CQvAO{_c?4%7A#3Zsh z9$}tru?0(KOW;;*O;k`%osIlsOL;7CV=!fvQjY7V%+xc}wzfiV0|JzdCpwmtJ2Br4 z0TW1LhBjqDl)%mZ7Knzg1(x2fU!5^UYS>YeB!N{W|EtAd#MJyLuzdMisKHalSPyL^ zBh*~f(=R_wA|Mhe@Pm#Y@l(`|k1X^>iay;SE8~Ge{rQqZ^2l03g%}Pjfy4t@^kj}L zfU3H-Ty}h`AlLXEz;-z8P%UOK{{^~g)KxvhnXrLv9eL~s#AS8fU9MqPQbzw)+_IOG zbC&AXUB|kzVr)#6i-4YW9O(r*l_d=YiuIf(bQE~3GOJmp>^{62`8CvpI5fog6z9_~ zsN)J4*heDS_6o^5yg}pq$X{p~*_+=-*T_rUID}X~z`J|F&UOylexkk4Q`d<GqPL<C zNxtpC2k68gdNIru&_(oC?is`opE_xG7$aPb^5Q4is)l}zpqy}#JL9}7cN#|y@Zs-V z)CG1DyaVHCz(jznhnsK<V|*`Q;3NL3cz$J!YVXwOD|{^Q8<(863MaghjOVkxL!{Ra zF}a?cI>0n{vN^xRm&pbGyu{)GzWS5f!w_3}2YW{k?r~z@KMIQ`BJ*msj1@Yd!fHTW zPXpKN@R3V1G_K4i4zbEKt}Tr2@u@bjN2FuE200NS$GGbod`ldGb$l1$-433C7(@B~ z4K}K1P5cM!CMxw|ieeE`9461#W0U^?IbLe-7Vj!)1Hn1^z7Kg4Z6iPn(`RvS9d_}Q NcU9`mu;Dbt{{=kQEXx1@ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologPackageImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/PrologPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7c1dc127110b59a0d511b31a45eb784adc789854 GIT binary patch literal 8267 zcmbtZ3wRt=75>j=li8%x*KTPk^xZT~wn?@vP#!7Jl5W~9X<D0-+M?oSJ4u&rcEj$Z zv_-^%FBDLDh{XpgDj=wBp}~M+K(PucC@LZ<A}T5%h=?GF{&!}wJDbjyCe8O{=FYw6 zoO|wh-?I<CdH1~l7RzD{K0#|H+Z{>fk~uS;j&!Bsof$J?>@X62W-^oJq-pfTdwY}V z?nqB&i;;@-W;3Y_F?xDak#*L1T|BWZ-fhG<qroqjuP7RcRI)c`M2wy;jx$-q#)uXH zR|uL%w|&vhf{@KsG-dP{X*1fKisy2I8P?ej<-}fZ5==DX-K4ZVxy8s1Ax*JKHS@47 z@r0Sl?i^Z~zMWz+jV;j~y;&odqj+pCiq|vQQtN?aE|yjV1hQFBnank34a%3_W9_A6 zJeAy~z5`1sKEj?MD66gO5cm~8l@J`GV=TrA#<wQZMq6J`r;*(d?@SqjU~483Pj$qz zN%ieaRxGv11aO=ny45s$Pm4q%BNKU}rM|flNAs1Kh8Y^BAEoLX+3J{yS(JqlYir-I zysbG(Hb-fZwlW;LO;sqv9397EuHdBF*7M`r<B?RHR@`o8Y0OQfOk)VYu0u(Co(>HG zHJY!Z(jL|6sIo^3bd0e_4LWpt6wxsr;}pgs9TSwM{N~mqjj?T%$MSYG8n0hzR<N?R zZj_X5fjJJ@REd*us)kca`tOkIR<Ad@87;Cqb({wB5h$q6=ETF{oK5nmO=Gy*={nB9 znSwFhhB-uBaH5B@-ij`@Em*F!9jrt%q8e5RmUx-@mL#JaADOHj&7y^|!=tju7Qrc= zLVas=o~#+Gbi}Y)P+>TcXqKZS57Af<lzuDPG^`Occ(ASFr_C?Jr9E<SyH*hK;<hvv znQX<XO035Q4ef#^k3I8I-;VzF_G?@pE)LESobJWJk<uVP>#-_;w+ogYO_0*SxVpmQ zFo#QMmV>QPxy?C|N@SII2i~ROo!+uJ962{7WlQIkkj;_OXbK>H^s$?%t1r&<oEUk+ zw^8l%-C>a_l9PdM4P7J81`gRGib`HvN09-%Xi;wGGddoPIWgzuSpB5UWI{tqux^Bw zHH2)-uH7M3B)v3xHDt)=Xh{#Fsw8-UAm-(bhqJgmtHbD7ku|5oM3A*d!m3xC12kvS zCX20H6*hs7PW9NP9s;I@T?%2UN>O%E<AJnOA@Q+IJp`BNc%MS5=*k+#E*3Ns%&kUI zj$+lrDYt_OT1I+OPj_b;Q@a%z<0w+LV~5rjMYL2%;T}QmF-*XM^&>q&URTyW!{|9X zjcqqsl`~vhb)bfiuo_k-=8=FL%}@f&!%jtO*U`ioK6T!@EYoL#Rcl+khdQb*o!FL} zth74&OoP$=WB7!Ij|--i;K53QI<Cewg2}2JV3pRFF#EFcR0~VwKGxeT#ys{)WO{ls z=?E_?sYtYyWeGRC4%ch=q+s^&%?<(9@hR+KiOn5p-L<hgSDm=F^L!&=Hfi{@VAgO- z_KhZ*KcZk9X>2ImCIpl6qH|p(1jlijrr~vua4jBsiEyjOsZo!<_8Tg8mHXYK<4gE5 zuTo?%>MX?61u&hUp67VT-VuVE$jv%#!L0(_jub;TquENdC1hyVKZ=9fbli@w@t_W} zOS*Gv504(J>j>Z*j2*q!jZ{(Fr(-|v5NJ8Wv~Bemuga2m2Y5pubB)d=xY51@H+qK4 zMyn2LENpX^j&G`M#;9#_^p39N4z>N=I_^>P0c-x8^)clH-_~)jGI3=r(e}Px-raWg z8dk_0)NvzLE91Ri$9M5PT4j6-Z-PZkJ2qLjS;O~7o^fraolCoORSw_>ynPmVz2g2s z9S`A0f+`ijhqSomEtKGL9$Trd3Fp?edGqEYFod7zxB^$IJJcgOeu|&bo-A9-N2=;l z)}TsW2a18<=lG?DU(k3<n4Sw-$7A>v&ub~hx*-bYmbUp7aWk$|$0Fm`lpp&6g`lY9 z_ZuC*#qX$SOMWgxzNMrL^FSr9rj}5XT}dO`bf{zxor%R<bGAY#e(SHK4hl>J@O#Dr z8gD+}xAdh|J47At4?3R4A9-+^Xml;jIIfySf{RL?&M}A*ia6}aVzI**O@4D~;?H#U zt^$*P(eYRO&0%s~Jj;A#8d=sEC7CP`D`j7!XEe_M8GVk1);q*dE`YzYGGK;t$yx<0 z4KMOit0Xq^?wl(V1@IE1Q_;lBc9NxLTaqctBxYA>gbCmkh8#LUey!O`u-4M6c7loy zH3wN@m_~km4AS_Ij@R*qlfsL@I^wB5rjePYT`HRH>!EDkq|@XhueF25cG-yQ<DyvS zO27eO%X6X~?~11VG!*OHs=KLHcpj<HMN{|qiCl3`n>OQYyk!GYNk*9+l?0qQdWMYA z@foZR$XLqUER+L^*mzwgC}OpWm@3_jyd+72odvoO2VKc-mObhtAgqSx<&FeYlSzU# zqqCI~)kr`l3#OD@JeJ8eo=6zIW<c0m)V8adCX>}<+R-s`Xyp@-8AFVCEzS~@TbnBx z&(USBlCdgfm#1Bw+JMZX(;4~Btpc8}ORWMPPvEt#uB}=N>#{(tscNX5{X(TIMtQ62 zEAVA{nN>;!i9#6RmhG9oY(n`Nt$(s@cTR#*m3pJ<OESI1(zGcnxTr!mFw|kgY?^)< z|H~18PqiZ1xc8|>r1fSS(t5KAX}#Hk<hx2Wh^=onBCR*ukbJAvi3pNfh+lPltH1KH zJ1}V<2R=;Zvx;vZ4nO8$iZ!cN*jIDVF0|MI8p6S;`*HkTm>re_s8){}^{7>kuzJ*o z%MPGXJr)+o*N}JczF3I`<Y_TEIhDkhVLDb~4xYk%GF6Yw*4DbkVFRH~AWkJt#7Q<2 zaw}Q#bME>5n6w8I_hU(L>HwDdFo^QKg|GV{doZE!eKV@=fo!@9%LXB5`+4sDIBNha z1snI{>;bH^25%bx`|X@r65MDJy$_olGWPe)sMwEl2eGMD!Mxjn>2zT1ZwqG2AUfA5 zn4|-<&4IDMEtsA`Y-<bmBfFp<ef9m=-q4Q=`MrbR7xDW&{Jxmq?+x$efy*o%wOI<> zg-N&=OK}OscPZPAm$8NRew>RBapuFg376v_tEh)?B_76Ac$C%WW4vEIfot$2u4VeZ z4$tuR^DJ(#gdL_pmtr4wTf)ACvHVg}<gEa!N%aF1_(9a*gQQ+Y>fpF?(zF&0m%o8C zHON`kXqJXe`BA4Dk-|qw!8W-F-^%F9!*`-u9mh7g3TyHvm(I%_or@|19puvqt&l?s zc>q_@F9vX}Quz(TN!{)u70Q!hSawLc`KTF=e87cV;N!EN$hE_f@AX9foF}rSP`3mQ zdLr{u;K6qN@SPv=ME*R!;2<yNTZu0~Tl(T4rVYn`+=U;=%Zyzg2mgA<?^jU#jeFqV z7xpXf4wv=gE6V?sRyh7@IPAA(YQo`iYfu{wS6G8^IILNNdKC_AOSZ$ovkXknF=)L& z>wb~_tCvuVm$3-1@b`sR*-d}V#oG#pH)Vqii~+L8PLs`KSqFb`DWh3kMs5}kF}W}t z{CYq3hJ$zZqn}Z$9|HxS97MX6z_kPTmVl!9&H(Q7VWV}N-~+*fem{@%Lw@(;$Ao)$ z0FSa(dtA!=!3X?h{PUL);0YT+f=`xN2v4mE*B7AwWKTY`(LMQWev*LI5`5mlv?$dC zUkLsqzxADrtog0~Sp-*@|5u6me>?N!Xu$wpBlG{YXUGn*YlHs_iSQWqDLIiR8B){g z`06wZ2Be%$EP*_7eYjt$LZas<6t$Ab{244H6Z5cM$l;KLLUN4j*or}0;vtz*;6<q^ zBvbRm2vr}F<3lptg<Ft+NM;srd5+nNmFgmF*FMFtH6wtnD}pW9_|>QegsED_V62Se z=HoGymEcSXp+SzrGMUcIGlN~*S=cSJ*|?g6+oT%zNDUs6T0AXbye{<;k_Of=5m_RO zWUVZgPB}qxa*|xZnH%L~*(;~Y{n8{)$WnPu&X6}{nQw|L_l2d|*DNc19n#{<$V%U( zvdZ$OS+=V<{?y>>V06ELj<nn7<8BQMw|O7)Nh96O$ITb=%`%ri-d!$>Dk}dEa%6Dz literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/ResponsibilityTagProviderImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/impl/ResponsibilityTagProviderImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4686bb4b4f6d61007f98dd40ebbf46d5a1c0cf20 GIT binary patch literal 1317 zcmb_c+iuf95IviuNgC3Ygf_i!Z41P1X^eOcLMjzVpg=29MZnv}S;AIpuVrs4_$zp6 zC6M?4J_<2T+>oRJM8$)5yz4n<X3os|`;RZ*06f6`98wIgb=Y-eBqPIp=bhqhZ5;7I zxIH7aPlrZ$JP4%Ubv)e>$_YZPG$Fh|Ij=+%kdtgnCC$e}-aQEQvFwQO8GX$m!*KbC zA9F`>g73GFgllrhGVER~=12gB>_h2G^N1mB*)4|59%WZR8kdU5A<wYTkiK}?^V%Xj z<ZUGw$_?#u)#9Oy_sL<#yq6Kf+s4IG`nwEuhDukMgHSw`%8)dawd9IwVOX^6#xH@I zCM22bd0b&w3CE-zqH7FGqilQH^R!Q7c~lrSe}md}T@jebB0rm9jR>Bcb+{RKc*w%Q zt$$S_q5<)Zbe(a|7FRt{pHg2AYYfYiWk2poMT3*aH5!`X{PnZ5ss*g#M%>q%RK9gy zGP@OftQWC?O_~gvSK)UUc1B$X<2NOtBr@rKhapw9W2$OQWlb<7{W)LK8AFWRDq<TY zhP=@Oe}?(-au{CxSBV)4P2CIKc)n=LH~x4jYq9QF2VEO_X6QeVAxjsA)>+y)WEt6+ zty2^}(@P3PTC@GbEavFFIB>u`7HCJ^LW$NGyhAnyr_1F}WJaO0Bhd5^x;O>8Gzp!X z3SGuZ67@NilA>^xuULIkzIux5+b6hHzI}qbC$J~kN`1D<0Ffj@Slmmpuk{mmegbB6 BV&DJ( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d90573bc128580e294e265afc13356abce7d88ab GIT binary patch literal 3819 zcmb`K`%=?D6vn@WN~NrViub!#rJzK-D~Mt(iXtdwaCAmz(sU_t(rhP572ir{yv+EA z58y*No=q|s+5~MVOq*o0=eOs4=j^4we*gFh;0nrF^f0`TPE9ji)Ae*)Teb9x^fa+9 zjHYKwn;Jb)*BcGfu4#2y6_(a;q$O(_y|%RH{{2i<Z+OC))eTQNAM+DgWEdW88(aQh zdd3<<pSNbZ`OD<#{I;2!U7aNOlxdsZG{f>p*Xe~7hD?z}>j%RC#}4%6(2HFhS?p%$ z9Z?+y=S^EIH0u@NEbA3ZFzlU|hHkCsj;Wr*#*7kyq1<gJ^AjY(9z%CUkjs)K>caLI z?6i7p;!GBNhlOF84OeKQzN#6rUYE9JOV3>WsD%lc%;5kIWpR*UvCB#3IE*6<M+`?$ zEpPHJ9Gsyr^1psk#mLG#VUR+ll)2dC0;xZ!)L+(X)c)SA3Wvc;t9^vhk@BZFPAicP z1tLW-8xj>$MjK&Kto#2~nwl8llEL7ljW`f9!s;mQ^Bfmc+$W;N5rJ()KbJE4cJ~;L zDh*a>#q~tBwBB%p>(WXa^ki61t3(2^BRwv1TvB@E13eOu8>%d(R3(8+_3>95>2zD0 zc49}`T;aIds!cnxJKD5!Nt=PHSk;@BSETY`cpTJ8bY&HWbc9w~^w+13V!Oq0Tg5gU z<UK@e#B$QlbMjCOuhLd+Q1;=jLq5OL-|L#C(`h3NBS(AZU5<SiW-!u@l2mXB<K5>d zV063V#UwFdydsANI^bOWcTQvVndP{S8w_vK>eIeVC3rf=aTa-omuW|eZU+ft%yS&a z35Hx*HXTFEn(9z=IB+p6$#CBoS86cym(7~3drgP>IVqQ<$Z<9}cTTm{eEh*>TJ7K^ z+pwfdXXIzXTa#4=K4;s)DO$Sg3KyrShI{GA&4z~5A&~BN(I<<Y)ZR~bx6niXKyGyG zD}8+j|4dIk7*uWk8%B0dF+|UtY*gzW?4>JH6C<Qd(N$4)j($Pz8}@&q`+(8s+bsC@ z2ZBDKJ@v*>9HaM4iB8|jpBB=|R?<=;>5NaJ5{W0BYbC8Dl16+IO~ZK7SS#suB5B+w z(FBVpO|+8UCX%lCB${gRq?@gzN+RhF)xr$rZZagDr>v;l^^J~w!&EDW`5byrHU&(_ z+1%U8M#D^;&4aCMuH#{xO=&Bevv?F|^LQ(p<9HHh^EA;089ehVdjX67^*LV9HA6oj OfF=5<9Yf6#`uhU{|37sA literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f63e4232cec234b1b44431fbcbf2baf1b109d067 GIT binary patch literal 2580 zcmb_eTW=dh6#m9`ytT97P@0scNhu`(U(zn6l$%3JYMf#SX_2i+@HSab+$nq0?4~qN z`~rRe;vESo4^S>uK|)15AoWK9XD>0{*cOqgA9iPF&iT%FuH(ml{qh@tSJBdtVYun4 zo*{kd2i!4sExzLhhPWrpy+FDSZ3e>To+q82VY^*n8J==2w`b6?W!#F^>s{^zLTzv} zaMiws9K+QRRG60Zd|?QC*Dzh%b{)fU1G&3zNZYfFv|5X{81%@-EpC3sdxD|4IT^W_ zR{~RKn2uoEpUc3!&Cr?<b-?8qijWI!*>iZXr--e3Qn;%T(D?8rk*lu}f&8j;WU$7N zEmyV~at%sS5m}UUOhec348zBh1#!ULbgGsv7cqlpLj$K6I_3ZGb{fB4*)D)#PKSmQ z;p#aZQ^*%Ej|B~985)y0l&T6Hi^x;{L~E<vS>I|j8A_Yd5nFrqj!+%GV^Ky=Zn`G7 zwz-nwce0raZcCq{`o!I4c&Z&x>3_t%#MF%RldjruRcGHLO0(t7JNzy;EKVJHbLWmQ zgL>st4KFb)9&I{dx=I+$SZW%}DC?-8N<||Y7Wc`C^X1A=ttDEKM12}7xTN7C!@?N! zNKS`=SE$c=B53xz_riGae_J!}Mm~hG9`cI<Vk$usD5(z$dR%PdTVpF6FjA=cuwUsB zbl5{hypA_Dyuol|vZ@+rlXxoVcnfbcoanlT1Lw*x>r`rp?2zvoRvDI$#(bm?l+S=G z3O&QHp|nOnJPh-3Xyc}6TEZ4i(2sLvMC#H=hw-ECjDb45M_6}dSExSBxj`G@WJ;>J zFR&B~Y}5S{h;H+qr-bj*y%Vz<DdwuNVy9xXq~QD7#kRYrOtB%umOhh$PWW63!%w$Q z%W;H?3R?JhfhJFuF3Jp|@k6UzIFM+!5bYM}O(jpKRHw9K(>bH}V)X%@uKtRdPiS%S zC(Pc*=|54pk262u^!Fr?#W{M;BTvs7DSbfG?L(TVE11JYEKn;wPbVQPf#Ez60WQQl zf73D3q7#M}v6PtJCz2VGsMg5VH<-#D)PBeES2$aHgyn~Lnc*R742Or=gX{rG$2{i9 zI#4IqR>`3?;&BaStVbN?V$_5K;o~y>Z(tFdDP#)^j6Sa5wS-0^p;4;-h}qEe&$#*s z_3sEj6ZxDcLBJcpF7>fXc!#WqfY<PD0=N==lQuhw@x?%lG6@DF*8i>f<w(uz$I$$G qq-Nt7n%|DpeD4^V4@PP>kD>X;2+a&OqFmg-`}8hSbZ6*IzkdLvqoJGt literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologSwitch.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/prolog/util/PrologSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..80ad5058baf665fca17382bbae3023fb4d677548 GIT binary patch literal 5257 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AbstractExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AbstractExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..9bdec4c8517f32701b5f6ebb6ab8af34ffe85833 GIT binary patch literal 878 zcmb`G%}&BV6h^;6q=={}{=PxkIEh<V#*_r3K%!y6ZYX0jq;#6jK=9RE_y9hX@wSqx zshg^4(l4FNoO^D2`}+3$0^kB?4k`>cItjQk%2*Nc$52eP<#Hwcg;hGDMJwkbj#U)! zxt_|98+wkc^7+-o*hKi&Tg8bqhITusGPGu5DR?O8z+f_yzI9MzxGq^GPIRaPKFq=k z<y=Mtsx$OTf^yvv^=Revt8Ihft|V^lRe*hnGBg8ey(P&$JjIg1b33;sE9AmC=8~}H z8@B8I1GO_^Xp`<xB;@<~UKsj+ur5vo>9<M0SZ471E`F$zw&N(%Gkt9tHr&pbp-y$z z3srZV?r7ZWMdHh@3hC>d6fx)N^wPW%fv!zB*rI=>MsvN5Cer!d!ETm&Xl1#NgDl%P P%<>4wbb{b?ui*3@YX2hi literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AndExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/AndExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..810ebe7d1d544025ec17a78ade15af3ae1e61db7 GIT binary patch literal 242 zcmbWyJr2S!3<cnq@)KY}9E3>R0HngmzzNdSRB6+sYEsm*F>nA5g)kFhWw0$<Px|EN z>;3?+!%`v>$U|Q#8*NP5tE<yRNQy=>L$bm1F;T0#&iYEVp(Ljw?><?h_P)%=uBR9| zC@~dS*ZQWF)0{mQHJKza7dZV399%HXmk?N8!q6K!T1Nt#AAkFy855Xr&G<j?l-x5c E-n*+!4gdfE literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/BlockExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/BlockExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..d0bfdab737fcd4c647ecdbff4f9484aa06aa4a57 GIT binary patch literal 455 zcmbV}%}PTt5QS&z&$U%Sp|4QTjRS5gf<hHa!9|}SH%>39`MD%>rO)QV2k@c9x!owb zkuCyr!b#4_mygf4cL2DC(+UO%k103giYsCwt-Ps|5O3Ia;!@O2;b7X<#fCz9W=}<R z6ldw)C;Kwnw3$m$YX$oVXKV9n$QyM()oZp=!6CwY*ND5iNH$i!QxMJ@{-GDz8)0&B zx#%<4de;^v4lA-LgcM1i;c3>}rU=8OYod`ZGeY^#nVapkyU_VteR``6M$6P?%MZ?L ih4C+hS3N!Dg|MgVKtBnUX$42BhN=cI(&>0RoqPechLqU= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ConditionValue.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ConditionValue.class new file mode 100644 index 0000000000000000000000000000000000000000..17af94b3c02451475a98bbf07e6487b69b376527 GIT binary patch literal 4318 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 D)>^W> literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..b5c12080eb839860c7b49f6691b225aa1e3e059e GIT binary patch literal 498 zcmb_Zu};G<5PdF%loFswAhEEg3zk?JQ5gWKL#6JndyQN<b`(1m-^RcP@KK0!kiq~H z>R{jb^zOa8=a0{~cK~;|$S@Fi_Dv~GFd-@@H&(5Dl=MovjmA4JMyga@8&}H8ugS{5 zZx@Z0vz@Z7N~j0#)+Qwxh60nV+9_!jcg$B?(lNu4z)g}NZA~3WQnlgSHza4@5P?xi zamj=va9K=WemEAfVexxLgdTBK{02;y0y&fP!w5Vv(SNt=X}Y0UK4<y9$hH;xqE3U4 y7rt#YJsQjVU;p9kZ8C&y6gc2>$p1HFt22x^5je)Uizmptc#1Pd2%Pghz~l?m0-6f| literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EventType.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/EventType.class new file mode 100644 index 0000000000000000000000000000000000000000..5d8256fbd6fde7540da1a369b8e208b890c3b34a GIT binary patch literal 3136 zcmb_eOK%%h6#j0;uQ<~OrVV+twCU4!(z-3QJQ7OW)G47(0&$Y!h7u<3B%O3TcI|N? z3#9T~7m$$HQ4m5xEJ8}#2t<Vh1&Iw?wk+836A<v-YdfAcK}8~wJag}v^Z3qp&bc=~ z|Mm5407p;?qDdfGD9t6TvQ>5sCoyXqGX*zczG~(wu2pa-bj`d`ELzT7B40Rf+KDpv zj%(!-smrG0jxQ9=AbbKF=Z(uo!ZxUvaw_>C0s{M_YcpqC#j=?&^RtOuA)hZe3A(nG zmRT~~LP?-GIdXD3HJKV27Z^zYZ$P~Qq0zCrLp?Jzaw?swZ#S*Pnx0IiCsG1pNMOT& zO4e~F4ZC7$<Oj^D?xd<Ir9vR$_1E}9Ds|;BGo2h8OJ)U5POVESfvQ)5&1uE4VlT~l zG0o<THRl*^rDO_B-1E6_9iks+4F6?GiGa^B@_a?AVN|6vZi$USouF;GET%2ck{X#9 z-cyGh>SOgC%RMfjMPrk6GQcJZAs8mTyLIfrUV%VgO{F)w+V{}VYT0T@Y_gdS_v;8E z6hgDy#C0^wO;~OY=m;YuR|y^4u|=*9>v#}b!gvHngLstmHrP#;O2$H2$1yxcct%;W zEwDE_<%v8xGjHbH-dI)CC`uSlpf`vo1-3RE4is#g+H#_F^x-K+t2mq|Yt}MmY_sZr zS1tX9uT{<^?x%HZMXSK3wB?v1mHdoZ8kbIFX$m>Ro-|6zX-%ljnZ$l(4QgZS&>*so zDIJ42#hG&p)rJt*60Je^wn-R6I32{Zb*eqzbfhs%s?AFk!!DCLFWfrQXE~}Cl}cv0 zVl$@=8P~{N95#xzOq-eMiG>k%sYI30F)mRBDU~vT!RXNXq^#kLY~2?GTD>@H(=b$R z#<M!wq0553sG|d&a`lpqZRq3_xECyD86q@w-l*x|DHNt4U7w_YnmeiuMq}%7l7umf z3qj1?P5(lf2fPjo^E^!q+4s3Zae?FG&8$`d?<m$q%$6K0sH3xCXrQx;a0HHe9Sqn; zx!miSo*Gx)E|J#;kCJevP$}iiK}&Y@#+6Ivpd2QF*E~L?!TKC>Y7p*!QT6s8W)U_1 z{LuT`<zWNx&2vV*dBpIFXh#cl>TKY;2^+cJ<k@fL{sGTE!rtI9r0h7>w0lU|wIM=H zoolJlsov}zU~`8&z_@Q=w1=^S7CX7SLp1WQ@(n~b(xqvUu1MD{?7EJ9N)q+?BGE`x zNn%RU?e|BzBi%~U6Zn>9+7k9<vc4t6GFkr;dNS8>@ZUZhTEd}a99hQW*Kzzy25v$> zpT|_%lA108-^~=dIVlJDJc>~^#sq9kArAu%Ow8i~UV)1?B$Wq{$`cr<rSvv^$~$+j z*7q6O8L#umaL-MgjNimFAHv_W_?8fz6yLt~_wQnnikgDZfdJQ6Sfkg;(HrFSO$N9^ zFz=`^JF8CRB&wiY7*X|TA@osl+JxsQ4?+7Aei3ORr04GkY3x5ix=Kjz64HBw^gbb7 zC8Q7Tf>bSZ6S=z|q!VPaTKFR0f`H>4pYsXqS5H|Fs04TLy_<zyWLf#^S@clVN<_d% zq~aQz=wnvu6GZW;!X#UmUTaM#DG9*0P17`b=C!>NT~l<o#k;rN!eo5=4P@i(z8jc| zxBGA4T%$9pvA(DF59Htuhu}xH`cEoW96tJQ!?YS8xst6fYu~1tzxq`c%+I(lvwNz! zC-{~q{qe7m{ep{X69$y<7f%}gnrk8Ngf)z(WczrHe_hjfW=-RB_Zt7UrZMlxH6pJv z{$mZ}X5?_bW_*ksNM>4>a4>sXi{H-n$=My&I+tPg+zW;O->b~zWL;co<2ZAbyoDno Yz6|?2sGjiV->_>!L3t?F4yH^0008Z~(*OVf literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExceptionEvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExceptionEvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..08c077019c381603f675ecbed4583e8785baa3f4 GIT binary patch literal 350 zcmbVIJ8nWT5S#^)M@S+?f(y_=gC%Z&5NRk<B%+`*W&smpKVd&au9kuW<WLdoh6XB% zm1bu@v$KEyzb61gycVbtzQTU3Y_u_HuU1YkLQ;HWQzaX`kcoG?EUjOwU0AYHQF5QG zQIn(LGB-^Q+EqHEaqvr<L4gM0ZL1GjIW40fi!GZ};E^!BTkl$i(6({BVe>umKbLz5 z^<IBY=tNF8ijCg9KO?k0L$x>jZXFZ4m*E>`2HA&PE_)>&<aaf3SD=aP@(C?r2+x_v F%Nb*~Y}5b% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..78b7f4fecb9a679e1e06e92e9ac3e574e7481448 GIT binary patch literal 2065 zcmcIl+invv5FLk0(l&u4^aAC6DI{EKiAMswM5$Dis1Yd@Ab4<hC)+LF^=dCwdEm!* z-~;$5#Mm2_MA?dxs82_>$1~>~jmJNKeg6Rf&tbC&1qN?a=x{f3qgeQSD8;^tIUb{x z#IEvbGe%DYf$KZmQ#MK-(b|t)i+BD6wUuwXI=Tqw8B`C&k>FC$g`NFFwBjOMWYC+n z%5I1_h{ME+lMwBWL=SyRSz^%s&y+!^q;h!Qz$g)e1qb6T7o{CB*l0AnIw@Mx4I<>| z4Y{Q}Px+kOki63+ms)gZ;5xq0gcy81&7GGf?JOo6YMmn?6QLc>tZuy~9u?x=7oqSl z#*p}bJ6kSUsgw9riO*XkUwpLph%(vpX+&uj?Gvf;YErXBQx!iqW;Xku1)F;eR!QWx zPlo$K_AowBc3VhE?nh_q{`7M*Jy0S#14{+u_3j*An-uvTm&oH$g?F=idtw3YX_-WH zjx7vyk282bhmb5yzL+wJ$wC->m|akoC9jYcRU=V-5$jIrr4y9Fi+p9-giYhpK|6Vu zo_meBPi``3<q9}WK25Q1dRb3?3wMTXDI)6QW#agEhSTh&*-zE$RDD~22;;FUjp<OG zc-@WCw=vzd49+#09~mrJ2WWlSawQqW;8m^;DH5N;LOwKMBS`J(Dkr_%(giC4amOe# zdJbQRTiI~Sk}VEY5?V;*=#{NaOWM?S(I-dJpa2)3NZ)IXzQP4qq`f6t6`)M(%Gml6 ztuI3r^p{zKy1^@B=gYLe0;^_!4Xzrz2I~f|!wrKs;g-SMaL3?XxM%P_JTSNc4-Gzo ShQTI0Huyxx6SJp=*|Xo4%&=Vm literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionStateValue.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ExecutionStateValue.class new file mode 100644 index 0000000000000000000000000000000000000000..15252c2a9c0b8b94b0aba1fc35476c3e29c3543c GIT binary patch literal 4039 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FieldEvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FieldEvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..be7dca3aa04cde506ad81ee5fc192cec2144dda3 GIT binary patch literal 361 zcmbVIv1$TA5PfUZOVofxEbX;%A+4pv#$W^?{dhMXD|@?gw<q~F3qQb*lFZtKplMPJ z%sk%AdvDH{;|ahko)a__R=&)&sZ15f>8+)W51PL?t%LDSz`zCV_r~SA@EKcO$?Sqj z_1v({-VS7Iiqx5RnTbt;rb2&52hx^g?PIg!G$d#%EdHx?M@FHSbGVvVQo#x@qw)KX z>N=F-c`B^x7i%!OC5=B7I%{8-DbJ0SQ^UWqO`?DVQFxGQ$r~FIHo+re=qGdpQRqe- Fy>9^*Z<zo9 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FinalState.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/FinalState.class new file mode 100644 index 0000000000000000000000000000000000000000..4b774cff229599d3382eed8136e0af001bd97974 GIT binary patch literal 447 zcmb`Ey$S*`5QHcGoxiAW;WY+q#YWIdP!R0nxgI%UB3@2>HVYrXhZ6Th5wR1CEp`}Y zmT#}O^98^FtpEjqu{*?4r#kh@%B@jr=Ovve%Di@#MNd1m-)kGoo!gL+Deu<nNKUm? zW|<oTlmt47Ix1-t8|UkUA|Ie4F#0w95iHP+$xmL_Jhgc*oc$X6nYB_TqanAX-z|&Y uUrWN3Kz-@5Lqt<;NTB`Z*U!;0EP*0VnV(Z&paH7L!PZb`MWB)EXx;%oKa$A+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/MappedTreeStructuredElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/MappedTreeStructuredElement.class new file mode 100644 index 0000000000000000000000000000000000000000..c9cb7ed5ce300a47b5658ae1c422fc71462d8f22 GIT binary patch literal 783 zcmb`F%}T>S5XWb0?U!Hmt0-PPcxW#!c&!M6_0%F5>A_pNnT9RNZb&xb8~9Ehd;lLx z{3i<Sp^6j_%P_MuJM;hTynnpD5zz&8>QoWr*))_o)0y*)oJRh{I?2zha;L39&~fZ1 zi8i5(ZNQPt;2Wov93jlXL(1&AG*>Q9IT%D7vvGB*3Tn^%CtpTBD(@yUR*2RFjaF^9 zw2`2bkloTNj3?-<+Zz@QSw%X@SaLj-%EqxZ68a)JKvrK+>xPq*6|@F|nw}1gU&s;k z@`w7%;an(4fK<QixeC*zO8QqA@%TOm^_a(ab`tTmF&2MQe378e!US_AC_4HHjv&=t zDEc1zi`D<lEvTWhq4k3T>sq(>2)G%$g~%A}J)5VBZ*>ITr@t)Kd4U-lgr{)UvBFhs oS)Cg2oA8KQI2GEUP1qW8wvZxdn|4aurrpx+(LU}49hBLJp9g6ATL1t6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NamedElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NamedElement.class new file mode 100644 index 0000000000000000000000000000000000000000..5796e2170e3163ed7da0685f0fb80089db07d8ed GIT binary patch literal 281 zcmZXPy=p>15QWcb;`Jv116tZ^lL1@Xm?|WNkbYgq%gX*-?yiz&v+x1(P$9E~kbuR& z%$dVCXFk8q7XVA#SLi4_#kMA!Y|1*&-sx@3#2;*q*~TDZX0MyZhMIibv7;n&$kx!S z_Pkp=_8fAB8-?*fpENlw*0=3}ji^0^S>dyBwn<Fv_tM9fY5ikSsA|pyr7)Q<Uj7i9 z+{)3F7}Bp{I=|j8-W7(Mcx(+nTPKu<|G6FuPeLekrEcZzjs&gHM+rQ@P!xqx(Q)?; D>H<!R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NotedElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/NotedElement.class new file mode 100644 index 0000000000000000000000000000000000000000..e6a7d026bea5ce3171715f3b4a0447834f925080 GIT binary patch literal 354 zcma)&Jx&8L5QS&L&*ldtasWysXc&n$5fw{;qNK<P9A~m}WP4U?FXC(z9DqY1#z})x zQCNC!G=6@czkfcz0N@F(D;OZWNY{`{E@cyG=gmek@dw*JJBd2X98BA~*ieuydrInK zc9xcsd0Tr99CHQd2seB4Zpa&5U2XPkb$W?#Tk_d@*Cr+oJJr%L)yEZtVZ*sZC4{^C zhsEi(l@KJ7w((RiwB-z8w02E2x$hX^?LT+shu9OyQsanJo}WEy@OUkKXZh86O`iS* dd@O8AgK(zjLjMnyxPqa&k-7nlRZR}+>KCv|YL@^2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/OrExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/OrExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..bc12d5308773ef218b2e391d58be023c732b2b0e GIT binary patch literal 240 zcmbV{I}XAy5Jbn}W1xbIV2L9jK4l6{;Fu+HaO}u-P|ild0XP(5si3BqUCnB=PxE}; z9{@I(OB4dT5Nl<VO<8+&ak>gw(LkopHh4Z}YIWCHU#m8p$*IKNXKPd$_d^#cCC*8V z1(uDzY2`FW%c>!hC8h$$fB$b?FxM|aU~vk4G<2|z1XjQJ^@q$Xfe~xM?Z8{|EHHZm D7g9`U literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ParameterEvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ParameterEvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..052e5de428b1c8d5c28c71e054558e312d1ab327 GIT binary patch literal 574 zcmbVKO-lnY5S_Huwe_olM=u_P-HQWWD_*39V!=YidzzgtDfuXyY|+2w!5`2cCC=`l zrxm1!keR&9%*%V({d|1`zyn+*&=K(F%K~-KAxeiUBbPoReUPf6_KpuDS-IJ0SD^Jd z84R4es1?p-DJ?}R$6IMCSzmwlF4uLCKu^GMEw>Vl<kHvWnp8~SSisAn^IFCTxGpH} ziOhXyrVHq%*_6T13ii@z_AcOtODCF4-qJV-xJ$EHO_h|<n?Oi*h00s&9kMhA$1|2} zB%r_0g_E%=Nx<iSY95=mhbaCR+tCyA7%Y5MDw=4+L~i$*v^?&<_Jy5bnRp%XU+A)1 a37kOfS|0|@ehO!do-^8k3yv<EX!r}AsJQX~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ReturnedValueEvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ReturnedValueEvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..434efb2592264e0bd5a13a828883dcd0d7975289 GIT binary patch literal 284 zcmbV|O$x#=5QQi8C+f;exOKoQh;Cd63gUK}jwK~cN}CkV=E4JbC~>+M1Q+w>2OjTZ zUhl^f05&k!kSVx^wnW?6E|SNaqdY|9JDU`3@N$e?Q`1;qVjT*0*vamrHF)BfTF=FW zT;g3XN`qw^d|`({!&t$xqMp!^*pGR|CTf@}IQ*OWB}T#G98zm|ZyhUG{lZ!gM8cq8 OBsGywfOIXI!R!MzEM8y$ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeEvaluationCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeEvaluationCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..fdfba1c910845fc29e86ab51cebaf513c78c6392 GIT binary patch literal 476 zcmb`Ey-ou$5QJyL&ynyWULbvFu#}b(LBmNzN<=}o@h!n8$3ETpB6u|l9)O2JSyQEe zCZbr$9@#UaZ@<1jJ^@T|USL3&#dc*}=eoqfym(&5WaLe3pIi(oCRuaSxUe$oScx~C z-a~TM%x!GsZo|Ik{PZ@4%H>0WL&9av8#bQx+vBnpn+hBg9`?=pC5CXpRrOQi-uWag zp`4Wa2JHAO-W$2OdQ$&a?soM5^?xRe=CN<BXnP@y|H65lNh&+SfzFX`ZlHV%oFH=^ MVx$V;H0wCq0(~8xX#fBK literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeFilterType.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/ScopeFilterType.class new file mode 100644 index 0000000000000000000000000000000000000000..67970c79f69300f4b6757c9c12b3f2d4a6f4a6dd GIT binary patch literal 3216 zcmb_dTT@$A6#jNjZiLfYq?AjmrPmOUwAI!NSW9VI(*~#ns3}%Fqz5?k<kIA%Q*_1` zb*Ae01AO$!vDO)+(lR<_d~?P}|AYU+QNO)UVoo7WeE=rs?7hyqeCu0l?fu(dKWzXw zg>nc!flI~mLc*$86~`zf=51rH=p@X$X0Ga3#R7$nnKw!$tFVyB7jK$&qQZT_v2uw_ zu2?cJTDD`BCznfR2!4T`OU4}|VH?y=7OMFWf&#~605fM>rHYv_^Ye*ZF`q9M5)5D~ zEwgMm#j?Pz;fYIAqsg(!%xq?4{AyAlmEI<Bg97@+R5E?xU)Oskl9N*tW7EUwsboFe z-c0~z)mH(L64)`K*eE#DhFvu^5(t5)*Qcv3zX*YSTiiE3YXqY_XJ&^dCWf;DmuI#y z(V**FV0T(oL-CwueMv$~##$&CPPJ?b%xwBRv~3v9GE(4<<VnC^F!Fpw-C(LSGESN8 zM4garv3U$zpfx!*HF~5DJUqm1DOk=~0WH=$O(!F4y)Z%%a(-CH5gZi=4%Ji!V_SWv zQd?zPCB4%vba-4x2;neV<R-48MQ$Q;^P-Lj!g7_+aR6;{byCN3Xp7(_oDSh-lHA~U zxLh`tD>}~L6~Z$rl5>Hhu^Q1T_wl(UGv^HUx?mcmiQqL1hVZ(;-iE`GqHR-K&Y_MW zyuoPI0;kZLw~RU4bp0QyrQh(i#ks`&rjEU6=a8kXf;m>r&v9y{6Iq&K&akJAvT|Az zY6~W@-)KT@@3ysxtY%WjMO+dHJ4LrG1lnS?1iZ}>K?+wwxLhaP^G!z@qa@tCT{Y|q z3G{-l^L?FDY*DFfR;o5L+mUgM+^tcgRLi%8`JP`MW3Nh786A@nRftk46G+EW+nKnA zYqE{s5oq_KtxZPCZOrRBI-$$ry{n@O-E#Gwj{WH7L^z8Ua}5)qI*`<)@R*8FkgiWv zP|YCK(y`v{J7FT2$6^QzPnTl3!iz$Og(aRchMWXm56c`VZ+^9Ec!#qtV$S4S0Un=^ zKm(oKLP6lP*TINwR4Ri_CfOsB7Y`4YNTygV=i~*&^0jTctOn$e34FZCY&(xYH73u# z_6E<LWLY)-0?^NO%A*M2o2QU^^8n(F(ur2+)Y-wc4?DTv<=OA%evfA#Ww-E<Qg$4A z+U-+z9f(p>=UQrXt2es|*xe<MH||>*?RmUFi-X)fAsYEt{TU(~?a{PoPqgPT4n4#% zC5id{(O5L5B)v+~7YIiCqJ2uzAACYHZ578dS^p|}Gugl@`ZEtP@LwNJtm4EvPOanB zhdBEK1N(4}&jG>$2?;StnZObBV4MRw#s3*h!@xC|$Y2q(aG1cbvXmC*F;YwAQ~Huu z^HFW+8+0;G_o>nTN4OAwgtxvzpnv5PA-XBv`1<cZ#0nKP6}k&St`}Jwiy)TB<t=n@ ze;5T7=Ai3T&ZG+3gE3WyR#s}9P<*&bc^KNC2#BbUklub4q>29p=`JBH6VeBS^dTYL zC8Up@g5(z1N3Na)={$LK3-0hO2za3DKA%9JdP*|DrT}BOvg0i33QNjg|B8pMcA^6A zv3WjYl|DxdU!WgfDqOOCWi8zXl(YolKd5OMN#ccGLr`KYNqI-SZ~tRV#}BL_8}Ib5 zVJ6-gSi_A*SGcjhrS^UD@Ev>O0o(k06)O(E^ud0R!y{KRs?4H8HNN{*7A?TI@3Vv4 z{1bdjl!5q<$Ufl0ZNQ)su6fc3)LaXBPc$)}kuBsk-e_t(*VOpNX5(L*8uQ+45_ya9 z?@f$bki*TI@fmU;nQ33eK=z6j-^dQhxgFKI*J1W=h9Z<VAN5-}3iauVGgrx5Br4+T Wuz!K-32*)lJ0FUQn^Nsiy8RDBP1eEy literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..078cc8d3c6f88d6eb6064bd9bdd876d8c2f548f2 GIT binary patch literal 3333 zcmc(i-A)rh7>3_LwEQVp5cyFQR4k&b|9>Egq*W9P+6Fx^Ce!WEEN*w3>6XBCc;sam zPmBj%fEQ)_W_BwJl#(z_Y|?#ar`z|L@7tN#Z-4*!`3t~pJWrsF;e{_tmQ!`A0r#wR zmlyoN5?jKq1&;4gXCTVFQgOVJRrZU*wW@UP1&(dyqDF?>fiJfcXlLl#;G5iXIbFR{ z*bsJ*zzK#ig%GyuRI0)f<#lTNQdsHepA4O1DVxhLWEay6OUo@9&@4m896>!Nm}fYa znp$IMU!)kia1y-<oMKo#D#|HW+`S1{qP`yV;WS|sl;L%1s%61+f}y_$33M>@E<2vc z*2)DT^Ss~+hUBtub9aqPN1aEV6Sfp|`_fyssHmHn-sEnLtJb3L6&=-J_+T)`X3muT zv5=p${fcPF&Ks}~a^2x(9N`vQ&OOMLxKX}Wx#VRL2-%QrlJ92D#GefF{Z0fm>51YR z-R;JC|7ei+!`x{c1JQj~dk4+5fYWT146h8Rxm{kw=#DWM7EG<lu`hJYI39O3jv-@U zyW>ON!=ZOxa<8h_U2Fla7(f~r5-l0hvNQ{eX;+kmM|;sr15DhB{D(sSbp0U_3npto z+3!cJ(R${D$OW=y)6|Xy_0|BFmklh5_$77ZJzH7kw<}`y=-d85qZ$wM@P;16qS){v zhW7^9Xktt`=@01(UNOB@k)m4FkB%h+-YzR5M00jU#sMaCHtt0JgJA?Ys$*PwBJKpS zY!Jj=H{zt~94ZE4oc(i~;gb>hF#nyLX8j<xWK41zcOw7k-LXa`<G<a28tYD}CUwQZ zz*`V*Qv{9Z>wjIl&DT(}B!YU$yvps*yhL?dD=NgujKc5A`88>ajH61zfjTUzvS(Cj zPQ^Ht!t^~(-(giv(wo3pI(DLqdb;UsnpAxfKhX0X$#2wb!vGz-NP!WYKtImtURCiA z(%+R1k)6^JjA}iH^IFGnLF+|~Yn{L)t(S2{>m;sfO<_vwH5!2OxsDr=&S<r8Q|m2y naZ$hD!CkHQa9`^KJk<IKkG0NXPOF6{TIcbU#?0_ck9^@TpqzPo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage$Literals.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage$Literals.class new file mode 100644 index 0000000000000000000000000000000000000000..a43599ddade1f3db2ffa85c5062d385e9b77f815 GIT binary patch literal 9932 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SemanticPackage.class new file mode 100644 index 0000000000000000000000000000000000000000..dfcfa972f9073db075924ee66162fe96b0349581 GIT binary patch literal 13183 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 D<*fN* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExecutionConditionConfiguration.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExecutionConditionConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..89e507df849a868a567e9dc7cc8a8b8d65432141 GIT binary patch literal 1314 zcmcIkO>Yx15FM97XwyK$XHzI2hoXc7mbeDElyC|(QbZ1wIJleH#l>r{Y%k)@zv93T z;71|G-pz`%sZ<qlh`i&xc{6WjJimVb_z3_n;b{xj7<@7|<I+jzh32Ue$HsH~hDqtA z(RArC7eyg;#&a`A#U0t&%Y;v5UML(bpa(|JW$>YoRA!|W!DzucgY6UXRd6MU<M8+d z6W@Ys4E91`Oq47fa?DfuHWvA)f-rcNp<l!(EILPYXQMd=`~AWAG*@Es+-OcB6d#RA z+>pV>RAyTE(jtTJ7x8%&Y5%1*=jT0qLmBOp#Iuq<7(YWRQ;G9ws6T_lI@`;n((p&F znNTH$$nIj1C;dy;U{&D3j6pYwPOu2`Q48$Gbe8Wrgqv7=CzVG_ZFc{+Wlg%xAjcN< zr2FXbEvBMWerdEBT<H&v80=E+=R(%|M?v#WWH~6EH~A@&Ugf^>zc!71D1uQYi{Xf> zoqWdROH~yHuUGa*iBc2H@-!B&KC1USHd*C742f+;w)fQwXE0nz*DQbvR`E=Pr@rXg zHIi*kO=*+RF`C)ui?>^^lBTRn`d@_AK+AyC(eEnlr4B8O7F;K5gRC{!B)bh;5Ee-X xZp8CuZEx3h_b>b{!rg{D5qB5v#q)k`@6>h=cH{j6co@$;cto)nJdP2c`~khtsh0o% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExpressionExecutionCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SimpleExpressionExecutionCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..4e931008db7bbb03da5b0e0ff708f7db04c02260 GIT binary patch literal 713 zcmb_a!Ait15Pex!tE<)BuW<Kbz^f<GdXinCum^8xJC-bIQkqou+dTLIev~*ZR1gJW z^^i<5%)FO3d2jD8uK+GFi!c&+bWJI>*FGpKpNz^}khG<|4cb{w2C7tDYg@|76=bC6 zyA3**sjg~6$+m9Dd#+7}rW<Dq-E~J83rsiaSxKW9V3lns4-pOoZg*u}s)~xlP(?Nf z%t{KMylMAXfz^C*zbpDzthF*NT``OQ&hjw-SCYkAAnwHs;}lr_LCAIHL!)vY&Va`{ z;$Fv)=q9zZh9B@d36s>dO-^^(@JF2g?vRVl9Bc=HJzo24%Q0If!XY07jxg!tF;4mz N<CH4|&UhbT`T<KP^0xp0 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SingleExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/SingleExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..d0314817590326c5690153e320b37c4eeb9b334e GIT binary patch literal 478 zcmb`Ev1$TA5QhI%<LQ}zP2NEp7i?1nQ9_Vhagcs*9gmg0-Q#u@pDjfmAP*IsgMeVH z#A1s18Ri?l`T70&1~A7{f{wtOZ%S!`2~jz@wW{z@(vkE&8t*uaRH?c)u9TJEkd=XZ z7mb!VXO@=7x}gwwHbGBdyi*4yt>W>l*pZG2`U3B_GG2=i8>Qo!BJf-i_kRa2yxW-e zQh|@jbbTx5|GpOnh3lYfa!=0mQy|U#zR|QYmKb{}cGfy&ivnG)2mW1$O(z(jH9kbj KiNL7M@puA+ub?*o literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/State.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/State.class new file mode 100644 index 0000000000000000000000000000000000000000..02e514fa9193d9b5a9c4ab1d9b8b7240e78efe20 GIT binary patch literal 798 zcmbtSyG{c!5L^eskt0BOc9cj-gC*Jk4J1_r#YOba-R9)TkJH&f;nyhm06q$_KB7dR z6zJ%@-tl;5cRoJf-T~km&Le0rxV2@@rIXGJ!>3A2tmnAEbnc}!bm>uxqL3!%+GeP@ zquO|x@+9;k*k;g~i5J0@Ak5QbhN+KWhrvT#;zyw|8z|Ihh-vpfOxCZM7(_Yxz|G*a z+Z(MlC%z<meFhf<NbI~!aa;=HWSGFcHCc6V3@+(eFomg-g+q>d%2TVgHJqlU_+Ug+ zB%W3xb0hq`q_6y6-rQ8Qb(XL}X#Z|$Wh_cEv;jd@+QDjA;P|y5m4l_qIucei^ljVy zpdEH=8(XvXo*Bg7YZ*#KV&kfJ6&6S_W3UAcXhKApZc-Rq5JL#%9<-^qPqz&?p!)Dv R-GQSDcMK<lp-fcBvoBbK0WJUl literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateContainer.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateContainer.class new file mode 100644 index 0000000000000000000000000000000000000000..b0f7a14646c027c35dee986cb494a6feaffb36cc GIT binary patch literal 1345 zcmcIkO>Yx15FM9~&^BpO3Y2e7NXZ3DT(@w6L_$i{NU3^&lk3bbE?#?Odr^NI2YvuQ z3Nh>5E>*OLDpC(C>&<%Ry_xaMpTEC;1HgND(}OJrGwU+0yz)U9o@#M!1IJ60Wl+|T zF<>r=LYa)`c7>XI!X_xmm({;d)&!vpx*ptRFuD*w1=oTupPXNy3_ZBd;CNGpQ-`<= zu9Ts4xSDFr(F6wD8HPyi8N3}&=2du<S`{8S<|&sp&#mE<facRVC6<uSQe{R|aTugG z@i~fNH?B+akw`}*^ovna34Nt^k4!UV{u>5lSU8+19neui{&vMpuR2SOTdAtWQRyM6 zICaAKXlnnFo^ZQ*I!L3SAqo17sVH^bY6d5bkWE_BW*ysbCUl9^o}pjoSd2IBdKbmy zjKMx7GQE^oRJD%uWFz8r+n^BMqd%@^jlt3QTbGu07VCTUNG?R6$734bWb&0kUw%jV zqm7nyCU&D>l*4WeRzFb&A39@cQ5w4Dcp6`FbJY6gHmjYJsv<i}TRK_2c$&q7Sdw;& zysH)ntqcZt=(|U2s!waB2M-8s6WW3u!n<p@zlI0b@E+YCUc)28`|uE|b#(xb;`zA2 ZPa1p(Pow=AJdfuKcuCw0UPT43{{c-RuF?Pi literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateType.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/StateType.class new file mode 100644 index 0000000000000000000000000000000000000000..2658997cd63b4077b6dad7684009a9da75c5a75a GIT binary patch literal 3114 zcmb_eOK%%h6#lNquQ<~OrVV+twCU4!(z-3QJQ7OXGyzk`fjCKVLn#w?l1@5))E*bI zK;peFAR)1%AcTZigp{@shzbb`5*xN`S+L_LAmF=qoO;?A6^TUh+_`7&Ip;gydEET` z*Vi`z96~h&pFpZyol9CZtL7M`<g9JXl%1scidm>TR=Gr>V-}4{#VXAui{*2sovd+R za;!o!C%;WBRLl_k0_*3EOGeT*cy72<FNP2l*dtAw1>36B%%oYIO%}?<V!4#0X<MB# ztA<mq3WU<x^h7$95g5w+Z#V-2!R*-hs5BQCNoVD{uHoS9R4Ow$EFjX94XOA_&Xi%- zO^uX5KzB9Wb5bS*+Le)}h@|PtPVQ`Kd_0vGI5E98uwAPH8#9Vc#Z!ivVMuK`Yp!HC z^{Oc_dDrK`HSm6vJ_45{69WE{QREVJ-Kd=AoGMFzXF|5+Fl{zz8O~0Q?plEy9%P<N zmUC1<i^ZpCWQgSwMkqp7ck0-M-OS5i<H$g4we56zwQRK{KGjBpdv$~m4x>$O5<1%C zCL%ZcbVLxAZ%G|nu}Qui)NwyHMeq;~hww1zZL*uHR*i+4jw5)4@Qj*dTVQu=+T(d_ zX5K6~194Z>OiBcgVIYLZ1vWPg4wY@2r)BTx7{n9wRxh!0tXa#Lu}#<hjz;)RTdRyq z+)wJ*j1GYf8LMPw>%|$fIw6h7)RYT`J!Mpt(S}f)Gl~6F3u@zQP#`jo!#YOrlt9=i zy9FVzDb|4QEt3e+I2pn-D^z>F>BwM|RGSy;hFv3dUbrhvpJs<zJXAGnb(=A*<E$xM z7&R)5NZT0c@r5j_RHDl1n2@MKluDVvNG!cJA!|4#OZRz!4lm9|H>BNSJguV(x=h#$ zI=ay#-(J+Q1wHHn=e)%z!-S^BjOq>!p9lq+l}-w(zT>fxSbQxeNd&VvAHv+7^e@yn z%5_+n=QJ^7-51K01-6ejvPK5Ht+*m$wB%Sp9h;3n1C3okN#L;8z>sa!Y6G6`X>jGO z5_v&zltgmndbMDVShAwm-@Z=v%VrXI)nh{{tj&;9jd1TPY2esFCQ;)r0R32(95w(~ z&Kb3G#PDwDLOXPxS;u!D)^oqXv){=5eV%=kwZSo@^w`$adqC-RBFd9G-{pxOwX$}A zjoos9ao<jF4`LfNwsUujXyjl08;E?gSJR@s(cT-_aTR-%B<A-=W6_wB#FeBk5Qz3g z`;??V_$}46CG5%N{Y!}F@_{Av=dNP^zkN8cgagYsw2Viu;^>!j?87lWkEpOEHN6DB zlOgo6Q}*$B7-KAqN!XZ15e7;yF^}_j84fy;QWiiek7KA2(%ZBtFWcSP;AiNfzn(** z{nv3KaUD;8h(Q11TSD|ueDliRzl%j4)D(nn1o{3NbM!hndV`$4Ne8bH%sa}>cGsxv zMCG&>S(T4=LLVciK0Hf#7}}o*h^UW{p1T*M@&5$rG9kT7NbeES`-F6vkUqErlACBB zxw{vn<7CoJe1)qZ;6(T5d;)vbQ|1FIz-?T2GO>$HD}Viq9;!Ns2>6IpTwxJ?%uIcP z7(P{)WC_!1qX;D>LHM_5nnugKwr_ja6y2SPzAZN}mDqX>`9zoh8m1FnfonL^tPI!J z_dNXrIk?3p_>rallk$~-pY}U(RyB}(lcg_n->Hh<{VEd{px>8RJ#Oqtt`cP+@fGr4 z@Wm~{pc4M#2_w)jE##fhLU~%2k5~EEmdZ0NmCxL*{98+9-jOXluTuV_g>oATIM+}< zLJlM|9ZT4sKdB{d<_Bf(j%q#2F#GR@!vEw|WU{j^+%Dq;W0kx`q9U;j`#Y$b@W$WN N^P#LPR2qZn;y;|xw0r;n literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TransitionCondition.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TransitionCondition.class new file mode 100644 index 0000000000000000000000000000000000000000..68a242bce6de5ce8f5d9d98167fa6edb77176dc6 GIT binary patch literal 715 zcmbtS%TB{E5F8h1pg<|0N_;|l!4lV=c$5pMJ+$KPCQIZhv8&icd>aQofR93~lY#`{ zlpg%pUGMCycRoJf-T_?UJVHz0!4|31PCKuRe9qLudP%Pouf4X0ot|>FT4|HY+$NMs z$F}i0mh(axr^BmTYm)L3VOOBHR4+<qiZiB*CB;5MTi~u~nThq3j5Er~c!6$8erDH2 zOtU~u;Ce88YzkdMj2P7Y0lgV)i8*|#sLoXp2v<}?nO}}R$Hw1Z{qu<elP!9x<8gz1 zu3QfYOq=&vhZ}{aJJoRRb;h%~_(vj_K^?3IfgN6ZEW|czCc-{~b`H=f&%=#<w6TxT QE&V6xafZMt?=75t0lh=&ZvX%Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeStructuredElement.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeStructuredElement.class new file mode 100644 index 0000000000000000000000000000000000000000..9d2ae7d823aedfff500b36a5deee8a3e46d845f7 GIT binary patch literal 1488 zcmcIk$w~u35Uq~OxWs);;)WpT#Rjj6AQ-*GHR8crr&9?NW~M_=Ptfo1Z#?(`ew0|< z4hou}nDH<aRWtMI)vM*@_30S^_F%(<9D_5Zo7|86*ocTX0#Q?j<2}m6_$s2H!BDi@ ze$?cls$;-o@+0F*exnhqMkmrF8tdf%LyU|EgAAryq9b@9=%0&P3nfK|865vL(YXje z@EH`EXu7738EkFuRBRTMf!~giW7yzQg`tW#l@suCh05G#Fk1DSk+8fObbj;CfrHIV zrTs%of(p45nnYu8m6FIV1L4P?_}AMR7qD~7z_XorXp@G=ebTomq=-k1-vP`0@pX8X z;*8Z8wViI#*><17rl{9HV_ipyLH2^((RgYMRR@1ezDx{z@G8AS^mtoLPJ1uMEH%k3 zrdx${6Xdtxe~fyb+He#Zlo%_`;4zEtW<1ag#;PjO5>NbqCc4;F;a#gAoiYXk^bFAz z&C|K_V1&F;@^Uan{y5~pp1}#2bao1+ot=SMXXn0rKMxBozL?sj)GnvC0L2gd65+1E MD&=CZ<}$9o0e4pLRsaA1 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeType.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/TreeType.class new file mode 100644 index 0000000000000000000000000000000000000000..ebd4b192831d97c7d1ddc6111641c148b33dc82f GIT binary patch literal 4059 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitedExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitedExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..dd577425dd623bad510c07c5c7d2933310d33b25 GIT binary patch literal 306 zcmbu5y>3D=426&RyDcnC-MYh4ORSwiLP9Vgv4>z#Q0`5X1jMs-=mYejDtyJj(6NK9 zW9wM{?4RGSZvZolDs%|TkWTEf%f&Q&^kyFl%T4U1xX@^`NNr+t&57%95YJibrZ~$x z9V&8|-(r%S)m))R7@y76us7=8?9XCLg#qEcT_V=In1!W2st!qb{;&`R##)Jmu%4{` s#S_w#=X1Iv47cHutSp=t!rLF_j}}(}30;l8{)P023NNj~tL6@dckjbsRR910 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitorExpression.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/VisitorExpression.class new file mode 100644 index 0000000000000000000000000000000000000000..da631cc4aff87a7c8d6126e9f5392a38b01f268b GIT binary patch literal 436 zcmbV}%?<%E6opSQ#?QveGqBOb*2;o}5DSTYXIxULb}}vTY!)8CLy0>gA?#+;o8EhR z?#b8t<9Y)yL_0=BVCM3@)L#3btlSxuxFG35=_zPuxf$rFvP|2(Ji09z>G^JhPUVIl z1(#1QSx(-wI7UsNb5Lg`jbi;OIZzq|qI01XnD-WCca81#vuD)baP0DCtFO#2uVs0! xHG?tqldZLOr#z*pHYCvf<1{D`)dd8q{0~5tu|=q(z!xEY*9K1nntWE!dIE?#jx+!O literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AbstractExpressionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AbstractExpressionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..06903843050b04a59421d95472119c57747c5108 GIT binary patch literal 6167 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AndExpressionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/AndExpressionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0d8e522d818f8b59acdf676d63bf23b8cb6ed620 GIT binary patch literal 1787 zcmb_cT~8BH5Is|tZa-E~Q2a(v)V3(skHnV}BVskxS{m0hCO(+k<x;O~cQ?BW;b*BY zMj!kE{wU+@QW1)hw3uc)dnYqz&YZn7KYo7u4&WYyi439Xhh3o~9mUcU8?Nm5u~0k8 z*^0IAu`^aZ83fwvik`o&ToLivi?t(kFL1?*w_e)`LKQ_EU1yI8gU~t_=401)HV09& zgxaX62S^gK%i7cNL&8|8+$I>S+*bi(C|WR)BTP25r<z;6jtXDPj;jb$4d0P&TZTG0 z_nk)kUPs((V^msy7qCjOl+C(pXVsMvSC}i6(;CWgbr30`dK*GHeyBt(ji}}^jWZ@r zA47P%|5aPk*_2(i(9p38r5jn8!CAt@O7qFP+MCv^nr+wDnuOV-8L`OHaa0iV{VI(t zP@Au1?1z7@Lbcp3;vz1axJ0Ors{0{W3$wUF7~f9n5uT6E_`pqLwglQHy!ej_5S*du z1)=ZyU2&-IR_d>o8z1Dh6t3hMx8smUy;{TqZkV`EcsZoXN7qV}zDamHbPIc1XF%b@ z)Cp_D%6&9v9>{|2Z-tI}s*`0fbAUp!^Oh3*cx>yQr^0k3Rb=8e;n|Sl?R7aYj)dIr zfy6v`aq%<GJKW$OuPi?0`E;Kxu^q2`LE#g>WMJ`sfh{n{q4PMwZ`N)QCNRk-11E8c zJqf@P+XTS)jH!=ock{EUud*-K=;sp7;e0>$5l1I=a*LI(xRAkM{X0zbZi+Fp8`sC+ r4Ca<Jm7rbiqb=`8yOzNqn+N|yDltL^<&=E|i);(*nZ_+FW%IuP;Q<y* literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/BlockExpressionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/BlockExpressionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2f2f777a4d0265167ef5bbd16346202b658b85cf GIT binary patch literal 3644 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EStringToTreeStructuredElementImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EStringToTreeStructuredElementImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..13ac00099c7ad0fcc353488b909c0a3403671634 GIT binary patch literal 6032 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 F{|l8Jfp-7^ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/EvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..885b6185738dcbec9a4e873f93957046637584bf GIT binary patch literal 3974 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExceptionEvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExceptionEvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e81ae15d324efc614fa4487ebb98a0111089788b GIT binary patch literal 3005 zcmb_e+fx%)9R3y-LU6sHh-gsK79|8^d$FYzwS^EgH3F3ogjVUY9AIU$8<P#flbv?- zsWY8UpM2=__RyJ5AJl2XOr7cUxqnlq)9-B75V>`x_JQo#J?Hm*-|u?(^Y7n&2k<)9 zL#R`5(=9CNR?#YYhNCaq#=Pt4VojJO&vG4p^hD0c=PhSR&$$c2){A_1Jj>LrT;A4` zYo^G{lgU-XE*Wx_aGeE9E>b)Yf~p|%Vida}H@*P!Ub+=@B(5YASLcStX6BMN63K~7 zYJ6-iIg%V5no4IBD6<Oo(@hyNFH65gJp&2_E#|T?SB9MRD!hWm3zlPfmlV{;da?@C z1f$rDdK}WAVSkubhc)a&lY)b3%MoLx+`K4cjCosdC+(Vsoiz%Ud=EaV-m+CxFqeL@ zsQydh1{G*xlIge1gl!Z_7>)J#l)|*Fd{O8kx2Ox#EeJj7pBN0|1Uf>9D46)K(k6rA znlQ{2V@Y(SEl(5-yQtwLPANE5la1_9dTPi|Ok#X&Bqdiou(v`5N33FEdybeIrnI#v zyd5^x*lbU>nR)8ca2insN5z=yS&NqGm-}^br(_kxLI~Xo`lRFA15|01S}WNb%{YS| zSp{(g{jpt?ryNGWG3?~{{B2=+gQ?VPAg52mS@bIiRphKI(6@t_ZZ79Kx+4Xz>$M67 zWi_@s;_ePEx4QPi4xjh49?X?%M*dkPip#=Na4aS@rEeRnhHe`i6oFJ3vo|$#A{xd3 z-U;DtcF5+bVb`^V;b=Gy7Mq&6K9yvCYG8r`tg8WB)Nn~2YZx6$PbOvmyr*%5y`dny zC=9Pu5UCM1W{Tk`h@xw+vU{3jac0)@T&iMHDs79UYVZS@GPwh|q9G-dtIbzr`E4yd zxT@hLyet{7X-Hy}xD1-VEgN*xp8$>>FQy!p5?Ny@30{v$4HNi4?xc#o5V<oeccwLD zFhxwyo%9NvvdjtlY!kKebx<n#P{T)3ViQp&3hvsv1h}Q)24+I|nBHx*8ZIp^ib6By zFfYr@Wa-AXL-%Bxzz`jc#>}mqaXu=ImozNHqI%u~!dYOI?}V}qxWZ25b6AlGwt@&- zX|HoEhGn?&Tw>32w<v~bF4+un`)+^=nkU^-!4#vGoTaC$GkKS*s$YhW1(0$aQSc|4 zD28xX!R7yHnlW?F<{3+h7XtqpP=^kL(8P6^cSs$Yp~~xk>o8ZmBDiyaZx^_y@Yx*S zz`=O^uV{JfpFhIi1H=ORNM%ceF^E>aX_eDBiZ;HfIEMBBsh>}Yq&~s%M|{>nVl?{S zMrv%;z*dnh9N6lCZA1JQwEVoq_*#u|L)Dnw6Bys4TT<w0X?!srp%3vgUU`VN_*0yj ziK`7Aa%TgvGJ2(V^}ez;MhVFBcbd_;ffmf53$s31v;r8A5gNK5%LXcbm8&|uMqB#! z7rLa^92tR_&lwYyduJm*@fSptk*NF~p{#Qc5q^TVenjIFTzC|Zbe!D4yE0rAQI(LJ z6d_2u<co<{0IOooVhF>eBMB0|7`YnpqabB5!L8bGh|`CMI9dW__edeb)Ey}6<a$$C z-yaw#<8m4AKaNNGHjv&Ls5{hBWXe2-V3k+Q-I_pkSG9FlwRK|*<3XTQ)V1!T3{I;+ zjKdvC9u34Ce@;w&MaBlMZ&mRLSwF>be8ztY?o-VJUqxF5tEwUzsF2Z++zn*qJPf!+ zz}*>ew?D@%3ostpKvtGvZBo7<)t99Hs)n+&O4+%EQY9HDXh3<NNYdSNtbo~vXkxS7 zeDoA^Gjg#3Bi(y=p^U}pURkJR+@9_|)Kf-oy0?t{W^tTg#Q|Tl2ftz0eM|ShLk!=u oHh-wmbS}`;&Ixb_1uBqX;8f5kp~z(&b6Db24*wI(<yvF-A5Ar`d;kCd literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExecutionConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ExecutionConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8ba8f56d0eb311a943599bacc035c7bf26bd9ad8 GIT binary patch literal 15378 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FieldEvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FieldEvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fcf818b34fe0a56d76583a762b4ac40b8e701bdb GIT binary patch literal 2972 zcmbtWYfl_i7=8{r?80`i2$Wu+Ewo!*7VLOITT89wved21#c~s>(qTE!X=i7a-Pu~A z##{Vm)UP$(zBMuZ&{l=SCdN;i_?wLJIWr?nq12=$**Ry<Iq&m6@AJOr9sc^~*WUm< zkCg;!1ZLgxvSC%Mif1~;l5H-yo*}QxLe;Zehl`#pnx&HEEE`34QQAg@?~Z2`469hO zjbTgLi`i?YT{YGDLDyNd)Fj8v1T=xk$AaGxIW92%sK`5U7HA&MW%EPxqx~b<`Rq`3 zxPK}?DbSR^VqP;1+oT2)UYSz#3DhsC$Vbhh6sS90ur0^(&IrWPUDE>EAf>8@z!N$W zs1w+ow;VZIEiTCNq`6?zrYY|hOncfaTk1VrjGy*ll8B*M$CKElF!t!ER~VXi*{TR! z%s*<}|C=y|rOOGX+$s#(W`)i=(p|ng$pA|gX~^P|Aq#F<8d?8DUp?AzFoE{RNXJB2 zP~&Fds<|vvdCQY!)2`?^gu?;{f}CWh`}0%%lew|c`N6T#p`4lt9C|oA#<MIvKi@&7 zS{Tm*lBrkjJGCdh{ZQ9*lDRmh<0(ANoXAnvvzDxaU-cK{O4TaMML+#>33Lhcs3dJy z%}+r#YO5|v5@~d+eD_es^bR5A9LnODc6MyxiY$12xm<)~xVC*IpnY72foBC00qs=* zW4oJzTP(Vc;i$k?jVQ-HRnxj7-;F4#yY^z_wSi?*xH@8%{7O#XMS;exLbHVBIq3=P zP3Pw3qKOFUD}`Uy(Sc5N1NwBlgcItfNz<#AWo}47<QPO*R$TiU?~s_|-BZ;#xmx0@ zCMOhnYx)7o1Ud}qID(@Jd{{?6258QxrrEvx8@Wk1BqR`*Qx1!R;OU&gh#{{dhx2MD zSMmL+ow+1>F|OkcTu?hJRn{-7Bw9xyq&gbIq>d4=e(O9p=qM`m869t`;;JL^c-g(a zs!q=7m_la)Z!xe<eu2?Ib!kbKlema?RP`LK!zF=+j`T)rI@O^z7jzWB;*7J8ONW!5 zD6g=iMbi;Q?^6g%3Sn8GEj{?qbIeDa*{RwTY+s}p?*kM_PPo-_K@MB05qA1jv_qpm zu0m$*<s3(r{f;9m3Ah619<>Q>={8jRzkY*G<{-vjEo#uN`Zm9kn(DnAlYAzzi@Q4C zx;U!8TJaMa?r>6r-FzlFf(=5Wd85Co0NBPuvoqXRhI(clO_{rB_ysMS)=$tmaDo;F zEl&CfdT<`C*vmZ)`>;R6I?hpHX?JnpHphTL++XXD*lM9Id$}K=qHlz@wV9vMveo!} z#JG0DnAe6z%J^d{p@<$+#v_?-#*kS<>IPaf_mG~=Xth0RXB}L9MnxC%wP~fSzyzO@ z)M<*UOe2LE-&sch7&;>~o}&|$hz|anQpea{pe<MaMk>LJCRAex>AXi(H12k`{m3V% zkkTUfHIu^0+nKiZgX=h@;tZ$+LSI4)7AWVUPazY4Y*6ULX}m%g1jZS>>O*$oEN3yF zjE0&Pjr(jOA(8jFqjX7yMA}0VicE8+=Xdn3Ven3-t!EwCt+F`eQex4p;2<hg+Kb4N z+TfJh;FQ8SycWu$m?*K>ltLyY?kKNELMCnZF=5#SMAq^8RvsUa$A|o)e?%^yF!E1* z9<2e|29F~l50w<<Jwd<hW}){lL+=Bj_r9oiI{%ZU&-(ZS3GF8K$8KT|7uCud#%>_N z1x>q^X<Ns{Em}r1_Bq*oLEm3RSPg8j8i=skg+xo^Sy96uNQ(_LB=;Esl{CGqjOiPw z<3*gkeGeCB)npxS=ewKc*I>?c2ZT6j>{^4I>0ZO-%>p`rI5EEFb@+z$_AL(MJAT2x o=e_zNLajHXwvS?3xIzX>Fg6&S6s~ew0~<w-s`t0SK`CDUFRjIsjsO4v literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FinalStateImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/FinalStateImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c7d550ca7cf7a30260f9e28a0afe2f089d92eca9 GIT binary patch literal 3254 zcmb_eTXPge6#gc=$tIg2kPt#3AW4k6myl7w8;NKL8(i63BsUUNoNRi-!0yblI}4=r z#q#!QS-$XMc`d6fssz-eN~$d1tnx>R-<cVbO*ZlnpxEh|?mpl7&Ua3q&OiVD@h5;| zs6<ew;ha-iHmtH$c1_#J<;_LMHPlU&t+<wBbJA4>vskq3WuxFMsk~9<x9wV4!zvW> z#;9eR`6=0z=4S+94Wo|*ScTP~;q*?iHh5|1OkGHg%uJ^z#xG4x4^O8qrOu>Ahi5X= z8pbj^b&z@}kw<ve%vaQ)hL&~ZylD-ML)pA#Tka_hp;&xYLwJNLHlYQ3BG~;H>Tly; zM=KgNG<dPiH$lT*9TAz@ov~~+UMVc9(zLmlR~p(fPS(uNnk7rVgUN;=k7^Vlbn56p zvtS(5(IgmQ_p()f9L2V&7b>PJQOe4W<jpeSyJK-LC5o~Y%gRuNoT0K#Nf{|`$6yn> z(HlXJhRL0#ZYrqYNi%!ZTvmM<%T*;aU)J$7`ZP3;rpJdfeyM19>d|yGv@R=mb22nc z1X1kdSZ&67SXiy)S}&8aCtAJn*(lSU(2+#HhJ9+>ajl${WpW(*yt-DgN@~fg;)MtX zH1v!7wQ2IQoT|2!#t_9(JTE2n0`un6t~E{D%mdp=YGUz<%DRK;bmoeA-8Awhn@=!T zJLA(nuHyt=)DZD$uV^r8-DI6Y!Lbcn0$VYvIS$IvY_-*m&FXW`$uDi4+r^5_UL7-w z!LbRev&z-5KbBrth}RMnRflvugJ<Pnozn3tPHJe%DbuZ#RQiktEluJjRd({%c{H^J zwhbxy>6Ics!)i*<J7U|Y;m3Yf$8(4Ycv{C9q-f4ayvmV-UZWvfgqpEgPy~;q1tWwB z9T|+tO1kX%la&QonbI+dw~6UGQ*Md(fQELK_XeszJ1Ak!>9`=p(@2!bl5=xK02Xvi zV<v)k7{peq)0JFKm7=(a_oO;5vF>8E(DB(um<**mrZ#omligyO)v*K$)xc{?*(}li z?I3DUeb=OY5zB&bd5d9CaJ7+E8D0^?s~WmuBaht2j5aX8l{_Wy{68idqEk+#lvSga zbm+YsSD2ij0g;aFGHu(c<h4Roj({EW>=SB(%-X|7h#uxL#9uw?a7eBY{=E>EYk*^v z&nTL?s`D$!QT|2lVb`x{yUW))wDTF|2*lCAe!b6|6$subf#E5xi>aPi!~VoQwEd0) z8`dp!4-C@cI4y=e1l`|{E>aS#!+0vd8sI2c;d?l8hojG+!JA7}*@gpKO%7vVYXr9S ziQjNwtMPc1as9e64_jdT3$+lUh8T|}l7FL#k^F>klF=kq5x<3w#C;r{PlOx$WzQOn zRUDHzL!L?<lo*)f^8&x;>0$u`tVmI;+lLO^(g|LoJ4s3cFY~PquW(mCLJzP9p$N1H zTKHc^?SXjMn5y$%57C;<Cm{a;H4JlKPuI_U0-gK`8~N=e`N2Dhu0w~{@S3RN)AiG` zM5;L)z-5nS!UtKW*@M^d23-&s!#M4gK@Udw7V-#(QP&>kIvZ6$<U_8AihThQN$&=c z{=d+&iqX4?uKqQ=xmCInxwtHd3d`XJ@9&#c()F!#>Rad3hqrJpkWQG0plo~rlOk87 zY<mMHU7MINwLXzGjBn-f5qW$}f1i-cXN>%Fk4J}(w$7tB;30_<?@Ws{*TB0Ic#j3% zdp3Dz^^m}is1M%`-A;6^;rwl`SLfvma`+Ox_^QfxY~6RP%6C0N?agv#*q8(7pAt$! zKf%n;-a;df<@}xdxHvB_Yj`)4Y<qtdi*rdS<5lG5l6&H-u;!Ah$Zr(LL7sQuYqo}O xSWn;L2)^TC`JT1=LlvnL0jW-kRe((fA_yCfP6`fR>rlisj&i4TqXf61=|7xs`cVJ? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/MappedTreeStructuredElementImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/MappedTreeStructuredElementImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..da2f9281b6978bbfbfdd867f645c90309fdab826 GIT binary patch literal 4432 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NamedElementImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NamedElementImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..1bbefdb94887cc79dc93aebbd431f5331f5ed2e0 GIT binary patch literal 2779 zcmb_eU2_v<6n@@h+ik=0m3~m$0<8p0(@GTU2L!Ru28^a3(o$>zahtv=OE<eA*&rRb z@j^#Oy>-NU2SqNx(RM~=9Itf7-{d$x@9wrNEpow_nPlIubIx;~^So#C*FV4h2H*&; z>4*u8yS1gPRk!M%>14~cx!`(Pc|(>Op5;1R^kl`XRxM{KTX7eqovm~3cvdNERjPJ& z!mP-}ye%uz@d{kfp$QyPE@jEKs&$!_l`_X}O$G+}$%U)36rODs7<<<6(Z~YZCr*y% zFXzYdr%#?M&IlxnSIz5Y);5WI+N%+Mj)zA5j2v&)v>UPo+XNt>Im|(z`MBj+-U)$t zdSI5Tqs%seICdM@jvcK$*k-^$i@?sJ<;aOfWkJ?v%mtga$)Z~_?OC&Csd>1lc~`8u zz+~}RGkhY!Ov8}VEQ?hdwaq#M^rZ*<5L*e)`zLa(=)qncy#iCu3S~Mh`jlB(HkV|o zXnC?`+I0i_us>vf>~g-CAJ0#a{e4ddB%m)zPZdz0o#>xXD!smbpd-C?e_%GjdK@%x z2rme9$O+f8%2tV_xXxL5tzp&VqF=~)9RmVGPt#-6Rw+1vGzL}8hsam@KN2Z8%-=EX zP|dkQAp$Z`cy8-T0Q<0kEM6i90qhll?A9<Pw^DJPtfLZJ$wo2elsa`seiZPhyY^x* z+D=uJmdDMiuRk5H3hdg<EOjl<NKar-x-dT<Wj+M0cs**M5B*B}IRmfZb%EBhG`&Vm z7RCfbf#GYi?%LN`J~1!QqHg!hN|jShPAl)7=_l|JWItx$c^pvAPa8OiQ#5BT{)K$} z)`oz1G37ajYM}FULHUTIXrO?1)J~!9$5T7=2@GS(z<W5WcCIxjPiiBop3tQ_8pn)* zaZE70=LQWzrGDPP`$|$R^gLB_Z>*@3^9IhLU&lozwwcgVjdEGm61ad5lx7aJ;6qyX zrBzQk)~D7N43t1MHnWRLhl8Ogq_8(dD-kROj&sUGS$S9z=t+-0^&Csl%)&Hma@7@4 z-(wC164P#@R+6VJ)ww#9cA^dZu*#4<rr<cT=JyX-*Wn7B`JZ|R=~?d{=qKfIewz?O zFLbnU+{$-T3<+qe*>c><5gRafc5?P6_t>?uEwhGQnPlP@Bp>(&?fl(AXTUKUyi5l< zbZ}+_$I*#BoN4I7bD^uld@5JkPw2kSXAH_mv%i*)*lM9IJFO2`!N`WTO_`sO+-y7< zF>cy0rs`>=j6Y^x3g|&)Jf0b34w+S?Zlg2v5b3#$79UbOYvAgOD!aIktdleWbNroW zb{DW47m>mxKUiPjFbqc5WI&PGM9fDxis2R7a^-KNblwx8?sW*~CRx$A+uw7SzaT@8 zK5c~X#{EoB@7^^WQ+WnZ0-~1)%Oai2K7>r*WCKD!j<Z^d;C`IITZEuSBOJwjFdAa* z8u!@)LLj%eqj*V$Kzcb||FmU>e#h`CMjvE)hSreZOv`m*xj_xBU@vZx>01$6QX803 z8<<i!gSSIk6cR-idrFAJ<&KXxMAE$ugU>dqF2J#dcQ?cMlrTO+H$LYp_X~3Wr4OSs zOg_+{q9LG0)kFnXnqw~tgMSqU9|?mWjRsF9{-j!{jz6GlchD8TgZ5-XEv#blHgwK4 z?Ovv54b%5%7cJM<#P$tu$F~toBOBC=L@;fG-oA50#Q0Tzkl6e}XrIub;$@h!n7xe_ zUc$Ni4{>2m4c2g}IGDV=3iJG60EmNK1FMkd2Ul_Bk$Sp$$$;;8HJJdu$A0|4ckW$Y nsvjfJhC^swtg3~pM4;$mw=f7{nZp=tRQObVy9W-c&8`0e7u#8| literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NotedElementImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/NotedElementImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..83aa37b11ea11dd4128bfa23f09287675dcc68fe GIT binary patch literal 2380 zcmbW2QBxaL6vzKJ*{~&DT1#mtO`(m@ngnD^(N+y&E2K0S0yZ?&yg18pNw;ivGrOCX z+E>T%&38Y7!$a$+3_9cZq%(df$8+y4kOowShuqEHd+s^E^S|fZ{p;^vegkk5k5t4M zmRzr)TfXH7hNExT#+n=Ge2bgyz;Yd$40zLMwJfKhH{Eq^>ps0Zfo1Aevt{cQH{k0< zn>V==lxRYQ!f;)<<fd)4e6I862K{$E9&RWuuRY;rWZT0qf70-skr@&Wf%pug<?h&~ z+ibdyPU+Zsu}o<e7<#K#!!d%k#~JSb|Be}H(xs6|DO5y|6lTe7&y3|*!7M{Oo2xM> zb0k<2ah%m~8XCjdvgPnfySc`_Rb$Pj;QeLSH0+w;S>ipKRD#DArLuff)RUhK@oBtD z=V_U9w&7ENtJ&P4+{2S9N{d1-1~H`KBE!l_PpKMJ%Zg!c8Vx>HwgT=Mwy)t5(hPl- z<<;W+7sYaMsaRQM82N7?hEok52)zma+7b9i9rogJ?2dQDy&%;zs5qtKO@<rYwHB%u zmReZn54i8zPpNxk>8TiF$Q+^N>&28r2G>Q+yu~n+Ek7}y8oF&z2ZqP;FB+8`lGZWo zsKW{+QG<PS;^yX((b}smzQ6;9!EC8s&vkeXX$wh8a6-dn42!y*)R04-+GT^wW+}}x zuo8pn$*ib;S)GnVz^^`U(W}C%!h0%PI_x@EJB{0TU&VWo1f3Vep>xylf#{foX>-F< zF~cw*Wsus=xwcJr2;EP@<*bH}aEH3jSYN+u+YCdIWL>s}TwNsfv4(f>E@3<TS<SH9 zvI`F+j)Wk0{GsEEY?Lf1DR$o1P{cj4Qu1Y<Vx=w+${LnXAz>`P*lY#Q<qaUCt!OA= zks(=i+n&kqS)%JNblzR!)|?dasXt4O!##P(+*k3CVd02cIo1`>)pwNcUguG55gz># z^ixDF)3cX82r(q-O%YcW&GgaCG(8zT6ZsvSc_mHWpfO3Nz%4SpjdS!*n3ECuah{$E z25=#AFc~>een9Fat;Hbr_elFY9eb5%FB6qVRw2%ags4UK>HLql@+bQ9zasN_|7bqG zgKIzGikKCy<I?pRdV&;Jv4|AP9U;<Dh^(|_DPo}7jyPWswL%M-^!GFZ7v&fZ=kq^f z{AE6Ud3XnJcSovGvY%lHbr~riI*B5YJLtF}lg(g?KDa`*45@mPC<TXt*nmRoRF4tJ zx3nTMn2tckLk2lYkX_tj5JVHdqp*t)V|er`pPtykU2#642$x7PfD>AS)O?I_SeU>j zg|#K-)iA_9=JY=1H0Cf*n0s)8gheGE!FjYIQW%Tih9y=w9KaFI4i*k*QdAj0n`oX9 z%@#)RB}VZ=lB7a^`y^u#$zFVM-%|TT@wcM*Q&If<Yw@WL{=hj=4!ih-;X5Rh?fABU wS>7hY&ieR@V7?|<zUhFN+J~6xfJh)dFu*A8r{p4r2dL6hT#|!WMXjgzA9BDVumAu6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/OrExpressionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/OrExpressionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..46d58fa63ce4726bc046548c444ca505cf84668d GIT binary patch literal 1780 zcmb_c+iuf95IvhZac-s1(sFML6i8CYA`nlh5TXPW5t67z5#j}H%r-1_Y|D0{eirb8 z;DHa|qYz`qppZbMxX7~CGoCqf_IPK$|M>b1z&&ssDTWu0*XPPtejsdqXo;Q^aCt1v zVW1qFoPit&*Hw0(51hBs;y&4SpiHg?uEpD4{n+)S?^AGt96B_H&WRu&TaI}&jhbP2 zk`#54BSU6S*(!L*uv98{8MJ-cRUS(y6rm%_u+mhvYz+rJ>Ae&^OERoB9aC6c;i=G$ zom%it`3&u5QdWPJuf|Z628piBeM|UMV7pX~N=VaEt}nS99CB$op5*l?qL#xN)^(gc zf$T>7OFP0m5`DSTRDtw_<rlGma}3MvgE#e8orAhzG}<kO&H02#Vqu!n4H#Ob#PW3M zNCwWt>8h2x1zf@v9hVszNmZYLEn*W}4Czr=kARaio;+qmmVu2Jp8rPy7|ey)xt?P= zeLl18PUNqZoA1R)a7$2o8-Yh%UMpY+H+9@td@{_h6$*We;q}5>_&sp`6nK_-f^M8o znYuA=I782rPgOVw)+ZT+)2<q-M=jg1ZRthrD19Aw7@j3PpHr>Kkp0z+xC)wCbf;-} zYjn}HA}dGMeOei<>B?v1KhjGIMSA9G1-2-38_V=o90%bPR>;zD8fRjFY7C%#!s-Y5 zHqOsP@#TqJEzV^)j|*|`BZ>~|WOplHa507H`kaW~jW9OGaWMvE5U+4kA=<SVZEq6o edJ5BQ9{dxjL<lLABlZ>S(wZmF8g8SS$^8T)coZQ3 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ParameterEvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ParameterEvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e251f6927032b02e7fee0c47a05a2a6b5a3e5261 GIT binary patch literal 4585 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 Nm9KW=XLzf=@xQm%mRtY; literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ReturnedValueEvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ReturnedValueEvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a751bde8bd3d5b91b0e23e1ac3d5d97ad3006421 GIT binary patch literal 1019 zcmb_b%Wl&^6g`u=abpaHmiHqC(M7_dBf+u=sY(rsWTjP-M(m=AbDIu~$B`cup9O4? zSnvUS6yn+#i47D57BlyrnRB0W=j*r6UjRHs+eJe_CFw%yOlP^W^3<qVl1q9=QIYG! z@?lP~S}wI+$T*pkkr`u~>qzQ&Y2=XdBDFN1C{s{y&bun@dWoIuQt30vg(EQjr!c?u z+!T1ds^^Px7id1$R_8AS);isZfYaj+cv!<FA1*coHbZS`P{cDz$7*IsU@J@_WhN@s zC9V&h{7h#8QMhWRf8FYR0iQ<vXgcZ{m2uFAoo*GDBBPfXNs3P;MM+9Bs2KY#Y~zND z>jKBCrZ=ib;#fs*)q-|Iol~kz=Hn)A2|OMK<CEbaIGj!n!joVcl;U9AKN?JXM}xzD zsR^|IoTh*`N{Te1m%8k8_oBxu2XF6<I#=A0zO|HA)l%l-zQC*hRH?wm&sy;aJSM!> z`ENDglmo)3#poGJ!E*h{CwL#KYoB+IX+WE)JGji6|AT}p*kt73Dz4QI_G$;tM{K?4 gy9RTCX2tLPV(Zkl4cx9+cW{@b$GmOa!-Hn)JFdzvp8x;= literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ScopeEvaluationConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/ScopeEvaluationConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9905b5762181e69a35f1f9d5c9d014e886f0d3d6 GIT binary patch literal 2198 zcmb_dZEw?76n<{=;>MT^0&PdTb+qePlCCw-b&RHCq-kIop$R05#P$K*I=ATs$Bt|V zF=_u~(tg1{3?_wXlh8gfX+LV(xsItqOE)Qy$iBY5=RD^*um1a=-=71xjHZSOhI_8p zF{Lm4fIH@%&3E0v6pw|~52WkR%RqE_uP2?3*>&5(HhtPVfwWB7?b&9-a(kluh}(Ux z<V&v8mg=EGhZ^Dx%{PKS7CFgK9~b#J&J6D~O0|0VexqD3-Yqt3cNsF(2mBE?ZBG6- z0*}H_V3^#rZ0X408bd6bYca%26q-q#WMDs}KsW|8OwwAFj@apUcZJvFyS7kxuEp&Z z_oUiKFO!=gnvNLG8puE=#9&|g4Bu79b@G3+Lw*>dLHU(d$>u&8JD<&k<^*}y^Mxt8 zd#12lPnhLUqL9KY-qSGmCb5sIr_Qa1yd##XG7uiOeFN`fo?&*FfO4x?{ifKg)OPNd zYCGE%^~5m$-|QIDyxk6ydqdg;%TUdZ9lsHr=J!2O$hCAz?4p4Wu|yTn5kZTJo-%rt zqIRT4bX-7I!^aFa$4%fN0tRx*uug`fnCV!?iiS@ZP93&yU==2VCY`o;T-#%q${yvI zt4!h&1C(ED20q0)`Q;z@^;#7Q!ZNNH_#9UmlD2R<!G72T6%ABSGlz+6^`+ewp3?fl zz%_hHq|~qwiqwTsQnlR&!U_tnjpYW4sx8)aY@lRd8)Y(1LrFMohLus2s6~&WL_`V- z;--PG!XyUnP@dt0ujbgxvZ=has$n=uEoMEu&3jR=r}w!(lG?Xhqu)}2G~B*tDOadA z7eY(N4AE7UEE)n8#}QuG;KJ8HGjIHoeYLr%oL;s!7O2Q#bS3E0)o`RQP=fBMu>4NY zE>9=wm&_QyBK?G(CUA=GI<3GtlAgio@GTHmLz3i`-Wsh+Gm(FWGl$g{NOUn&GloK# z!ZZoT3GCenU^N1WKgGFULIcWdGL&B)(TzvC3?JZpr28i!DS9G5z`_e;)UrIlM+4-4 zMEr@`{)JRNb8&#nYBRuRKVd%q2R81h?Qht8hU-s}9$;&L8%pTaqajvwrksm~F<A`b zcaaEPB6rqkcCOQ0x`Gv4rP3~-jm?nw^pIRcoM@tguZj9CLP{VuZ7k8IirbMloWzwk zbBfywOsVC-n?(HQ82t}8q=^e~opQNF+1VbkH+NufZp0o1YK9T~4rxuGhB~b(hqJhY HMl$s;?RHQ< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0d86cd603d53f5665d53ab4f786684bbedd07607 GIT binary patch literal 17939 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 AkpKVy literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticPackageImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SemanticPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4c25b24c6534becd8a7fc914c4ac618da637b033 GIT binary patch literal 27820 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$FilterExpressionChecker.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$FilterExpressionChecker.class new file mode 100644 index 0000000000000000000000000000000000000000..2a8d77f8cb3997dafeecd55cc6b21fbd5e443312 GIT binary patch literal 3223 zcmcgu%W~UP82*lYQDdvA<0ffLDWs5stz1;fy>0_(NLr^(0=SqN7R<=Xv8_gyJd)hW zis1=(0QL-PW+;qVFs!=ZO?U~)e`NX6*zLILl<`<PH+|oK{`=qm{_!V(Yxr7*#PFTt zHZ;>SJzuxAx~10~U*jj-==i2%)1uE?db@4f4Xx!IaZB@PZu_R8nXR^^Rm79;^v`cQ z_K_(*q(R+mbX;9bN_1vr*R*`@?wqt;?s?)wlN-m}l@Vvi+}9uInxzxTVeLLQd>KiG zQdG&RbRFLr;bNGvoJLOqhU?`Cz?R;zjV5=sdLU=`>Rq|q|F+1G^qZ!)a+RSu3FRdy zPH^5ZZPVXm_$mK?kxt^7PDO<(LwuWDWd;oA6wDx%LJV^X(#SHz@`b9{nO7j=44o*O zHb3aJYTUi2*DTJEEjxy8Rdv@C^KdaP)XwnzB)MLK(x2w7WQ^1U;a#^Z$2evvM>j}- zFbs!cp_<04cumG7hT9VybgEmP0#)!jmKo+6+#fQPDbyLR<O_i=xnY@Yk88YD*9@oC za%_zv-_mx(v0@r;U`58843~vS&pfQ)3f^KkV^Wyw6n+eg#1TYxfLIFG2{aE?MuAK{ zzN=srYve&TKOrgS`v@bsp(ta6VK1tRwrZa5>c)sd(pbk;1@GV*g_>>{yiLpp(Jecc zegfO(@t%VB@d1O})V+h?dK3)bkVo-BQlz98*~3rSo?MktG?gRcjVp>E&sKchINsOW zVO%DHXdrV$SJ#$(G;~f<Rf@91Ckk?Sg#sbE^iQCYUZV?mI8sSSK8D@MQau61upeEh z3RPrLc>Cov@Ub1-ma)rlCu(q<MpbYJC5D9{frLH5pvH?J=_QdU?ZbG_K#Acl_GOe` zAiBp<6&&D@Ax*{IIPSLqHzz87`U1BX*#k~%SX7jX({T+>vQfNlOx;m!h~&wjlx&;3 z+m`Nm+>`MYLp`eXpRc21xX@GQ&<Vqy4$Bn6G5RMU(U0mpkjaQnfcnk^t*4>T^DNB{ zX+K8qbL#3t%&Na5qpm%~`Cn*B!U8?Bh|@5RgcQS!l)$W%#3HRP(ms8L3s|DJ7zrAQ zU@38g;6KouzJ|Km#YKiLE|bgtjQRC0-e&j<>-%eJ7n%fGc$eYF$Nvc4*a&Y5IZ45? zltMw84S1IWan%8@iVyKoz$)WoTqnjNVa!8%Od`c)Fqx{lOcf6qI&}j#L)kXzq_{y+ zUHuK4!~3Shsx(LU&5qnNIp9kY-=~Bju(qbcS|F^&r()d-v9?33Z$r6qq_fW$9wFNs zsK4TT7kd(hDw-9lkaA>}i&&B_jZowU;^s))&k0&6g*;-3(7&LegfCH{x5)Jj_fQ4? E1G2`}0ssI2 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$MappingExpressionChecker.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl$MappingExpressionChecker.class new file mode 100644 index 0000000000000000000000000000000000000000..406b67cf1fa3d6fd23d49d4d3d3ab3d15d51a21b GIT binary patch literal 3226 zcmcguU2oe|7=GR)jn~BMvaTx)U+bWQ#QpFXUxSQ7SK2KlZ3h`a;sVKWPg}2!9og>G zJH#L02XM;;*GLRhE)Z8-@H1dsR0s(qkPt$Q_c(5nHW>;=Ls4v><KyRfzu))UzrOqm zz$Lt+AVGNF^|o}&xBS3x^iA8SyMZqDgt;47uEU#wXc*0=<!tE<cSG2^&ub^JOx<cU zZM`b5V(IYwqU&r}@<V>uw6=CVLoUjEW@@#Cvb5Lqgzw8E+rr!to`Mu1cgwhK=(fQu z>-Ag03>2gZ<+!5NSf9Z4I$VU2rV#|fb0RSamn(hH+p4yNZE1Yt$d@HTI@q@Ssf&c| zei#qHc#`vq<ygTy;p4*pMcR*N5Cau!gw!Gj%P<J1R171NK@z7`WHCxe7K%0bW=w^G z6MUj#Ibv<MQ5W7#qizerXvH-RyJmQnTt}NJX>`H|{iJ#TCckgIvM(~XWqe(=U2}&} ziSLgPp%bK~Vl9hD@wkG=2-o^V=Rj&6166SjlZ4Y-BIqzxINJ#q3dPWv!nCcXFLcq^ z)J?b1a2=hK-`1Dpu~HUKU`oN0g!59Qe>|+>0-hqAusG8UPC&vqbA-7aB9^0l1}#8S zP-I{CzEv@e84e*w?6H(%hX`HOp`>7ruoBlq3w1y6471B1S<K?1if3?%GtDqf(PZYe z_@3=4K%s97cuvLhc!8j78~$3T9%sY598scO7P;)j4)J5Y=TIe1r%G(RUPCeD$!cJj zJ6uPj#2gB<f!z_`Tno-dCpg(u87>d6s>tJEPK5Z<A3<fi#usqCtCz5Rgyq;$9f2aO z#uuu}O<DHd!-g8h*b=TOSSDPLn;gecRa{4za5gL;(OA%K^D;?VMI_Dy(K|M9VR!?p z3M&60yL(YptYMv?nsVZ34*;dUmLIgit;7z1;|7)urRwf_rdYOQ_nRAdrkazrll3Y) zj_?+3!}o=+;BCTYT<8D0nT{|KS+f&_(Nu>?PT?f~hmhbOH+mqKlcNBSo<qE!h052H zyjth?Nxq-brte@x`vN&_<_^w$%3BGX<?AR?0DX@k`VPZ%7bElo#(967-}7g92orpl zPm(6Vuv|DI@DF*-UqhST$0LM&oad1J1Y@)Nc$)AvW>;sledr1B#<PTv?j1<pWEbxN z^7JFO&;#yPKZU%Lp}1O`SHp|A9I`5S2`@8ai802IxW^);6p+GQUEz+09G|*^S0dTw z`J~h!txbQ9`HsFBxl2E@zQ1(onQrr?neR2mkXQ=?Vg1Tjzugz>YJ{~IVZ9g0m1mp1 zPWT3+tq1KhoY}`p0v!{LNK?@7?3O<;L4S5p<lExrS=<{8EseqvF~R6>@?!#Tp~`nz K>j^he1O5iN`{f7# literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExecutionConditionConfigurationImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0b1d550173bcbf5d94eaa2cb89c56183541b6259 GIT binary patch literal 10787 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 NL}a~XN5Z`p{}0A|t3v<) literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExpressionExecutionConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SimpleExpressionExecutionConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..82f80a3a573806e33966ce6dddcde2ff5e0be00d GIT binary patch literal 5451 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SingleExpressionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/SingleExpressionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..72a8534aae33a3d0d196d10d0e8dcca48d0ceb3b GIT binary patch literal 4109 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateContainerImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateContainerImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7cce6aa0be5582c759d533ae5e1104d6d7f53ab2 GIT binary patch literal 9555 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 K)yu5v+TQ^mf6}r5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/StateImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..935a9f31068208aace1b221a034e440bfdad6b7c GIT binary patch literal 7371 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 F{{zsgDS-e0 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TransitionConditionImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TransitionConditionImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..411bbec8dddae58922712fb96262327b152a450d GIT binary patch literal 6413 zcmbtYX;53&89f)C5X%d3aj>x=U}G>K7I`6dYGM+bU`GxJVhE|Q<M<&x@Uw+PB!TVj z+3KdTyT^&sx?3hmr{igHTEn=VNu4fE+kf4sGyT=S-TrnQH|@FiJ;Xy2UgTk<ci&yU zd(QpN{k{+V=7S%<17HhY_o6^xIG&jBTS+UKGGhMms4*5#`OOn%csgapW9&?slg8AP z6`Sx+#v^9bpX7TiWrh9L<W$r@oG@ZZOHS>H$0Di`V80idK>r<C4#rbvq&I3#nz58^ zvPj_3d`;%SDNvS-Pbb3WkR&PaU|+t*m4PnWOBsm?Gv(N;NS|W*XaxH5-lTWICuwWk zvFHISW~I6X3Y%L-1hgKys1$`*p+m=A0(bXWF*7(lIc6q?jj<?MR`kWgMs&nTSn}QJ z)KW*Rq`*kt;BKS^!qn9nTj8Flk>oz>np@OPW;kk1B~8CMIqo;Z@r3E`RWrIuP=&Q# ztPvQ@+b51p2aWJCW5R6cvr=Zlh$eMZqekGK;r+XULxJJIK=7%af#AccB~W`~Tmt3N zzi!p+a=7GkgKXWDfG48Ei{diWqrr;}0z31jEw!wp5gP@H%|LQ65kGNK$z#-uW`Ra& zIQ!fKF`iD$i1rSQ9W}$LQbO|SXhoaAUFLo>8IR7Gj;TkQmpP*h8(qu#*xsW{ZqlK{ zFQHbNyzbVx6*goj*>65QZ6(Zz7n=pzawArX>vgY^L826!uvKcmlhV0Wpn*W&QDesN zM-2u!2V8bf%ZLQLO~-cJFW|KS^Jx9q+l1qjlku28CMlityD@gjTUs8EMwV!(=@w6v z&Y)z%$NG&a=i;s$Gm=(#Z-yrA-l2@%*KMHr3pESn@;rNv7*;HY0&cdV3=d(q7rS_@ znQp(yQXM^bm_j!qk=ypkD18z$k1z3wHkq7YsM>tnq#5m$;~gzi<5?!`SeIMDjF#oe z4A1SpQ_r=Gl%WazI)WIWeKQc7F%wB%?8*2HbHe#-3EL1eueAH3*pWJm+fCe*mnNF< zn2!Atdf5W>U6F{qj>9^3qFbtFM8^{{;}u7&<dl&LA0bc1>fyzVEaU8`juI4eh*!`x zB#^#HIeK}Kmh?)kEbXAfTpbdaq2oy~FIN&ncIFlc-a*>Pw#S4iz_4G6vNBA_976j0 z^35UH_Q`_>maBj5LIBD&SjltA)jyEGp0mxVkXlKXWDg0PzIA2aX1vKm$g(h-l0uGA zrt#DfGtnDkuqqihjns6)3^06&fSfcfFDfT#CL_DR>gK@cXiIiRk~%x7<6hLt*2i=_ zV7ES@<0E$KQ#uaXt!H$MAuQ)Tr{kz>72*XQGdRv%mar2%w`U|QmW9~x$tlJK&7|}N zRyDity^|pAba-0FK0GSTeqP5@cI%5ej)9rD5MS2uB0fix^v;M8omS;%R;pzcYd#*M zRJdVtK-w+Dt2$oBSve9&DhzUDRE~UI$2q(vP-;i(J(etLYjTwLvK;7;n=v2<VlgwJ z0+yNd;@bjy^Sv8GOUp`fTPQ5Co~KaAkB8ryEa&)7mL|iEdh%-Wxsp9B%sH!^Z(I2k ze0qHIxced-1^5uZOZf!$aOz%Eu%+9RxcDBvX{f|1$3TZ;KzkdjXE|oCFH-XdU28RG zt&n1I*1kz#a-RX;k5G3Nd*tIX)(al*4%xnfraqsqbq+08P=5(^vaj_G)cWSoeh#aB zKf$JuZ$*jLDhKAVWe)ermV{BLXw>oyfDpGHWzBtn3Fsh;y(h5^hbS6D!CPfRaNt#Q z{KMEmfL&bafq0)2g_N~}+0UnaV9ri%!be?%J!!&B56<H66OV^>J0;AZuT^qVTpAP= zO>1u@jU8Isdnj3>^}hwZZH;yr4;J8wwnbKJQA8U_T1wGT(_}h>IvnS}(<jybo%SBi z{@e|{JZK5JlP=v$z8=N0n5R_7S&tw<mrB0nDEKd0yr}nL(>1k*SIfcvSH2f=&X_vw zH_$8kC5x-5ln=Vf=c%Y~yNo^$`dhD}qII!rkX^pkwmA&-w_U{sPI_G6Ev&V<ueANB zX|0kxeJEvU`>#VO_F3-y9GN~(rY~RvK0`mAq7OgI#QP%M^AaAzX?pXFV!zHtnPxxc zurFnXw%OZEJ=d|pi-#&!Ttk5rGvk%R)Gf=9Ez6KgmZ1z;hR8pZLzW(SP@%LeLyHcy zW%)88o~0~bA)Qz0kaMK;8tI&0MwSP%Wy#3uV0Oz=?c|o_n>l64;=oz#mSsrEGPFdN zp4*V+4=Ao#I_n~x^)}`8L(1~fGO|3BLzV}W%x)%2#(4+(5?O{8WJ$M4SxQ&=in3*C zcco={_(rnyEGNr%i1epqdWB5ir7V9&KmMFP`~_wCOZxFW%JNr~<*%2KrOp0kvSiB4 zA<Kv@%gAMnFGS0TTb2`-5F!6a4p|mSSw_;bjAY94x0L1YD9hiI&L1etKa$d)Naruh z$kNJ|C6jv&S*o4fviw_4Su$}ui=R<a02(D=1`x?fMaxxA#3*W8q_P+^R;lp!cYgna z-uWlJ^Di{u-!3mSrh`KxCK+O6!dwT7tpXJW87!~M3U-1cER`HMf95QWp=rG4d;A8| z2sk1$9<Z7pm9mzG!*&%8d83%W+8O?4i8n)<8B-3=`dVw+=Mi6YOFfSP_z!=Ny2ktT zJ~rbzQGS5k_#cJ|;E*U#+<Z2=G`Dd)tz1LINHASUoZ~747AlrZMO9TLRkChpsppV9 zLnD%8heNWFZ8ynUpRkF@#{$^YBG?MKTIi?}<){-Y_`^zt3tUGUTt^yQM;cs*3mhw$ zsv=oMusn32z3V^=R@>*_>p+u9shXb_ezw<~Lor2iVwPVYops(mF5f=6@b+o>_Ux>$ zy5`<_JiiECowKOnPjj_s6m{^4_1G%v`BO^+e+_8F9?|5Y5=>JGDgyG5f=o@P)Hw&4 zoK7(j$y8GUZ%wf#|44+zs6*$w9G1|#9Xi|CmPQunG_c+7Yol`J@X|%6aYi*J=J17! zzUsDld}&ek8@Un07Q*jDgSd|rwxeC#j}EZ|+e8<(i=Eghx)lXGM|P(vbf+nF<16?o zDM;W&&}xc{W#zy^*g-AFq>wrt)a`7$QLpEFlTRqf{3c$0OR)2JB@^pjVhym|+lPA5 zhbGa_Uk3+>d61a*^XP{ZR=YmyOk?eIur46<cvz*$g4{uP)<M|gAbcPL;YPl1<~?NP z;?XV?Ua+s^LX&~jZW8d<E^w+{h^Uw%4ifMo0zHf^VvL6waRKZ}1MG1DRK6F*{3ELK VG*^Ic;G2BP|5vK;Eqte_<p1X*`+)!e literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TreeStructuredElementImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/impl/TreeStructuredElementImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..299c08a38e20940323cb2aa592929deeb28e65d6 GIT binary patch literal 8950 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c81c8b0adecf5467f6c8815e3f0bd7519bec7366 GIT binary patch literal 15405 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..7930291003266fac273064b498ff1a2c6119d297 GIT binary patch literal 4697 zcmcJRU2_vv7{~u7DG6<Ztrf~kTfj;&X@TX{w_vpm30B%tNQi)nv)!DAh0Shevq9=7 z@Dn)Wz2g-ZTHgkpaq!9+FZ=|~c<+VRUO4KryC+N1oQ5+U%*AH+oags{Ue4<;|9t-= zfYbOOi5NrCajTlyFdLq3YipLi>UbKz&yA*MIyN<Wyr$Rdrd`!)PK8@qgT8IgG&C}> zw4(T$tLSx)y9M3w9Ctm5K8AC?FgGl--ryRqt!ai+t2wr2JD$0=u9>yErFCKp)Wnbq z{H*B4UA@W~78bV~U@JBum1P(Vq>CS#o^hLDY1_&jsfTi;-d{AUw(d1uiu&Hu)IJ}G zZCy%H#q2BvkvMPKrZ>wFPiM*ueK{Jm0mLzs!XQ#fJj-xxy9Mn?yL0G{oEpF|p7WjT zX1JbyI_Y=%$Y#p@U>HpyiJku2z7%#K(T@WdPhyPW;&v0;G*eQTK!V1TFDw^JbIZ9r z!_cB>^W|o3mAfT<)uIs|S#%8DD(kN4e~ZRG@3z^X3jZ(ZGwdpQv@DkNx^OpaHpGf6 zIBsdZPGRjyFW%Ab>6)d}ioLvghZ|ltb2Evf3=^9dBsUzFYx&S>5K~B}kij%fBA&DK z1|@Pho#~o;f(k6MgE)p0NgQVw-$FgGOF_d)T7OmU<)f87xwZJ?C7W=99Q=BB<wXTC zTuwWbm?sQZ!il%_Qd#ylACtS;?z}p;r`DPpz)N@~iI*8JZFhEcESqq*Na0ny#;~*E zv^JwN-H~?;4+Y$ne-h^zrZ(4Ing@-kr@K^shHgilL{uUg{;<6Hd%D%s{qrE_*cH=% zi7K9v3}UBVtC9>EA$Q;4bzh{H?o?=7G@LqDuq&9{s`RoGzE^ZtuW>r5df6TieP89Y zm)pEjrtEvhFeYO44@;_$r_)~HMim-q>x~-shK&W&)-77pZBtm(yyWV3BPexu&G(1! zGG$W9TfD|?FA_c!_T^hAcsD&GEQ+2>r+UdLxt!B`)9_EOF1^Xny0=j}G@^~E&MUo5 zMSOFs4bP>^LjHc;<&8%Bj2aKc<}Js#E9pKEcF)-rNvEjHWmnQS5rRcZ+TxOaA-v)` zmQ&qa)*~TYri+qCMT(*ht)uE|Egy7~Y4g!zG+JZn__CYE^57OuBX{ivjx6WXo$-iU zT{I`?WzDQM-C%7;s=Gr-oC{I&K+$Qs1}~WY={MFoGDWvIhEDi<6kXvKY+3=q&d(co zo{s7`-8f?i&TD$>^G|SU?GIW9aERXNc0$ix)Ka5<M*kDj-{G0*A257_UPivbo(=5% z8T}jB{}uLrNd|Eoq~`%7=s8c2PS=4|x`yO1iVGM=frJsrk{AwCAi!kU@-KC>WZ;J3 z1soBs*D1&tSxnE6ug|fg@4?JZnEDiBGmkL!5HB)3#0*2LGyWj{fULtfM#(#Hl~OBG zV%I2+GSavn#4sAFiWo>Ar|1ICf@pRi-apRh;|$J<FmfV{q3N%&$9MfL&OJi*3(}7T zIVZ>v_`OYgDAFFn>zJi}hBxr05Ih!q6U{bj{MlBcn9yLDQy~AAlJid{nLpsIae3@B zr$FwLk{1-nqf#=jK%SM71qE_mN?ueTSES@y3gj&*xu8H=Qu1vD@*^pENrC)WN-ipp zpGe6i1@bc~xvW5LNXg3z<RdA$qCoyCC9f!uze&lf3gjPBvZz4*B_&HwCSwUHc};=b zEhWne<fN2*M}a&kC9f-xvr_Vg0=Xz9Zz_;CrR2K`<eG$x;l1D-dLOswe}GPwVfv@v Ee<ooS>i_@% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticSwitch.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/semantic/util/SemanticSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..8fbbf114cf143075449fdd5c66c6b8c51d832ba5 GIT binary patch literal 18753 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/ExecutionConditionGeneralLogFilterStrategy.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/ExecutionConditionGeneralLogFilterStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..5fa39f61cad2bba0fd16acd478d8925f07aeb4fa GIT binary patch literal 602 zcmcJNu};G<5QcxZl#~JzkC84|>e>k*V5!6qiQP%B)>V!jISztXW8eXJDAbFf3r(di z3?BUJeD~e|`|JDT6Tkx38Ab{=M60>wHW{xs&Xgf(dZVgK9K48$YST3At**nGoNiMT z&A$KK9`=>@!LPZ0@<g7ZajRe-*(Hj_Z+(U{g`2H;HQE{J_FQhMN*T@-?uHP&Wlw)d z^s(j&xusNa-8ec#61EN7PPm0n!Q}JR(8T>JLraSZK5?Z_8nG0d_GFwg|7V){i^8l3 qU93nVAq9PC(J^Ch`@ke3g|VE8{F{-)m|==O&I`;$QMl}NT<rjwBhuOc literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/SimpleExecutionConditionTraceInferenceStrategy.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/SimpleExecutionConditionTraceInferenceStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..7ca6b40212225034dcf733ae89c13589c9b32a4f GIT binary patch literal 707 zcmcIi%TB{E5FDpKpyg5iBE4V<jvP23kdTmyRK(p$x0Z`zM~+*;uW{f5_$b7Nk_$?t za^SL-*Y<d3c0NAe-T|EBG({rt?1Pr3Hg!}^F09IZl=MQyDjM&&8L3oNWt^6!pOck! z4BXSNo88Qmm8F~Z{<U{=(>#0(s-Qc!pg^vm+0UC4I|AdSS}SQ4BTn-r6*0x0z*QFw zr;VduY-Atw{$D^Ig126CU7I<DmY+bTDfVe%aSNkYET07msBCiIMY{E(%RBbcMN`PF zzPMyM_11Lq?4Q|8o&-jLn9;^OfkD>vhBLnk1>G7;0vCPCx~F#5WPzv8SV*vol!H0o Xj2vKyCMzQxey>M3<`aPvt_j9pS@QH( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StateDiagramTraceInferenceStrategy.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StateDiagramTraceInferenceStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..533abe5be676b3e843e45d9e3284d528b3c82964 GIT binary patch literal 591 zcmb_aO-lnY5PjLItF0gHuW)-Y;MIc%MbHWgD_$i{ry(Vqlx$k`uX*qX_@l(xRu5`b z1TPcvX7b+5yga`=J^?sHFGnVD7ow52wslfoj-48YB<Y^?EZN{0OjN1q)OsVUFd`@G z6d5xQ%UjtLoLXg~s&1mvbneF#$!jX#>T;|JbSG-Aq*KgtHJp%6IW`22S4n$gJ$>px zen-9e7n183TreExc0}>LKY^a1w3y>0_@r1p3S1QZ%T?X|v>0BLPgcv1Tt_TWe-#)M z|Ha?G73f4_jpcv>t)ju&Wtc@xXV#Ix{_jQ|G#;@l{2m$Bk@F{Mv3FZ&qw%nV?Zvr+ MUCs#Xam>(t1p`XM;Q#;t literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1774af3ad1d1360dd235e499059a986975ce2e73 GIT binary patch literal 1278 zcmcIk%WhLK5Irt!ZxaH20j1?pmZ^|xgxG<QP)JdvD1dJ0f}P_|uH5?Ck>eoxS%?i{ z!3XeBh;ec&K!5<HShB}6ew<^^<MWq~p8(v)oeT>CFMTMa8JlrbP7bXa_$cWu=}9!+ zu`yDqMkC`2S^6WgavTHOiqn~vf3F=V9ep^>uqd#0tllVT6`y-PI3^u4EDPLDV5F@X zjY(2D<hc(d+to>d8g+Vk|4Faa7RbBjPVJ$<$|Ht%CO#Ip(A+x|SZwjT>bQi}43`C7 z&jo7Ak(IytlnyU6u!eO8Oz;A)ntT7@fi(zhHjrUOV6|%;^(N(jLSGFm32bz|R`yT@ zll02i)PdNgdGhsBql%!)eo&e^Zb*Tg=9QVt1@!!!{{+G=dQcHcpGobrSZsNBWKvN6 zj+~#H+&=*_(R(wZKT~{0j)JmXUmO@4DSZ3ElX*%0Js1<*Dkz>|PZRcq(kH6mNI2i< ztFC3ldhRDd6F-|lwtv8`l6*f^2CfC1f83Y2Z>MnOlC;EQ4Ry9$WbH1?)Upp~yvN2n ro-W`Dk9C&74wkWrt5a(#IM=X+B(L*zN$%jrRNllb-ovG5x^wp{P+_R( literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage$Literals.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage$Literals.class new file mode 100644 index 0000000000000000000000000000000000000000..f4b4633cd8d2c0397db05d424b620b2c343a057d GIT binary patch literal 1702 zcmb_cYflqF6g>mj2dsjqXnj;bz@otNQdEdZE!$?3rNwqZF)^EInQj)hyUliMH2x~} zlYa0A_?JwKceXT=NE2%4hu$-j*>ldFd*}ZA{rv}kRcysE!0^ToY}IKwt&n?a-Q`t3 zRK*8TYln{S(Pk(byxDX-TW$D<!c|*gKzsJb&Z=^9waaVoxGiQ3Clmp9TX76Aj2-d! zTy;4Sl&VLf7Bb9L%&e(d+j_Q8&hA)dIh)fgy_na^T9HtNHcYK>z>qeiIZ<<+W=p7| zQ77yNLe+9EZ?!fVHqORm5vNqlm5OFoFKT6m>0Z=jQ5S*mYJ%w3D*Dc@p;_8%Ew^Xt zrJ`im)+5y0_1pjWiX8TqBGJ5F*rQt^3k>RMb_yD$l{GA*RIu{8VQS?Q_ju6f7yY<N zY*BeUCw$H@n3>;a7|KzfByky6;uvRmdG7tC;3}>$B!yn2vQoz|RHAC0YZq^hPzu)- z+(3$9))rw!zJ+av+W~Kw0j~+&JMNV3BVd@!%=hZ6PRl02a7)1j#3cP41!>%6SU(fJ z6*<WHUdSC!1Pn91)&6#|RGd-}M?xyzQ!pbFT9JxQqv;B*`__s0(2<Y+^yDPZoPuP> zc}Bs!bpEPu9;=ru>DL{*P1A)uNVSIwhC8ko6)Z{Di=_6i--4jq;I84@dB>&6(=CVO zSXMC7alEQvO**dh#c_7Gj}$0KFpL^hoMO9C6@kgCu3#89{2F)ndEm(P@#b*FZwEC& zj_E|IYdIRK$76I!4o(I|_b9!ndqj&N(H*WaM(GXGAdev>`-xCWRym4Pr6|(<MUn0x zisX<YvEU*uQ5>b!CyMfy`+~7=m|*ydn-RP%;ba7-C7g}meF+~#a6v*ff-4fPe<qp% wJf{CNSpgfu2vdl10#huF1(v}ETgD6g!bWsbo_-Rcr+7wjn5;1B(#=@%4}>Y{6951J literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/StrategymodelPackage.class new file mode 100644 index 0000000000000000000000000000000000000000..d78f5eda68db2b5a7ab597ef13405953fa06be12 GIT binary patch literal 2613 zcmcIm?Q+{h6usM~v13xwPl|!I0n#*SibdN%p-ljdv-W64krPQyo6dAJ8)aiuWXU7T z41FwyKMX&303M3rtg19}8V`2bYDU^UySnGzdv^Cq|NQ&c-$Znuek#!!M%!`H(Sm-^ zPer61gkmpFHTj$L2Wb#T7))hX^m;+m(Yo=z47GlmV65}<6>^GbOZdNtjx5m>qYE#@ zuR;q2>{@#-q@R{(n$ZpAO!{Ha>q|{`573Vjsqx&B(K%`9o1D=l^T-}P;QleA^YtvE zDBTg^K$htP3=M_Ds3a}NYuiSdK4i4<bDH)ZX__{6ibHI*EI39L#kpnkhVisa7a6UA zu9hoSd!<<IM8#^EMztYQMl;f|99OsMNYgRL4sBfZq0=JhUG8lddehc7J=fOj+%v2O zw>i9e4hCG_+-1a!v)Bm)rN*=HV4E>>m)o0$rMpJUD)2p=jHceQT-~s^t)gIzR>w4N zaNTX&+^e_RmaA;BjUPD1=9bAl{*>3-Sy*7-FtXlg0k%(J^?xEfKON`j@R3NvXtuFv zP@9o{8vY^47-=WT)Z|zS-So^>(`y(embkFAyAxVKrLi+wpOpJpHsv)`lqg7lV03nA zd56(d9i^&5w`sXVON^eq)gcSIy--69I;whkwK6a<OLu4m4wZXG?WN`SaG+;!K);%$ zOLUphoEb#Y8g%z$;)=acs!AFABHR&4pm08Tt0PlK)$WZzbP~~Z6X8oEI*^Hse0i7* zqxn4G6H0PD6#YJm$?8~CUgiz;ITZ*nVYD!s*_L@6V85r>mBNxAese&wAE=MdsGy%r zY~zh`0bd6}XMnYZKd21mH{)nZWF$f}?lgihmC2EO&P4Bz8^tx1Uva-RgrCOA%XhuM za$2lH#fb-rFOeQLRCUOAzSnE&bIfSgh@eHbHDtd;IB;)wwoY=jU<MFbgndTk!!CXu zaJF%uqdBTliOT5DsLD?j;MoE`4?I`E7l3he@NSi^(AC#=9|2!GhCeRgD&{{a;7@@+ zD_}K$y?_<pjRIElHw#$V&mY5|7qGJbqJXQ&p-f-W0wTVJ=vUCHtMn%={y}$tNB0cX z@T{OETBm8a*RoOd|MfN9Bh}ug2U)wC<8N~OZH^!2_&fSOvwf63AJZDz3S6$^{&9Nd EKVT;H4*&oF literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/ExecutionConditionGeneralLogFilterStrategyImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/ExecutionConditionGeneralLogFilterStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..698b94753c0f6e83186917a71c0c44e0821034bf GIT binary patch literal 7083 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 Od@3WXp=$3|RsR<`2f*+E literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/SimpleExecutionConditionTraceInferenceStrategyImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/SimpleExecutionConditionTraceInferenceStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..59358f40e62a74d37a4da75491281bebd642d886 GIT binary patch literal 9048 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StateDiagramTraceInferenceStrategyImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StateDiagramTraceInferenceStrategyImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..301c7219e810989165f356423638e88693e446d8 GIT binary patch literal 8478 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..dbc4313a02672d9d4ed34bc3f334917f6547a09d GIT binary patch literal 4277 zcmcIn+gB4u9R3DlHiT7M6sWhFA}tUqv1)B=Y?Vv2(TEq2inW(z8N%XbH*Pj4z5A#1 zwNKOsIhJ!;pZd^0s;A#<HWv+1IHWmeCo{7%-+aI8{Pv%J|M(NYDLmHDA#m6A@+qri zm3+fVE!xJs>!;)+X_kG<bvWtEf>A75PCiv|7o?pk`5x!;tCf*eDB7v%#;Hq&>AT)) zmM=6!1O^qpG;OO`k||kOWZ(5<D%hBLVR2O8=8nj0#zP=tIhHSQduTY<cJwsiC#aTA zbYYJMy`{LB8-{t`$jgCSGEY@|t2*{#pFk`-H9a#nHIWgh&}-II)7EqhZwgE<`F`<S zDwW!@P%l_+G%!OKdGFV806hX-dFfXTB5-CXw`{B!DchjssaQHdx+TNVjOkAF;h=`M z1co-ZdeJWDEhm*xE^s60D?J<%NCviP7QT5yI?h9m=s1eE1$NnPUZAIu>-G6%Y5M8m z**F9eI^IFQK=izFg3q{NXn0n`fWZE`beTt{EGlmo*q5^$IaMyqOK--Qx1~UL&NU5t z*6=Jf4k!EkCAqn?P5&=G)+y^0dm8LgV@^NZGwsvGt{KIEV;sAXpmX|5R!QLA&RD%N z$a!?s^dxhFz=fd}X3R|3Myb@=fkLBoF)N+Xa9ZHV=KfQ`(eWY9(pYrZ0M}Zyq?erx zteaJ4|5(Q-I7ct65Tj;%IcXVr&nV1zhAFeoqV%L=){H1%?mRub?htyez<C{?f{u75 zq^5K$Gu3=M;W`VJa>Z6O-5t~1)`0=#i#o<IE^x9!xtZ)`=}6D8b8h~UW&6^rhK9iX zozmU<VQCHYfc|<|XKh>N4SUSXmkZMIYq6r?l0aX5T_w4Vmo0lidNF*?OgOV76Q=Um z#9$m5Tv1u%>Pva1niFT0(_Ygth3f(uU2@7OFcc0@@|Vw`HZ!=X;})hFG`v-%vmkJy zF?&@}oA!qMnEP)F93D(qrG(@92_vy$*w#XYZ4d|Qj4yQDQFLOyTLFw?0#|sZ4B|!L z?N`UChOY#cwtTU?qA++}Ol0Z)aokh6sy`?;UK6IvZOLR?VMTwM7hox~<LYQz5m!-& zp%gM&+SX2im3Am+TW2b^R21*v;?5Pd^;oYcX;CRDDVuU<>vZI`K|$MN$=k7yIe}3~ zp9_oTuoP@}NgBciDcjNEq8Qe6we$MJY}{OCRclPz(rarKUOPKZEz}2-vgk>ZDq;RR zc&qIARzc44BZMW^n8Ung1Roy)y$yM=zK3<@13c2PithwEWxa%MXZ2N8r$Bt#EqkWq z-Nw9r^aWEke7}sUY%ic^9bSe(nw2FDKQq_1C}nEeh*iG{c+0Sc;j^3HXEAg_V@nA+ zdW;VCfPp87cfaur-5q$2-B*);V^4DJ>J#)PpW^Ta#N0ZLtpzLhv#LK%w0F7d5Tb04 zv(z3yH)jrD2t63a5sctHzUd|UUalGBJorZAyCi!feE5+#qv5zlP?pjmozwhRbap4# z@&51ZbOh(b`41Ln5u6Qh^~xfgz$oVhQaH(0$@42^RBLaJJi`Y9zp=|RD?c@Vh|e)T z1C;BdH8yG0Tv*${#M}llbKRHMk>%c;z*F4lo?-J8v+J1qi<>G!_XcXbfCMg*+!zHK zCxOYDz&t!8rh0erC8;TaqlhFTkqAeuAw#<3B&%q}H*k+C{yI0Z#!;itQ#94}2JCo< z9pkER@GWtKD*T%94C0y1cz1|5*8*<=GQeY1){M7EyrpKmdE%KZ@GL9`c=ut4c&CCf zosdc|Jja8&v{AkR*D1HDm^T(m+KCe9cfscypv*_DUE#kn_&~4^h&;i=m(d;uXiC2w V_&#WVz>oY_^>P<}!Y|Rz{{U+(2Y>(o literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelPackageImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/impl/StrategymodelPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..449fcdabe89acf3e609013dc917ac552014e2340 GIT binary patch literal 8371 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/MappingChecker.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/MappingChecker.class new file mode 100644 index 0000000000000000000000000000000000000000..3753fdb2d5ad5a38504d6cd65c819b1384175a47 GIT binary patch literal 3524 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 PFD$O6nV)E=3_t%1smk8% literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d5f02fd3482348e894a0ec73121ecc032e5f97d1 GIT binary patch literal 4792 zcmcInU31$+6g``mxN!vuZ7EP%8b})A1R|1BT5t#iH)#WIQ*fF9h3Ty2wW5qHc_g`z z2WH@vM;`bcFau?V2YvuQis7!LnBeT%7H*QUK303rz4zRY-TmwDKmG);j4$&TVR+~V zw&{dU7;(>RxV+{^ruar!?a1*x8jM7fw_1*8n@ztiTr-RU8nX|QH=5;|)uTgeb>50Z zu)(d!4-RIQ^2jmVf5J+tUptYt$1oP{IpNHk<VEEPYxu7lB~rEGcuus+P@6kpUBw-S zT$#uo2g7LtPhqTpQ9NxRk7pQ0=j4QmisOm9?Pg5`+q~uqhBFo4;_eO)9QmFO<|IK3 z{A5j@St5dFEgp)hOqiPvw*%hX4!9*Yy@m*cXVI4=Zy0_UlED5tO2yb;VYyB#6sBl4 zOv`UJeb4m#$Y~syX>>~koW~1!JkRjeiRO=i7jc2Xv;sl=^mib&kD)j>s4JAAer;b^ z(a_QEZyrT^IgYl|Y`J3nuv?UUukOgUp^N-a!$v-nzD!v#W#APVqEZ^7Oqx33Y7SRt z)l6C`3X3ud$N9e{JP~lW;@caJOU?M-+WT?H2n?<(6Z^9UUX$!!PuL$^ONV)9IOYe} zNUUFwtm|@oU(K**Q@`$7SWPuXCgxr@@P=e=I$=(Y*kNf+$x;^EQt$5tzU$j`edN@S z=2sT))fkz)Up8>{i1%v5|Kq(HiDG|I#$I1vZieXVP%<%a!@xU|fh$S;b(kFv%7bTs z4vSbgT^9}BcB3+p!Eifq`si{iEI$zD`c}LmWpZfM!28mnb7?C`AUgJ6j_ud0Vz}Dh zntlF=n=Yq4ZE9eFc3NcvC9E)fs}AAeA{X}C5@%>7#fs9B4Fl7dVc1n$qAXW!urxY0 z4P3+9v@_43LsJwQ4HW|>XlwqxTEoD6W?U3C)@&KLgqIoG!&=jKgG<@2jOwQb&f;7) z#?|dyr{TVVBIX$iRlglrg4TX2&Z)!2KR&Rfb(EgY7NwyK<5kD@c+?JP`gh9yFmSMr zp9hnp+RCxARd2{wskuz7dzR~mbmY7vqCLOPU~GD{p((pO3`K}3D%Mdt!LrFoc{ZY_ z3Hs%6ipIz3=>|sVA1KT({6?4GVf;dGBk`<4{DqNR1(P&tkPOYlvp7R{CL@%htk7Me zoSOd?g~xdAXL?RB#$uVRSpIx6CzYq!cnKHjJCoT)S7}cd(&cWXsut<h7>Rm;8tF<m z(ykV1E=Hp4P$MmLBR$X}EyhSx*=nSvZls4=q_<)u>OyLy>)l9}7U|s>iMqEM>Ah|w zTZ{AoWz`z318XVLEX7x5!Pxx5V|>_+!(trzPBPQDsghamC36k8R5G`F$(Z;^CG&AF znM=5%lDXSU<}B{1WIpL7Q$$rIv#pgu4m)vO?c%fe{yDy&dybCfzytcpg;`c8{rv;* C{g0;r literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..8f5513b4014dbbf5dee0000a6c568cf460cf2769 GIT binary patch literal 2890 zcmcImO>Y}T7=FffytT8%p)@J9352!=+ex!6r4(=oO<kuLOek^)0tun<dg4ym4{N<H z_{M=>z>OOxP7#7qKm~-#38_DTpF{iZhfSQ_D3(lp*qxnupXdF4#}EGf?N0zN;cW#8 zhEHs#t;w$Jy4=!s4BoU|O?)Bro-1vOHeF%zPDfg8&9qy>(7LWed+mPkMN)>=*t@mf z;vH8w8(ep7r>`KzaLH34bVGK!LKEhWrrV}zTbgCNa;L9JvtwwZuo`VKsJ@OHT>p%> z1w*4gk*OnAhNNYNX<td>bLr|g89tm$M>HG(G3m)PWZU9y&mm8~d^}oKecFQq9mcr4 zM&_hfr6t`phGe0*&5){4a<fPxr(znaf+rb1ohaPVP>iPd?1e05@RX<SI774We}`mL zTe-NM0mGaM1xLKq(<-Kr&fp~G6`W#te<Ek&YD>ie(v){m+iYyDZ&s=dxw^E(X3uO2 zXNxxts)S>8Tj$0$cck|nZl>IuvP<!Q%pqYo+Hk44-sPQ8@r>+-eY;^hTm23hI9sUS z;<veGaGC(`HE#*sEf+sl@B+ia{<apn?Fg+JNKGS;f{G$aRBWPR@GiNuSSUtnG(`Cl z<!LNqMZr0S`2*N}ITaetQ}4EgTOH1a(+89P*Y0WC_rZ&N#4ien?g*N0VeL>=1Z8<} zOKo~1ObVwQ^=ov<4SFw&SMaKW%M2e(RB_Sv3MP$;*YG;Sk(NCeX&0kDj3kOok3>Sj zDnovM24X#;?7G~cL@-1ZjUtA@V$gy>Q~kN(n&fSVn_CXoMa|j~j<9qw=%`^TiZR(8 zr5}Wtp&YV%H;bqaF0+blwWN2e9ir)SfR5s>3rjfMsN3xgY0w=PvGGiRJcK`#y5ZP{ z-KOVl*^1%H2V95hJRVvbblosq*@oS7bU}tv6E6-d_3ye+ChYVTFZp!W)+}<)Z!Xcr z^E4ro^d}(!e@xOU<qb~S&G@@nWNA$o1wD__j!EZ?-V3E)@kHr&%zQ+PV?Sf|4o>`y z%pE-Q6Hfd{0!che&yz^gbD2Qz&=juIJ#Y?lSiwBb<2gF<Xo(DqWC(CN*m+3DOz}?` z&fsjQx=%(XNTRevy1v6yYIo@`<iEkGrTfU=!;1{}u*5JpOztLkNjk7&j<f@-<k}nL z*qda>6%=sQw_z?|4Q(KPT%i9<%(rF=$;>>XkBfLYG@}xlkt^NBtf%@HT)L0)55%AF zeNK}g(A&eE8*=AJ{~Db$vf)Zdxa@xun(gQKYEO(3AqT_y7|5?<kypn+ejAIdjDh?< n7I|$9<R7uf>KMoevB-@vkpILW6S(eY@h#No?G^qEz3KM|m4^%H literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelSwitch.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/strategymodel/util/StrategymodelSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..3adf80c6f025953c01e0a06944331e201d0346fe GIT binary patch literal 5860 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..df0905b1a210f29ca90fe39fbb681d26b5df4061 GIT binary patch literal 1828 zcmb_cT~8B16g>l_g|Z4FB7Pu<75kx#=!*#iLkJ*R;Gu^1>2wN1wmZ%4RN-G~qL}#L z5Aa7B?`+o(pr9pfvpchQ=AJ$GoZ0*R$JcKFo`Gl3$FOO_J+31iSrPEMFRI3Jb*N;^ zY7<b<s)lGbb+E@9rlx#Oai4Fw=}JvBtqRwLv?e^tEo6{lczJ2K%6o0)K115>>nQh> zn3XS$b&}d5fiCGl+hvAwzGtX~U53;uDKP|wVGjdHXVH%<9x}Mf(4Ti3M#?%++pR`b zg>OaGR}5oiBZa>!LhYWDV9FKE@TOPfatl=StQ3)2`{iZDdAZg0a$Wl>_K@MQYe6nX zTr9*jDCz5Fq_}F-xipQ233y<vt{?Hlo5d_9Fqy$khK(Ni?BNz}Gn8bgsML#TCM*~V z`Tr$Mr^r+fl(Y;x-THJf8S-klrs|^Q+f}lR;Z@s|zeQBigo>~2#0<I;dB($ir^|Sv zOB>?10MlpuI{7LF+501MAl?b?3+gIKL0S5S9(uTrafavruD)Y_-oq5`F=Q*I6-wm} zIm2X!UN!I18HOr)FA%mB(zb(c9sSb>+l_1KjEtR+{W6(7vKC0+MATHbl-)Nq25&P6 zRJiJkC{ht-NQ{2!(QI_obrqTo(3Qa;#fND20)6xcvc=M8x_yE7k)HZ6;$ra%ql^uV z(z8c7E_w}PG%}}fg0e)TLm4c7LiQLpKG3|4k&bg-$N3ZOJxM<8#vR<Hb>_6DyW?{T zY5FwM_PI#2RO1S9dXON^(c2uSbg^`d+-V#Z<Ip<gOku85&ZBd4kU}A@u!vGTKE@Lo QQ`ClldAi&YbXw8xCy&SmyZ`_I literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..c0e3629641f40005625d88834de067bac8b995ba GIT binary patch literal 2154 zcmb_dU2hvj6g^`*-r8AkC`}4&0;M#qKT4NUN=r8l1mjeZ+_aUWNFZJ&n~6K=de>TS zDETS;0iN;z<x2$#l_#YBsKVI~J8_&yHQ)#D?47yio_pt>yU$<z_6L9u&@hk@xZ?+H zOZRjyl%BQa$_+oX)Hll63AOLh7^;r!cD2{GI{v0|E!th{ZnRw5l-*DT%hCz`VAnuS z;Cck699MUH%2J&z%keuM-?KbF)LXlj?sQ#i*lmR-0W-$FFP%rStpsj2$0QZ=N!@LM z$r!HnSclF-fu(WL_EStCh*)UpwkN}#fb6#aE8ap3aD1843fYScoL|tM4i^Qo<;uE1 zuFlFAkwwYGBuoRZ39O7+to`(cuj0bhBBt<q1bj-MS^oEF4&&OD^#TNDOc*#3t==#( zfqVgHFl*qffIVgc2XEWN9P+#$wX)h;TUxC*1WHZqsnwm%h6>i?hRYi}+4LRhuFF72 z@2N2tKGZ!{?|(~E;FVU$7QQRHX^1J^OVzRL2Wz`sQkgC{x8>K;awQdYZ)00Ip<VgX zz(s+%!{SknA1JGloSMWu$|fqPvME&El|7O_SFVioQtB0-uqSaDR}8!-FnbJoe9nZ0 z_o<t<3L66zo<AOZUut<j&LOJtNM0<66DUrQv>yZ>Bu#aE>#s(GLaV?Y&1-m+^fgk% zN4RO=hQKFdcG12J5|x|y7`FsYZ2JAdacz|C(3OznNX`Zp1m+Ld`bh4)$4~|=xxi?k zVUIys1Zqi18~qW@mJ1bIE*jCx+EuYQ1_iGiafidu{Xz<yN|BR(8$c9W{!ZYi2%FM9 z2%q-$m8b}u;VYh}g1DVj5ARUtS$<|Rh{euTE|Nd3h1go;2w=l;mt8_jhx>xhx$3WY zwfZ}zzTo2I&zOFK(|@7x1aJO`(?9S)7H{$Y4D$THM5ko}-QnCSV}|0GMGbFrCxRsy z&XEXkKC%4GZDGVa0`KBN8hV!`GdxkPG1hmO$nDks#Qe87TYHB2r?@2W6g7eVW_B;T z$I}Uq8Ab<gFtwXZ>=t?0WO6&^Fq5FB9Egvr{OXFB%>=TAS;3cU_%NkWPid5@KVdow z{R^%?gZ(}6GjYy&9t6HRfL$73ml$)A`;-AbO#v^*@AMXjF&-VLQ6|OUck(4XA0OeF S!DlhYIzH#K$f#3%^7jwN2unZ! literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelSwitch.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/util/ModelSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..57a4ded2a68725b33e5bd3ee7dd194880976f2d1 GIT binary patch literal 2969 zcmb_eZBr9h6n<_JSrZmPR21<Ath6D3p%wZ95y2R0Y6xmltlC<a<pQfoHj^xE{nX#l zKhVzf6SXsR=!cHqoauC?zo#>Od+yy3UQA#Z%!l23&pmt2^PF?;Ir;tHUw;Ge9-bHo z2wZn7%W<dbR6VN{Un*D&t{0czNPE?D+!BSJEL!EVQ(BG}-9=f5Q(lPAs%7qL$Fo-q zgakUCT3=c5f<>*lg{RW?1Wc`d$FiSU%TnN4=74^*i`wTC0xb!r<am<;!RWxeKqyHB z5d_g{!oblm1lmj-K}#6zIBuXrVB!!CO?09~AS~0_Tz)#6ObN7SoRZA078hhCZ!Hu^ zsWao+R$<<%IBH)LhP)N0DlmOey1T<l%3V9{KQC|km^rNRL_R+;Ne^u~kNKIk$~Evu z7hON80#~EjiL?t&xhmtbxD=PRTaodUpWums%<i1iU^wS2mn?6!!th+)*8)+r;v)JC z^a`9;>1yiE#3j7NDv-&7Rb_m8qXW(GX^n{pE27`TS-dT9w<!`|x0$8Am`1!6Sqp{0 z#eFOY+&Clz9jZYL8yFHe*CbS$jfpFW3q)knEqNAewj$8iJX$r5tr*0+CY!=lR{FB^ zv?*uFk(KmKedp3Dpkpea?+c7Z)B7-PP#wy}hbBJ4xWF;GNaa?`yh|)==Ci*6Lfb7C z-ICvMQW-WVR!aht2CmV7E<Sx})QO4fm=Z9YYN}ZFo@>Mp72+EvlIRg=U6f1KYQald zRjI6`Ow8b8>Jf;*sc5<ZV3xB=vJQp7g=UQX8lnriolu8=J?aQ~IYxGg5_?-z7qox> zK(jIo%n8gMu-&CLdpvu9C)op3kDqZ0Qa4@|ySpatAt!LjX3+Ll7qI;TKfoZ_+hXJX zV%qBZ*XvTGnV0&oYDh$2PKWu;0b>`c$SP||O@IbHFvyGu<llHawAmK7HeMq+ceP?m zl`xLqZS(kwf+P@4<i}q}H~G2<eN1(be+W3T)d1zHg=-E~KEvES<6H23JoXDBFJQhx z_yvyr4D%-nLpZ@_C*QyjpTmf-|8!skCn+)g4{-`z+@0PbIm2DIFZquj2t(@%Hkcj+ zaE>PdoYw&E5ne!P#s)WVL11tlm)E!tYTpVhFs}V|`Fb^f%Ktlv@_fs)$us3Sq$We% z&w%#xCoL)-Q*;v(Al2{Du6&LN46S2yjmr-Nvcnr-g1<v+jMC{J&>0&JZs2ABFEL1o z#^%T60>cQTh+~Fc)0}m;i6_J8%(7v9qA|yOpLNVrxJ6CHX-cCHs0m5k+eD{$_#CHd zJp8i^&r~ei5IplYP8&#M4NZpKx=wOdll+7GBUByh`H@dBSzEsoLobod#)j8%XFSv$ zdWDE)sMc$GrK0XLJF5%j0U11^=g-lLFPQ(wh~tT7HR?O5vl>GlpK4ZPHCEkZGLQR& z*~`CdpWy*5Z}A(e@$=6f@=Wn-NATo7il3tQ7numvq3R4DX@<8bRpk;8yNjf}tw;iO sXaT~%&u_MhM4hQ35o&hSt^38;-1@got?w+sP3r-MOcnX#TCsomKNFwetpET3 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/StateDiagram.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/StateDiagram.class new file mode 100644 index 0000000000000000000000000000000000000000..ce7c0bc4b94ec6b486530e3849117bcf428b9dd3 GIT binary patch literal 337 zcmaiw%}N6?6opUf&uCS!kD#j-!3*7XC+bRZG0=UQ-VV29CPR`bKAQ_4z=slVs0%^C zMM5~q`OZE0_<VZ@FvmrOk-=Sv4M~!eZATk#S0NL>vKz95PQ}cv?R)7OYQvg6?IaD> zQ(bQE#WvBl6%Gw9w{~aATYdPl+Oo?Pjty@9qOV0GbPI8h{KhDw;aqE8m&HAoG=r<@ z?5Qx=dFc}qw;Mf&$n>y}S*R`jvRzOAam|(n<2nq{@uPS)nEY&XTgvG81_!#1^t(n{ SvBC*T)l-aBF*qwa&c6U)9b}3C literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..249ddf099ae03726036347703213910fb3523007 GIT binary patch literal 797 zcmb_a%T59@6g>rG08tQpqHzr|v58xZi9s+V1Wh39J7bv?=aqR7{Ve0gxbOq~DC6yj ziMT|Yw6{HN&pr3?{_*+-;0#9wG7KF*w7H5@6bp|}9bx)0mk-iPV&!`T#?lo*pgfzq z{+)FATt$g+_#`zwVa0y<XduT>or$^Nj-Zz}=1f|#fjq;prk9qZf=F`dPHFFll6MzB z8H%z$9E~rBoi0On@DF0z425%Y=&AUEA=_+C7;+ubUcv?{1~wU1bfethSKxg@%BW(C zTxf?3*Ui?7>`NJK7r{_3!$5(dGEklzCax*Nu`nIUP#gG`a3&&D`uq)Ap`>z+bj_}m zutVW8^j6mMlZSFzwPpMz@m5&(!X_1ejdejp<fW0HgqG~7G`OWqoa(lsMxs*ET%&oQ zvqBx5rL~9>A?tKHA*+Y+g7PzJPqfWoo7NIppn*K<*hx{{t-IKRw);c}`r1fu4nF~c CvG8^P literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage$Literals.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage$Literals.class new file mode 100644 index 0000000000000000000000000000000000000000..b66cf29f39a9d3ead5daf87985dedea1df14803b GIT binary patch literal 817 zcmb_aO>fgc5Ph4Lq;B0$pd~;{X>({Vti-hl6gdV(a#B=BxmufLVr}t9WIGjq3pl}n z3pd1(--DPnAXKE>>Vx0x&d!^!_wDEBF94pR(?UZa$ctE-(v+3T<TO!}ypr^e^t>{8 z#+MbPYBn=jEYtiACGyIYbCt+(4X>4ct77T|rlLY6Wedv!TbJre$wYC;`Q(yxC9ocj zx+6d8^}DYwx&wiOIxFeK%u14!P9^EQAnALFD$6s0{c8bH6#9eiaMbsr!FkUQ1dbLF zT+oyX$}};_$}>)ond-T~(#h#qVA<mq9IRurg$)7k23mKqg>3<c`a>>x==lQvO^ozx zjmy04;tuW#Y{pcDb`?FN;zFeYhbO0tCh&WN4g~gG+(Oe5wO!oD10L&tL{Z4w%_^e@ zcDDkZ#kBthYpM5Lw6MaJ1tz26Je^Q6Qj>%Pc7j~1WULBf&wnmg!+c(7dTHtx*R=D* zszt!<XBicB?NsvW{wk^|INK8IwSl(nhOM?u&B(9dV3l!=PcInlxAy_=C+rA(#BOcg ov*yG1>}ueE{~I;kcMkf2U3|r(+GD+kwe=WBjFy&li{qyA3wCbb-2eap literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/VisualPackage.class new file mode 100644 index 0000000000000000000000000000000000000000..c1d3681b489269e16a2491f791368544f6ab6af2 GIT binary patch literal 1703 zcmbtUZBx@g5Ppugl!}1wqJk)>;7g<UE{MkTikWFsCJl^!${g{i(KPL(siQy3@r&aJ ze}F&AaW51J5kH8Tx$Hf+yU*?J?cI-`-@XG_f}vr6!EDD(J?IAAL`3>_D7M;(E<Z}Y zmjvyI78BVLolX!n^;Y|h4D}B|w<kh<GZpK?e=nL+!w|#dJMls2p&-lp);sAZ8b%mq z6utDrpwpGQY;DuL9ZQ|}JsF0jZPYl!@#>y`BZ+ClWrm|>8bg$9im)dOIKnWp699uI z?S{AESOttT@V80Qd7|t3zhzTOqnXqDSuqq9>AJ%!)~f=JG2AD<QolN-o$8bhtWGJd zPH8u|QEAx?*RV~>j933Hr~^x^ia~@f_sW*B<`^{wW)0Fgg5ktIh3D-QbSk%M)*bHE z>SbP4Zj9k%&cLp_yrFc|6=!lf^QBcSJKR?4L55Q~b){Y{b4Mwu5zgn7YmQa+xNW?s z^0G1+X1JC!Y1qcP=hnS7UaxW2d7U+<CYsKh^O|A1mbsUX_Q$prZnztiv02}+UA1k2 zp|C=Y7zN2H!{EZ=Cc}_PJzd02lr-F8IOIVEtxoPjShO+*9k*!<wIRdW!r~#>_uaJR zQ9AFXF&xJUhKXtrNxRqDlCdkcLa8oM+ZW-chy#WDixW+mG}J{d2cj8^7Q<{mm;>&m z8H#R~nr%Ag<TdCWh?2mssaJqu{_hly+?KJ7d`UEuM6;7XMfgcO{`CKq=o1lnvC;0u zzN`dk>ig<cQjZD4m=#4bPIHo74bKjJ#QVtSt3e`T5q7DgcBj;()KoNvF^(x{DA0VA z+HL?v!ebeHl<-6bPZFl{B-<&R#HrtYrwO0Q;j<Y$Mf!6Ye4g-y44x)Dlff4W&t~u? z!k066j_`a2Um<)ogRfzTqF%rvMR=W}y+Kla+E?88f;*pSI)J<MFOmdSFoJ2^OIOvi ga32rS=iwn9rSdVJq`Kwwzk;VEi$u9f<N3(wFJM);8UO$Q literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/StateDiagramImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/StateDiagramImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..836d8447c2a98450d5952d40de273139633fb397 GIT binary patch literal 3719 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 PHr@HCXoZ7I>l*(7x~MRo literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualFactoryImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualFactoryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..47f867ade661bc3e9555f84a0a6388a6f0f94b89 GIT binary patch literal 2894 zcmb_e*-{%v6g|zNk;H(BSd48#6d*xB%p`_vmN8}#j?7{L3JKZBAQ~}vG*XR5l>L~8 z{7jw*52hTd5<lf3AC=1K(SRhDR2f2*G~J`_bC+}Oz5M;p?|%Tehk}L%fyIKGGpv$T z@=V9rvCXZ5XUOL=TlTDi!<U}So5iB#<cxe_TiV9HRVtgdVdaaqvF@+u&8$~&U!?g) zLzBReLX=tCDwd=n^E+G@Tv@r1syiGKn7x|$I?Do0mScGWj}yaJ45tn+Nx)eK8$k<N zHRzXylv**f&&-@0T$MQ{(0!q!4L1bB>E*S|^zv*<pyJT^Y@EBA4C5_<)UM|h?;D2k zW@#DoQ#@b<?6lDF4jrB75@^Xu?<DI26N$w=bKf*<lZ38$E_qE}>SDlEGJ>19rJ+Y4 zaWS<;yPUHeBc*s=@z*L5w*^LgI?hLb{z5WJBfUD_MxQ{VUC0S^)%yB$Yfomq<nVeF z0&yMhqF*5NK=J;N7ZStk8U_VAs?nvMXJt`|Sm4H@<;dl7eoML;bIX<jvBg5xwAW47 zQv2X#ySFRrgg`$2Cp|@E)tjyw3QnD*=33W0%4x|g`tC&0h&YAl?OG*)<tzGeahcLs zDC<hrw!l>45{^={wpl7&u8x3_7Iu;e4dVj67mK5UqvK<ILMEt2AJ^Kkq??}esY@$P zKhyC!?vt5{W6Xso=PWblnt6fwD;IVxPEx}If&QvQ(zY#grakTE%6aK{r(|fLrfycx zRSIRMY}wn=4dW53Dzhu&S(TvpP!yAxQHq>BquG=CT30zr>6pi30gV}0HuKDUCxbd` zgJm#@w2miOAV+Mx(%BZcTU!YysORnm{;`oP3EUZqTcx;D@Zx5C-?Xjmino5+m5rx5 zR+KwouTTMuB8eH=ls-KIeg7>B4POZ?yjhp3n;o^psL>HcM(JHI)e*mR9o?TbLD{!6 z`;`(8TKDybMgT<S1isht1AYve?x}_TK)vVt;K>xAGJm?}EIhRqWr)?yoGiLB%UYt0 zZmpIb&&sPFXR+%|JCuj%k9mRa8aY+(u=Q_ZM@J630ufmqYuD?GCn*z%t`*8|R?b_h zDR<X3UnPn$RUZ^Z+Hs`o3saUfup#ta(rZow51))=)+L(^Kh6B7Cxi$zgt?1w_cI!} z0tOEejkUi*tO2jlyfE??T1O5R4$(dG5_gUvHjePlfq$}tGj)Jy@A1}cqJijb=tqoi zJMlicFoa$Va|Lu0y^Uvvkl?P1c84*-)hIvw&nu&0KqDvzS>Vn%pUR!)kt2NY8y5|} zohYBcIGQlw<LZ?|xQj8q7clT4zg0ZHFh+HDYV;L868M!%4%O;kjPZPWaE#=}F(x-+ zQ%9KQN%r8E_#(E*ua{Up!k2&YMkT~HKEY<ugNGc<k50p)iNL&CtzwN1sIZ#Q(9^^< z8+qW;3>{J~MURnT8rK&`54fuh><Q^us6mbf$YGxP8s88{U<2O<c=!B05N0Ufy~bu0 zEyQ2I9->lTNl`dJiooRkMr`pHAj^+ByUnLc+Ms`rz8^xKMceezl>ZH|{O>(H<5QJ- J3v4){$iH=UB6R=& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualPackageImpl.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/impl/VisualPackageImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..07de9c5c7f1ed78912223b661b36bd6e036a6603 GIT binary patch literal 5752 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 H8-o7_W&*N< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory$1.class new file mode 100644 index 0000000000000000000000000000000000000000..41f3661c4d5f3d4887180fc4dfbcce82957e4b73 GIT binary patch literal 2621 zcmb_eYflqF6g>l#LS3cuQhb4eNQ<x_zFX0ThmsV~lo0$l-3~BhA7pon@~<>eO#I*v z@JAW%>~5M;wv|_#?##~4J#+54ckk_=zrTJ1c#J|4Z44hBcUza9^n7mXTP80%zAnB9 zqv}h?rbS;^d~Z+M+q&gcgsJaKugXoG9-I0`FfUa2o-f=bZupLSFglY&g5lk{VN0K- zZ|pF1_&d@YohGKmb7LN*nj`SMw531Cus(j_=$Q?M#5{@C1%}HSE}<iZc3jbr#8rm& zakZhlC~dJ?waUU>=Venc^b{R~n;YDf>ONXbC=nP+7fo_>hD1mk+!G}g>IKQSU2ZX0 zXO*KKCYK553d59pp3sH0r5lcAIks*)zT7&{qj2O>7{HArt~0D%aELVw;wHnO;R<rE zo?LV`LuUM>G$~!2@~$v^hJ`Z*qMiXM->;Nk<(8-{n!*yczoOnThEK8b8;&c&m++X$ zsiYp(a8IdnH&o>qSWTMgI4@hVpgdO|)zWAq)(=sURAcDkxS>1I{!=+Irs1J-qAzqJ zf~ZlSjHBN4VB%d7TfA!e^F*KFeaO2$bA|F-Ut9|k;8aW>X_%~I8bQ>U4jp?*jvhtH z7OP^bIAn^ue4pzkr?MR}PEiq>(QpTM8D{_QUab8S4H;w^He(5$plcjS|0X1#Yv@HE zLm~c<=D8C~`IUwdj54H3PSrKUl2j#jFs^Y;DSL*llH9hrUv+7p8=FL@YK~zS%O8tz zd?B2pn$W#y8>Zt?$6XQrj#FXKmTg<O^CtH^;bE8p*-j0drPHdV(5#DoNp#Y>n!P|9 zeSuVV;s;%RLi<K{ZRl2O!4pPy%Sh9`MmB2o8hU7CO85vRPoqNV%zj7e5dB|i9%6I^ zHpRexAlwt#({9|tZF<gBp3znDX+RokMEcMa>3)Dj;fqIl(1^6&6lpv_qTG!~nrKAY zY>G5Rx);bhJwh5I1(Z%5*@;6;H{wul4Riz9WauwfsK^nU*;Y2acp7K(td-3OWkAe1 gFPqvRfn2~ckJrIChc`4Ps3`+)>8DDE$`kth118bTA^-pY literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualAdapterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..5e916babcc9b5bd5cd3dd26b7035be7a1d011aaf GIT binary patch literal 2381 zcmb_dTW=dh6#m9`ytQL+C{0S*q?FQtFKw4n%B2p0;5x-p>Vh0ag15<L;!fF%wO$wU z%rD@P2VQx~1C*Nz5-Lwf{3zhtON<>mQe<k$J2PkIeCM2R&N=hf-@pD2;C0+FkP^7( z`5jaDbT5#uxo68AFEG^?%IXK&b14jzBfDMgc1*|HRkrz1_xjQ{xow-<(R_VZb_3;a zNGtICeFGVRn<1#OY~AfCQ#pI4<vEV$nywe<y?s+VUE3U0Yf>aoh-`c$t<Pjf2{bmR zb1wEPfvE}1MzHPAbzt2WXikYb6mkqj<Xl^KTp9Fzdh0(e+|>x^c={6NYHM^LyQ*Cs ztO=w`<!ymXotKnH8pQ%;Q84hFz{k^(I27*aRb9TG#~hvy4V)3!D*gYkNAYXr?HmLa z3NUagoV`%M46-?#!;*pX0`=(v8p(<RmXYQCsb;Iawce^X1d5y5Rjt0Wqx>zoWAjE& zZ+e!rx23Pcbt23J_jQk~KJ~B#o@ob6{kyW8n3~hQq^dSNe`~)>m*z{G59C8>+L9G{ zZ|8xsf?D}g1Fr}yA1yj%dA>3m@u^v?pj1E^6()_U+p@<XE|$t;xt3@}Cu*~}f@=n@ z3M?Ii9-S+|#A~dxjtUxs>b-P4_<yCD^`aO;uE*jcA(pS$fs*_n>2b0hUmC5j!D!{z z#^V}oL5DSz$D4TDz*_=$rpv0KGKsrF0q@|Jz^PsDu;JVo_j=@N=<HbR237@Dj&eRR z2Hs~NeNrzlZfI0vK##y;Of54mP`9=0_|h5BT%K@qqd<rB37m;>jzV0B#VzTm-G;3k z<py`d_hVoq(Mz&(AkMeFzHg}w9oFCCqzC3&$Q7T8rt2y{%0AV@OKcNqzG^8%y@In$ z*gYuCMbbQ1%untzsVH%{FE}n&e!;Vq-!S(HC#QeH{3D$G6S+rN`~hdb=YcdX@Outf ze#=z)kgcf6_E*6Is#wBRyvUspmSDI@M}SMQ<R5N}&@A|W8JGDDP4Cmm6vs-Hw!Xzo z=AilqR=&ph>JzLy#;XF4Q587cOdq5VcsllDf!4wNGH{E5t<sNoQNnwX4+}AB;sfz< zosYbTyqQ5dw<Nf@fj1I2>WLf0%8!^2P5+FWPf+`g_^Bx7EDr*EL)gUuc9C}1xG!k? z{RHqzw5GN=iqRk9D3xFcte-&h%ZZvFoIvxdiJJ8jXnr$6Glkm`FAZ#P%rnwCj{N-# DFW7sg literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualSwitch.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/model/visual/util/VisualSwitch.class new file mode 100644 index 0000000000000000000000000000000000000000..2a408d2012378f276d3fa9fa906891f59f24ae0b GIT binary patch literal 3557 zcmb_eU2_vv7=BI?8k#K7mT&niQc2U6t$>O&)<PN}nuL$kilE>&Jxv#qY$n;DT>B5a z^U@og;R<o44qiCiG2@N@#CvD_dd}G;q;$7cAQzkS`9AOSyzhC>`StIge*tg;wKyUI z7o1krwA*&uwHoG9&026=Q+_Ec9oKdm9CT&fYBudg)vP;<vS!}3+a0TBa=K>D>vs7I z+pR3e5fd1=ZQZrZn#I+Z7H-RmD`4ntm#xYjt11O@g%`u~pnNk^0(}{~VY|};(bVX? zKrBn=5{M#cAdb!b5ZGd16Z-nG4TEtE2xMOYuz?};3G~Z+sXTYKl+6ijE7%QL>eLrx zYtCAzk>XInsaUmnt7WUcKNxeD?Y2Pv1?jJmn-c6=jdQR06sz>AKr(Z4Q`1D+Qg#`? zqSf@tY+iJ{pbMN#X)sx-+0C{zWqrw%6{jW5oR<JoqlM>lf(HA`cC}%-ofhRfx}gPn zk;EYk$8lKTfC^(MoPi^Fo!KF?HLFd%52r@M{L?F@63mnl1Fzu?fh(b&cx%Hft;aOs zE=ykufkPWu5IFaeE@-L7FcHVN!2S@aG#dlQVG1N<)@isFbGRii9IlqnF^Ms}X|Q;l zWad|;t4-NUwru5R^;yg-LEln>zAbPn<>h;5xPr1nL7X=5F3t#SB}A^=Y4U6_y&2Du z01qopz3w!;ij*s`kTF{_n2zH;8qmq7Pmh{0@IGb);&wY%Z@Txi$Jdp|=L}@APawG{ zm#j|B&01}#tmF)w#|5sVBLX{9`QUU`LDo_T91M%GmqUb*y@Uq5<I(kyhhy@&q0IUg z)d3yZSZHQO9GA%S#mXQnfGcNhtJ<>aO0X*iuA<C}U!hXHlLFVg9RB}zO0Suq%uu)= z8JNe%R8isj{s^26hFr9Hm+|AYyt~U^A7=X#1J`kbVOF+FR$VUUYO*dHZc*KQ0<(cA zs@i$x*K7#_;*D5QwW)h(M4m(K9(f6*BmR;CvI@3jo4KrRq<|V6Wk&Eq3gq-39ssL@ zrET>&{+)j!*l1`t^zMm3(qVg8WCB6fjfTdV48mD&8;fMw>9i{HysfVH!QNNTaV4xk zDl>Oxt;W-9hcL_>j`I1%n5*XrTbtSDlZD@Y_U`as@P9D<6A}+$JVF0MZ2b|&4;+kP zJHJEx2dj4sCK8y$0L$?Xju_rX?8GkicCQ-Q!`@zR<R5MjalKZsOz%Sk`#BTA0qww5 zx))I^(_@ctP+)8YM<1{s)!2P{Uq<8Y^49ry3jY{VoPUOFa84n|)cxAU8Pzzy(W2rp zLzuJxseXrT3Ug9md<CZ-u=$QaY2p!>rr#i$=IGh)F_fN&KEiASk1@s(?VG2|LCOeR zpdS~B`XOHoMfy{sLYG+f3)<(jhuQUchHLYh(~R~$qTU(!fV-obhsSZo=i$v2IH$DS zg6N(<u{(}TDXz)z&g+saYLdURzllqW`|k4#-X+g|+s7ZHR7y{*;PRQ+-q;f)RC}(c zeeG#mF<0#eS_2ggkMR+v4RC|ZKBGrBaTvESj?Zx#7G|+PEfzKFQ=SuD)<t~E9V*R= zKI^^Ar<>dzrHx~>U=cyZ(c@qA`FnE<oKyS<v1!L&ioc?tO#VTxLR|`74JulLiyT!6 z6%o&;k=v6-k*;$QI(>_Ko~4nRQ)whr>F-*X8(9A;)cR70br%1w_38%JzYev&9AcgC ei>`I=sD&%@ZK(Ct2kfab5!gy$-1d+1oqqv6wru(U literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.ecore b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.ecore new file mode 100755 index 0000000..de8a627 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.ecore @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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="strategymodel" + nsURI="http:///org/isistan/flabot/executionstatemapping/strategymodel.ecore" nsPrefix="org.isistan.flabot.executionstatemapping.model.strategymodel"> + <eClassifiers xsi:type="ecore:EClass" name="StateDiagramTraceInferenceStrategy" + eSuperTypes="../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore#//TraceInferenceStrategy ../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore#//PrologProviderStrategy"> + <eStructuralFeatures xsi:type="ecore:EReference" name="stateContainer" eType="ecore:EClass model.ecore#//semantic/StateContainer"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="SimpleExecutionConditionTraceInferenceStrategy" + eSuperTypes="../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore#//TraceInferenceStrategy ../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore#//PrologProviderStrategy"> + <eStructuralFeatures xsi:type="ecore:EReference" name="simpleExecutionConditionConfiguration" + eType="ecore:EClass model.ecore#//semantic/SimpleExecutionConditionConfiguration" + containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ExecutionConditionGeneralLogFilterStrategy" + eSuperTypes="../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/executionstate.ecore#//GeneralLogFilterStrategy"> + <eStructuralFeatures xsi:type="ecore:EReference" name="simpleExecutionConditionConfiguration" + eType="ecore:EClass model.ecore#//semantic/SimpleExecutionConditionConfiguration" + containment="true"/> + </eClassifiers> +</ecore:EPackage> diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.genmodel b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.genmodel new file mode 100755 index 0000000..da89751 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/strategymodel.genmodel @@ -0,0 +1,247 @@ +<?xml version="1.0" encoding="UTF-8"?> +<genmodel:GenModel xmi:version="2.0" + 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" modelDirectory="/org.isistan.flabot.executionstatemapping/src" + modelPluginID="org.isistan.flabot.executionstatemapping" modelName="Executionconditionmodel" + importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" usedGenPackages="../../../../../../org.isistan.flabot.engine/src/org/isistan/flabot/engine/engine.genmodel#//executionstate ../../../../../../org.isistan.flabot/src/org/isistan/flabot/flabot.genmodel#//editormodel ../../../../../../org.isistan.flabot/src/org/isistan/flabot/flabot.genmodel#//coremodel ../../../../../../org.isistan.flabot.launcher/src/org/isistan/flabot/launcher/launchermodel.genmodel#//filtermodel ../../../../../../org.isistan.flabot.mapping/src/org/isistan/flabot/mapping/mapping.genmodel#//mappingmodel ../../../../../../org.isistan.flabot.trace/src/org/isistan/flabot/trace/trace.genmodel#//config"> + <foreignModel>strategymodel.ecore</foreignModel> + <genPackages prefix="Strategymodel" basePackage="org.isistan.flabot.executionstatemapping.model" + disposableProviderFactory="true" ecorePackage="strategymodel.ecore#/"> + <genClasses ecoreClass="strategymodel.ecore#//StateDiagramTraceInferenceStrategy"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference strategymodel.ecore#//StateDiagramTraceInferenceStrategy/stateContainer"/> + </genClasses> + <genClasses ecoreClass="strategymodel.ecore#//SimpleExecutionConditionTraceInferenceStrategy"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference strategymodel.ecore#//SimpleExecutionConditionTraceInferenceStrategy/simpleExecutionConditionConfiguration"/> + </genClasses> + <genClasses ecoreClass="strategymodel.ecore#//ExecutionConditionGeneralLogFilterStrategy"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference strategymodel.ecore#//ExecutionConditionGeneralLogFilterStrategy/simpleExecutionConditionConfiguration"/> + </genClasses> + </genPackages> + <genPackages prefix="Model" disposableProviderFactory="true" ecorePackage="model.ecore#/"> + <genClasses ecoreClass="model.ecore#//ExecutionStateMappingFileModel"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/stateContainersTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/methodExecutionConditionsTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/generalExecutionConditionsTree"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ExecutionStateMappingFileModel/stateDiagramsList"/> + </genClasses> + <nestedGenPackages prefix="Visual" basePackage="model" disposableProviderFactory="true" + ecorePackage="model.ecore#//visual"> + <genClasses ecoreClass="model.ecore#//visual/StateDiagram"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//visual/StateDiagram/semanticModel"/> + </genClasses> + </nestedGenPackages> + <nestedGenPackages prefix="Semantic" basePackage="model" disposableProviderFactory="true" + ecorePackage="model.ecore#//semantic"> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ConditionValue"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/GREATER"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/GREATER_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/LOWER"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/LOWER_EQUAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/IS_NULL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_NULL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/CONTAINS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_CONTAINS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/IS_CLASS"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ConditionValue/NOT_IS_CLASS"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/TreeType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/CONTAINER_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PROJECT_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PACKAGE_ROOT_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/PACKAGE_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/CLASS_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/EXECUTION_CONDITION_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/STATE_DIAGRAM_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/FOLDER_STATE_DIAGRAM_TYPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/TreeType/FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/StateType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/INITIAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/NORMAL"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/StateType/FINAL"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/EventType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/AND_EVENT"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/OR_EVENT"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/EventType/SINGLE_EVENT"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ExecutionStateValue"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/Faulty"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/Executed"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/NotExecuted"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ExecutionStateValue/NONE"/> + </genEnums> + <genEnums typeSafeEnumCompatible="false" ecoreEnum="model.ecore#//semantic/ScopeFilterType"> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/ARGUMENTS_SCOPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/FIELDS_SCOPE"/> + <genEnumLiterals ecoreEnumLiteral="model.ecore#//semantic/ScopeFilterType/RETURNVALUE_SCOPE"/> + </genEnums> + <genClasses ecoreClass="model.ecore#//semantic/NamedElement"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/NamedElement/name"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ExecutionCondition"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/fields"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/parameters"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/returnedValue"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/internalMethodCalls"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/scope"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/exception"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ExecutionCondition/patternMapping"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/EvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EvaluationCondition/value"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EvaluationCondition/condition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ExceptionEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/ExceptionEvaluationCondition/checkAnyException"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ScopeEvaluationCondition"/> + <genClasses ecoreClass="model.ecore#//semantic/FieldEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/FieldEvaluationCondition/fieldName"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ParameterEvaluationCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/ParameterEvaluationCondition/parameterPosition"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/ParameterEvaluationCondition/fieldEvaluationConditions"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/ReturnedValueEvaluationCondition"/> + <genClasses ecoreClass="model.ecore#//semantic/StateContainer"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/states"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/inicialStates"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/finalStates"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/preFilters"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/StateContainer/transitionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/StateContainer/defaultState"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/StateContainer/exceptionState"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/State"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/State/sourceTransitionConditions"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/State/targetTransitionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/State/stateType"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/FinalState"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/FinalState/executionState"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/TransitionCondition"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/sourceState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/targetState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TransitionCondition/executionCondition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/EStringToTreeStructuredElement"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/EStringToTreeStructuredElement/key"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/EStringToTreeStructuredElement/value"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/TreeStructuredElement"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/treeStructuredElements"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/parent"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/TreeStructuredElement/type"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/TreeStructuredElement/persistentList"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/MappedTreeStructuredElement"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/MappedTreeStructuredElement/treeStructuredElementMap"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/AbstractExpression"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/AbstractExpression/eventType"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/AbstractExpression/parentExpression"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/AbstractExpression/isNot"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/BlockExpression"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/BlockExpression/expressionList"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/AndExpression"/> + <genClasses ecoreClass="model.ecore#//semantic/OrExpression"/> + <genClasses ecoreClass="model.ecore#//semantic/SingleExpression"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SingleExpression/executionCondition"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/SimpleExpressionExecutionCondition"> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExpressionExecutionCondition/executionState"/> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExpressionExecutionCondition/expression"/> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/NotedElement"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/NotedElement/notes"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/VisitedExpression"> + <genOperations ecoreOperation="model.ecore#//semantic/VisitedExpression/accept"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitedExpression/accept/visitor"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//semantic/VisitorExpression"> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit.1"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit.1/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//semantic/VisitorExpression/visit.2"> + <genParameters ecoreParameter="model.ecore#//semantic/VisitorExpression/visit.2/expression"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="model.ecore#//semantic/SimpleExecutionConditionConfiguration"> + <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExecutionConditionConfiguration/simpleExpressionExecutionConditions"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/executionConditionNotVerifiedState"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/exceptionState"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" + ecoreFeature="ecore:EReference model.ecore#//semantic/SimpleExecutionConditionConfiguration/preFilters"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/useDefaultConfiguration"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//semantic/SimpleExecutionConditionConfiguration/useCustomConfiguration"/> + </genClasses> + </nestedGenPackages> + <nestedGenPackages prefix="" basePackage="model" disposableProviderFactory="true" + ecorePackage="model.ecore#//prolog"> + <genClasses image="false" ecoreClass="model.ecore#//prolog/PrologElement"> + <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//prolog/PrologElement/predicateName"/> + <genOperations ecoreOperation="model.ecore#//prolog/PrologElement/setPredicateFunctor"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologElement/setPredicateFunctor/functor"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologElement/setPredicateFunctor/parameters"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/PrologElement/resetPredicateName"/> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/TagProvider"> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getPreFilterInitialTag"/> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getPreFilterCommonTag"/> + <genOperations ecoreOperation="model.ecore#//prolog/TagProvider/getExecutionStateCommonTag"> + <genParameters ecoreParameter="model.ecore#//prolog/TagProvider/getExecutionStateCommonTag/executionState"/> + </genOperations> + </genClasses> + <genClasses ecoreClass="model.ecore#//prolog/PrologCodeFactory"> + <genOperations ecoreOperation="model.ecore#//prolog/PrologCodeFactory/getPrologCode"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode/stateContainer"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode/tagProvider"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1"> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1/simpleExecutionConditionConfiguration"/> + <genParameters ecoreParameter="model.ecore#//prolog/PrologCodeFactory/getPrologCode.1/tagProvider"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/VisitedExpressionProlog"> + <genOperations ecoreOperation="model.ecore#//prolog/VisitedExpressionProlog/accept"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitedExpressionProlog/accept/visitor"/> + </genOperations> + </genClasses> + <genClasses image="false" ecoreClass="model.ecore#//prolog/VisitorExpressionProlog"> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit.1"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit.1/expression"/> + </genOperations> + <genOperations ecoreOperation="model.ecore#//prolog/VisitorExpressionProlog/visit.2"> + <genParameters ecoreParameter="model.ecore#//prolog/VisitorExpressionProlog/visit.2/expression"/> + </genOperations> + </genClasses> + </nestedGenPackages> + </genPackages> +</genmodel:GenModel> diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/CommandUtils.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/CommandUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..08b8ca14b9499ceb268e5160bd07d45afccd3943 GIT binary patch literal 3376 zcmcguTXPge6#hEd-Py|^B!s|n5u;I(kgy~Ifn5^C7!(LW5)v*dVY2BY1DlyJGpk^g zrBw0agO*hmmgW!Sg%_W2waT(epZFF2664oBlg;L`1s0_*bLl?kJEy<zobG=5_b<Nz z=!0*dL7?Dzb2;0${lIc^vn6ZV4RZ3HES3Y?bvPKv1#5B9cII*%Dfzh}cVWSDW+v2+ zftbLK+tw#mu4K{T()4Xv3<MIVZO0A<1sXd#Ck0|d?u<;M5h)XKBm}mP*p3`6FHB4C ziZxx50?i|C(JD<^o~{0)!B{YF`vL<aFOXtEVB5UqkI7l-Nv9}@H`<{AWwB&0`Z6aM zW^=OWdNMa0=3l5Y?MdG)dqtTWi$2C>Q0Tm2ph@76O0gEPNSa(nbC#QM?7L+-JVK7s z*nw0AEoe2cOQ1z_r-&u5r4q>_=_Yn#54p2uW(0P1jBMnWG1J(K{RZ|4oZ1*TT#AMq zR;yA%wNLogoE-98e~k#w!~wi4V9eUi%$ZV2U_1)7A)S9mN0_aKxM(dFGI#~A8fc>m zYfI&XiPz9Bkd#i~-6xL%O&y&zzKYrm-av<eL+gAwVWJaV^tA)&S%K>bw660#7mX93 z8%GTEu)NlSug;pt;V5g<k@pzAWfh^Ojtd6*1a_{uGVk_bm2d{VIA-Fw0!YruVA3j; zrBapYo)kE`wI;*kfmbdDWzQ;|l@{N!ovR7hS{d{sZ=!(H0%_t!g(%R*wCaFGwW^{H zns`f9OtR=Yfn__s!aHN)9SpI66yB!D0^RkYH(8U(VZ3MHtUyPdbT;{zcpv8kOxqut z=iVU0KIevTL&<W%#E6<U*qftTfrJ}v9tWSXVu8$RC+foKu4BJyw60xAk_?&SM$lSQ zaBJ<y9V1az{X&cFH5RIz1>(A5N$dKVur4^C^g~JMY($>|eRWdYtjlUe5UJUV_AC}i zwIG`1CZYwpo*SO9t?PH%`-`i)ZGX***4Q{*4?C*AK|+33<4KmD<x*q)9C0?Sw@T4q zK?VP^2Cmwm|8ENCYf^Z@6>+Z{53J%Hu0$V#26zS>sMB+y1O{eV0$ZDG)dQ^RqFZ)? z|L#a+U#C}#S9Ot41LOMaJZr1dzNz*SaYSvf+$hdDj`W5~mhUT{xZY^lM9~&$;I2UX z)~j59*l{!8>bOH2c&75=13rn51fK@~a(oNE<6TdX{D~h8Nb{+t0TUVh)CT<9#=jI^ z!uHTvJf*d=c=RiFTz`V*i``un>}<f*?!!MLJK9shL4gWh7s$t#F`JE7a9H4X^yXvP zSOssY@0NTbo2cLfZIa74nN3DE{dps6RB(#psqSp5f`JAsVUHSnn`7y0x`KBFendR> zSUH^+SX%j0h0tH$H$G-!F};{PQwFadNi^}f6Rp_A3*c@HVh<*Hmzcsn+~$42$IJMf zNA?#S|B5!>@d#GS`-qF?B5@I;e5<cZ_<$57@ii`Ej3l(uXB=0^Z6B^;f~YZ~U*Pu` zshs4IeGS*i_Y~1@5GBP}CO#x`8Xps}i}oSf%_`bd7423P%_7<~?Jpy?!sHSLiUy>C z7K6YBPZq53YLTiPHqgrnnuPPmRv3H>KaS2}KGO9sCSfwnQsY3R>}XG<Y>!ell&`97 zVi|Kv!${k>5+Tx7YpAqME#s6@QQP$AlS(qBZMsJZskP0jF{N!Ln~AhdJZuokOH2BP zilM(A?OzjjkktqrX2v}v^9Y)86j{n}0>^j-I8M6zQN&3&$m3I9G9F+64>|q~ZGOOz z7I;>d$x>C|rAXigTG%WN)f3-psT+y?KuaBCglk&rIOB|HsSQT!(o!cGvrS8#X4Gw3 z>P%JY5bY)f4$-D4aENw`tr?<O)JsWyMM>QSBh*xE)H=Oxe1q7>mDpQ(az%HD-GCAn Y_}<G*dRakEB1N`_;qtu~i|~;82e$HZ@Bjb+ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e995ea2d063c988eaec8e103ff1b579f5ed63d37 GIT binary patch literal 1163 zcmb_b&rcIU6#j-TER+QV6#M}yQnk>;1w44D@j@V$6g2^R;WXVH%HVXT?o3ht5ziQn zi8nln9*8Fn{!zxayKO{*#siz|{CM-`eeZkkn;$>F9RXNE$wd#tV;whqX{50{^0yVQ zYwL^GB4}HwBQjdi<gJ#B8a`Q+@mIQM%Q^~W;`BVR7ZzPO3>S9!9`_X|_oww;5m*;} z3=0W{2$XCY;kTt9O0IOn_>~Qz$cJKV5K!CHxRN2aI%ep5C?jbfG31JKH3nx{ha!(0 z20ggwXBer<NIYpb>muIdbtM?asyg7R#$%c6J4VOuNW-vJJujAJhW@=QO~QOo+^U{t zT%Jq8x^x2_3qNj0RyG9@PI;DHj5Exftjca^{nWLxMipF9qA4Ofh%sF9Fo8*i;fAms z^X8itVN+o$d0fFY7grfp&xfFgDNGYZ9t6Ue!UDr=@gICTbdoe~c({4;>LSB{>9&_) z{ER{|3{imK#X4_w+LhnX?KlvtGHK}4U!-;~sW>TMB?^=_q|9|;cXa5Xh&hH)s#7K_ z5oQMrZ;OAl<jh)^xBg!vUHxV+Vp}RJV!tNED@vS}&tknNLlK`+!f)6tFOrg1i6Rj% zD{hQ1R6pt}{k`-&d*~;j({6xP_i1J{_s)Mo{&RZl(U?!&-oc^6A=-PH6NWKDJ9>>6 zr7;Qcl01`;#nLfmOGnN=rc1e{V@%Tc9b;c{k-P`?;U41h!6B|6kZ+FSffVS__@1yn wP=X&(z^4>zB8%6-qR5!REkc`3Z?XbiFVM0Fw{eGNha_?r^R&v7Q^JM5UkE-z`v3p{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/ExecutionConditionUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..2648c645e2b9d34fde96068baa1b2dee70bff4da GIT binary patch literal 9437 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 E0T-s@mjD0& literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9f7b3fefe8185b46e0f3f7acb8fe0f351798db9e GIT binary patch literal 2222 zcmb_dU31$+6g?X$QR}LWnzleF&{Evgc48||(hurVXxx-B6DOf&(&_NDkvEP~SrV&t zr~INmcZSjo4EzB80<ZiIhP#rT;+i--#53|ryZ7!r_uRW@|M>ft-vKP)YYP($o006e ze&Q#Jhwg5`cOvDA7sBf)KMHA5i7t<0KkT?P6D00_Te+)#$mNgqfG0^yaOv$m7C-bv zq9U2ES}+-$eg2%g0Vl7`oqgdc3sVeL9ZGnCA1A`y-{qcgqgY6;Be{*oy)fiEfq3Gp zy)7Aaq(~BmDYfS(`9;FHexg8Y3}>J7An)lUHh5Ps%&fmf-BOZLCZnl)e(0<F4DG@R z0~n1~+-5NAQCpk_!?X<xr}W!-8>f-W!N3I@XK<0hC}`8^bw3mvz3z^X-)Z7>29d{u zZ7zNN-JdiygACuEEc|?x$T4IuWT<4!3<~Q-Qn<9B{H|~tgGx3dqA`-S;&u)n;S&oV zGZcsVf%+<SP125Xv&P!uN(mX-xPq%xF;5C=$o?e5YGIVbMx#+oQyt*Z4SVFqwH&S? zZ{ahB!trR<!VXbx<2vRTE@oh!MDke@Q!lqXYG#JT!uarwZ|G=b$)z4Cf(sUk4CUhy zY;mc4&yRViH1c^H3n(*O?g;fz?DAfq2D}~G(YZSY(uhln$+fYFDxH8NEeOM3!*w3d z>-Ybw28SSPW6ei68*81Vb0|r}TOZe*7M2<2{#}S6k2*E?+6zy_TC*(NWLQ4Zc5|R@ zbsl;m5bZ-p2CJK$2Zs5fT!w;;93JwEvjg$2-}quMOeR@(R)(Uz>ovkNgPm1B>wJdN zSpSUq%vK9*OL6a6lgE7}%C(}N^u!}yYt@ybFOiDYVbZs?&<mo3bhs(hUevZwXJ~4= zPwcwVExyKZ=|6NtE3DlJLm|_9P9(TWT5QlWi3!Ki;tV)5TAJxLouKCoY+5}_Z(q>2 zLF063{x!~(7GA?Cy}`_@)bJAh=TZko;|;t=-`bJP@jgDFkzp1e_P6>IQxp)mQ~C*x zlQSj{aJhMaPd9$WwWn`z<E}YtE||Ze@YFa!sZ}PkbMrr=@)D<-FJU%crIB2^?w4p6 z7q_rN&@_fyDbzAdR49f^2`y4eWx`U0gJr_7LP~v;1ZIVN?~r{Bw{btkyOLq*<0W*o zdYcg2n4|a4DW*f}beB8~+GiH`h!T^0HA#lFuvE8bS6cj%rY7(e9?)oF6%X-<-g2~+ ICWL<f0CobC#Q*>R literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/BinaryClassSearchRequestor.class new file mode 100644 index 0000000000000000000000000000000000000000..944e8a1f98021e5778119429b473e2787661fcb5 GIT binary patch literal 2908 zcmb_eX>-#?7=G4q5IEv2_t6jt;5Y=8qb(&gEjdV?+DRa8AV3dAUfVLVWOM}5Kg8EE z(<Zdcbo#kJs_nCqlh~=DnGV)iyV`xv=RJ1+{Oh;h0bIk68d3s9&#xMGU<aY;8WqP} z_CiCxkX97hp3B8hHq2(zcB=+goWQ7;Lu1@_O@DR5F@s=1n!Z)LFP}v+2t8jzT3}d- zl$K*R0~ym>o-d6crZl!O2=vv>6?4jw4e5pgrwd(~^QG0M92MAg+ji}6OrR$_v?!3C z@X9iS9`xzZuzL>#_Uh=xE`j|8+m*9XV_EtobJ>vshYFr$I*X=ntMArgI;`1&z+9~M zy}>|B4^?G&*Nfcp%!YgP?!)ZRyZt+8T9#~v2}ngVv}yvEv)y?*0F7x!6(*Uf7fOVR zo`&NB7ux}iBjHDGXg8!W!LV!+XK)gyHJlQ-)Xt#7{qOL_+H{=3htx+$H^X<B4yt$> zj>(LfTdqqh9My1E;AB^+aa;v@8;PrLL8ptSOoe1s;7GPj<wEE)R|$lMiwvt$`re{C zcr}9y$f{Hu5-2BOd2iB3yL&M#V01uNF)eA7ZPW3pfidrURbK`{(PLS7{$#wI!3Ycu zR|NXoIfLh+@!T#mT!ArZ2TjLZ)$tLoCLx@Nd_S(h^V@Q?3)`sDa9zg@d@Qh!0`FL% zy&@NC(s2X^-XS0+A$ty=Dj07Hoa@Z)c5Mmq(4r#0rDGJgS@%p{ft%S!k2;GYM#XDN z-&C1z<nKqWtIGU=9o9BLVpe1@hA%aIA#i8MsWG+D4JSOeY%B5ePE@sB9d|IEfHx^C zX5_HIr&_-6C@bD3nD~rgQpXhT3hW`g1+Q9_zJRJOWp?0HZq$urmDTl?z_G2OODbSI zvYoQ@Gnhd^!`E!eTNJ*mIIK$}@2;>TDu+s@uc~;Xap)*wHu0>;<T9)5o}HE5Dzgmc zabLqdfdgCOlRX^^C<$mQrW47z3j0udnYKDZd$ZUSIgLe?8-vRBhdP$<h+UoLErh1^ zwB$4W1<q!N9(UBs##XBn5yELa(eW+5W2fK&Cf%~Y$c{{CK^KeoL5HcJ*d2O_eSNSX zHBi`r?UB$?!618?^nH)O*A(zJd;S(Oc{k){)C^^L6Kh5IkYTpeX*z2*;)807rG*NC zZ2F$XU<h3QADK@Ol9nNGwF~<@+X)XdL90gE@cz#XBG1`2`fiSsWN#eOqS=fOV+|{` zuDxT`cT&~N(*-Z`EqT{gr+ok0FDF+NtO9!8b)_HQUSxm)-Whs$AL3;~T^u+|bI!{I z-+TCV8!66!Om3Zj@eA}<{7PXT-}_?DBjh+n+9TM{H9eum0UYEP?*aIrCCT8ZB=zQg zhW-;LiI83K;;A;~-c9Di6q>?O(ki2r5@3=mDUNz>cnv51K!1lxnRssieK;3OJett9 zBr5X;xT6d?k3qgEQ5do7K==k1mU6@ExKw<D+|p}YUc<F@d@?(dPILO%OO$S<U*q#N zOuWJL(uwpM@~<(sj&IcT!5SW~;rm~)oWe`wwo_KODC=#MuV~+K^wXx9cr36SdSY;| z(N^FRG8pI16e*@@ah_+v3^B-~z-N|E33G5c2Dle{JQfEr-1IoaQ#kZAgE|_dRQjI4 zLz8+2d7eLmPyc7*S-@FHt!L2lHx;He2o3WZB8_S}ov}64E>gsE5~c70s~j^Fet{!@ F{{TP-F_ZuR literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher$1.class new file mode 100644 index 0000000000000000000000000000000000000000..44e59680824060b313932e805bd615b21e96abfd GIT binary patch literal 1635 zcmb_c-A)rh7(LTg7TN_W2>t-IV8zm6mxA#I^`>G{LxE6(dO6(=?bhvV+1(PZd;_0@ zYZ8z|6Cc2bGJdn$5}OFdq?_!{?9BIbzBA{WpTEBS0I-f{8X^pPj@vLS&+>dOjYFH) z9N!Qp!tDB%BWckWZQkivvSHAQ?HR4QZ<M7kT*>W<@S9G(#BJNF3htUs;bw{&VhqU^ zKjwzb$!)jR5~i<VgrTT%3DdSZo-kU6+!Th>5iVD$jPib0N?x<Yd&_U`xlY3sp2sla zH!Ux-MnJcRi*%DAam?+E)efp)NCgS5;8C5X;|il3R!Qa~FDz;KuNaQ9!^U!R>XieA zSjnl2F)&Q(&@ifIw{?sm9!C_@Iuf|U5X~yn$!$xDoo>4(+;@slhN*4G<n{q~E%o19 zj45Ur_J>?crbtvp-L7OPggo^r4d|o|pC~uV{Ufe8M5^O%t{iBXXUGm{q<;urATJ|S z*_LcjfpN@XT74esNMn&99U8r+bUf6Qw|iI>(yx$^ctcRFp9cXcEr)0PmgKr+i#Azr z{{1Wl5bTSiuJ9D<0pouc_=sWo&jJTLN+h?f6H|0lKWKQ&uyL*JZoh9zT$;ib^(#jP ztsPRzkpB;O40>2&NH0Tf!1;=+0U|<MI`HwT&&^L2-sy=eUUj;zDc)F0e(4)7jDor; zNV8kgv>lJ`nXuh77z{hZ?RXtUtWz6@6)-Gbr-oj~t6tK}QVO?ZbI%hV>5QaJ?=3`< zN!5lxa!NHJU8oUy6VPdQoMtcSKT6|dE`NcE-0B6Axl2r)1%@;9jRy{l#wVDif8|K# zxQlx<GTg_5UZ^jK1));kG57Hj3zgN}IYm3iME)yMrx>lAB33yI;?0ov68X<y9vSjd znPv$t@RYz7Xm^cvHn4!_LDqB_xtA44VVUqSvP~k36^fZ7-vpu`G%S@gib)Q6T8dzm SLV}<bDC7ps;^d}EpyxN9BHVWX literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/utils/jdt/InternalMethodCallsSearcher.class new file mode 100644 index 0000000000000000000000000000000000000000..3af3e0e0aaab0f8c9e24eceb36e014188b7877e5 GIT binary patch literal 3305 zcmb_eYg-dX7(Ek$t8q~gwTfC0DJCGUx3(6%6ag(ZASDzF(%K~%!s4<UcQ<%xYw!2# zzwm2)o))A$?bFZwQEkuc21qmtAIyiH&Fp(QbKW!W%s>DB@fU!T_(elZV953IhUHs+ zU^>RMZBDs?A@9g+F|b^RlYyKw3kA!`8=SFyV>TBU15O}4$Fv7!FyrQWP22V}()6-3 z($f$Z=uk0b*0u`13>~trCk;O|F(S(md8;V>!1V+gtS7?>>`2d=^JbXTNE2PRz?O`a zcg&#ZNrB^!eLkD6nsXq6*nOVvo6cH}6`U8SNv6gG;=OK8CQySq9b1slu$@rWa`t$h zc~>P)U>oYTKwzhiT5J;7p0*r0RGgcV-l#cc6U@%En>Fn*)3en7(qufCv3!By5ZLo0 zm<y>lvsqaPA|eOPAUh*)G+CX13erQ{ZngMC{~Z-Vl~}`mfwpq?!fJU%C$Q$E(aX}U z8YgfNO&VSlI8yGQH1TAK!)!X5aftcyGU&JEoOA+#UCC5bJ=>(Lu1?L$Y|yRYu)u+; zQA<VKikEOiLz}?1wKAy+=}02QvYNS^!0zOeu~QQQwQ~_ssSWc)!4dU{^ouq@A4;aK zS9e{}n8Ii1IF1t(mv7ypFsQTvHGN9QX}m0;1#YM-fn@S}6`WP(=rk8@Gis@69R$>P zRBr|M*<e#+8Yrb<Mfmd*XX}Xsx^PZyDDJac5r*d%zI**Oy)Ix>h-li(N+V~Pwww2j zVb9Hb()R~lb^_Py3#Svfh&~Oy<hR_@za1F2tsEub8-12vu+6(V`f(`|b8pe}LNOnv znAdUZRvF&VF@P)7E(7*t18ZJpW~6P0!g^|e(1h+6kXD=y3ba(#wH#z*oElT+S9J{I zEeep^Sl~=@Vxl6)Y{-gRke;b}fH5#qbR5;Yu35p%3Q24f31slLhEai@4GX1z<?!fr zot&k@58K7O<>(m0wTQevIc<iUs=q|uh9vT|z~m=`aUB!59&OpQo6k!gEUM2a*uFh| zde(?$*=ODrcp+>cVf)Dh9uK#RMa#}fFM%5{HN4LwY|X-x(>6O4PrZ4zd9|QX(^LIy zrG@I4LN;32AjM_ox$`S~T$F@BCGr}kdAhBIkG|=cfyKQ(Z`wt9l@@K)`dC@ZSPeOe zn@Ss0Qbp@4eOEQS0g~^cAW%oxnZV569QC*@1e#S-D~Gc3snn~9coLotAMAjecn^>c zTWsfspp_^ML(J>Atti?YxDl?cxQh=o+#?f@S4hW)YB9Ca^IR6>zADJa0xzz?46h$v zu@K1IY7LYjm9Fu~Qg;&CR|<aRgj#9VG%a{;mgN#SRcX4Ry+JynrXp~niu*Gg4*RYk z`JH9Vud6ZoG?&>|qktxLVQ~k|LU;$!@B`76H>VBldn!5O7QL*zWU0$d^D}OH$5c@S z^a00_UaxKXzVva3ccmKMFa=`j!o*SIzZf<n&Uaq5_}t2wi?k9PceF1;Z(qi?@kQ+T z9rX`G>jplzg>f3_w;S8hfL)x^BOlJ};XiI=>}BkId{@yM!^l@S6XVRz_TNz7v48`A zqh$%LF<e`Vod_)&QIGv$+&z&;DK34{jt)lT)e4<_D#T-@xQ#0A5{?P{iI#MjWC<r3 zzT;O~#fWqTdlTw-0oqGW6!s`bV<|@+zrBK2!yISuT9iW=Tt_W!gJpD$w|6Y!?BFsk zj6Xup0xmD&&7sbC{OAIP9$>U9{s<!rcxM@t<NM+Zc<&K%i<nifa|^h&fZ`JF#P9&^ zk6V7UX8B2(<wIiMizc+NWvDUDO;r=F<|KIsj<9xJ{Bn*K7to3xa>TQfW17z)T*4?W z!{O-juv05O&-!yMtE>k26rXXW3C!Yid=ciG#FzMrd0Kf<`WoMG{X^l~w|x7K-Um_h m9}~tk2n{V7zSo$XuQx0W_uClaM;gWO6Mp8X#MQ--zyARqlc!ez literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionView.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionView.class new file mode 100644 index 0000000000000000000000000000000000000000..23a989b950207774b3aa60dfc8bdd07bafca83a1 GIT binary patch literal 3201 zcmbtWZBr9h6n<`q1j3>M3TTR=h~!PS)z-JDRo*HJ)QZKTR=XtEu##lc-3@5}Nq<1U z`9V82)H>6#U;3fHsnh9mcNZi}6gr*EWcS`Z_j#Uk?m6e)zyA5{cL1mHLktmt3Ck|( zreiv;QPCflj3vv}<x`ojxu#X&q$|rtwQ5$1`l>0{^vR7+<5s0$Dw_pP#}E}5R7f&k zGOLc%Yo=Z`Y*)W!6y=y@ttcx2&B(hoqcq8tmMw5$rWrXu>g8I=HLF~!PkEAN)mUNq zOLGFPm&}UkUJ+<XrWORE<5oe&(Si;QF|-Nnn=vbLu2x=>_8nuXBn7%>th`ZLFl<we zgUP77Y&rr{O_gl;y4x^NR%gMQkdA9x&y-q$nWTrjB`ni-Eqi52R`ScY7@%DE^R}p+ zP(Zh3K9^c(M-L9ha6llrQ>-^uY3M~C!=qv;kZ8&_tr&7K91^(RY(xHQ7!+I_{YYr| zNNq)|U^-RH;am?Ao)+5`I2zUx3JiDFmU)46*zWxi61d?R|KD`>;=yb!SmU;21*oyW z&7HO~wR@%Q5ICt}4_Z~Ak}79Y0+)P-u>9Q=L~0>U$c%<8P6@QB+VEAUx2g8x=k57M zVS4`h2)c%k@rgi3QF;K%gr%MQux~l##TgBs;xm>&-U}KV1k0dAKN}S|Yp%X#7KrcY z<5ro8VY-sZt+L~s3dDJV%Z*FeOhU=gG}3+^t8UO?I@3h9+0&S5$9F<Y-HYLpz`170 zzl-3r8Ofldb<Vp+er49E2JK}(-DC(|b_AoU>RsU2_E?6TQ#(1PVH^{z9RkcVKmx-% zty5;X4ou;C3}28Z)FK*5l(B|s-0&&<T-iYyn?wg@Fc-tDz`zIKi-i6XSD6Y_e=YBt zt1O`%Yo71|U4HUR$j1g-zAr1cZT}itK(2XiZgjOfY&9XR-tt-LIIL?$5yw0_)Zdvl zd?PST^U<IPNBtvlbn{3IPQy`k8jdzU4ZUxZwr$yQ+{1$y?h9O062gVuw6T_bU5*|I zbToX6hXU;?6I`1ou~$-0j8#J~89bN$Nk(DYlyd1i4F;A3;*N9!M1h0J?Z&DC=TXog z@tEdh+pOTBQ0g_7uvg}}b}Zvb3}z_t3bwI!y1+s&SvK)_l2%-Lv;sDUJ!{KeW)C)0 zvjQ)&T9(bcY7kt<?ovTD1}n6aO=M{J9=up|(%CT<V$rs0m4d)fV+J*$@a_;xUb8#W zASZm0VU8YaYOp1rXcM2eYIa^und;_|cu$_F4dXF0U8zWWykt0z<W(f5GLq*#j<F52 z@TMjZQ3nOzTKUe)4gcFY()kp8?n$pB{*o^dXn_&X$saiO46qmbIErFFx`M@$&nV}* zvaitn7X5Rl>NuROW8fW7w`b5tzJ3B7;^M;|Xxd*GfD!^naMUB}!XQ;gxT2lcj^k7x z#Sl&elx2>TKSOWOznFf7;dPA6rpcMkrt283<MbQ!EM~InIQxQTzBj&zlN2yQq9kRc zJQ0IF)TW4`K!k=qk2*rK3%D3iKP8%?9?1NG+>hwXyhUy{t2F$CcslzFhNI70p3|Vk z3*lie+GiQ-a~z+?0YV)jSOS-~kPmE<4{Va}qeUypu6S4?K^33lYM?^JJi-rsbobh8 zO!9V^`4jQXYuprgA(YcTzwh*Q#Mz+tvg01aoX6YiFAsR*oa@Ccf+{v<#oy|3I77;> za66!U7C1ig2J?&S_&SJprjCVd_uXHySjQvoK>lYG>nLa6#oZ6VJ;L56%>#6^2_^6l o!+5kM1S6Xv7=Z(qq-{)vUerh%!761%u!g66sxz&J?mdI{FW}Z?wEzGB literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$1.class new file mode 100644 index 0000000000000000000000000000000000000000..480e889d9c013b1ded5cf65a2984d57fda72e4ff GIT binary patch literal 1021 zcmb_bO>fgc5Pg%Rb!yx;6e!;m+K9G6!W3~pDng(r2vAxf73IFMhjfwSHQr6a-$DX` zIPe4bQHa?jTtL7jmh9bqGxI$2X7>A!uipUN$4-C>;iV}Dv9{VemB()~)i*BY_neHJ zHo1U~hpH%aK8VMfCvoSOscrI9d!L@buhf8>2LWn?UC+l!rVGoloe0^Ob7$id&N%V@ zPg7MmE(y!-RNLk~Nuj%_91ex`k<PVyOgP$G9PNIOP-~l%S3o!uVF}A2s#uK>V2x1S z^A77>o%8W%*yr-K>Ss*Y=$b@jJymLdo`W@CHle$)?3xEs_S!_J19mf&IVH4a<^QV_ z9p9P5{a%PoTnccJ@O)8?h;SKoLR}>ZTibj<AkkxYTJ!%?B7`SqR3`jPdl|R>K6H2A zs<9I3J9&~BD^q&J?$o3aZsHbUH7QvJSVq;ACL`SbQ<Ir&Hg20?Aq0*^4?^@J&$(=8 z%38L<B`uaKLyd;-yzDCS2B-_ZBD;rj_DI;e^GQCR5q+5Ytb1%~AuQ25G~^sfj7QI6 zLsr5$oS(Bik=3)*TOSdA!G+&AXoP^qQ;yA<-<(4ta0OQ-x{7NOU%_?UkhLaV-NLr) KLb3V3%JUQ32p#JH literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$10.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$10.class new file mode 100644 index 0000000000000000000000000000000000000000..6fe04d41df24fc8532e046af972c98895c55196f GIT binary patch literal 1096 zcmb_bO>fgc5PjpMb>q4u1Sp>+r41+z2sb@&2||LXh(KB)73Ivv*``}LyOGx}@IN@g zuRsEUIPe4bQHZgV3IXaZ2k*?zym`AjZ~XJu_a6XuaL0v1cwypEpsccq(7|CO1||vQ zTN$Q_GMa;l9E-_B=}~Z^<eOmkG}SSBs4`5S!!N~1)?3>yiiBE5D8ooitPGA1MJNLi zX29TaZU~FXk+St|!t>s|4sSE-L#0*ni14~GKib~0I1xc4`1uD(%w1@AxB7%)#|&i& zgk>KKSoBc9iVqj(2&;`VYRWyO<$gLI$oQ2QM3PYLnNUQ15vy!J3l_8H5ccNw2G)hU zvs@S2=yzk2T5f#x|2zH#X%VPPD8#AewXxOra1A$HTqiu6mt;QHaFb9HVJNMww|4l^ zb5t&q$vZG<9LlFE>vrwz(Y>FkOepW_Ffx`^-jm6Z8T!~nov>nMG9BF~B4%l7(_5a7 zc&dW#pL9Dr*Y9dA<4z>3l@{wfCk6iFs8Y#>g*}Hq7fT#3vA56JB3r+C_Y1t{y|u6K zKjo-0uU?KOEI98`;r)8f<>Nf6yyGfdz{MQn;}TXmOSp_HGwug$iBU_<&+xwC>OZ{B h2e{71oY$Y?X1oQ|xXR(vZm})0`Wv{-o;TxT_csaEF?;|3 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$11.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$11.class new file mode 100644 index 0000000000000000000000000000000000000000..16db793f09fa67cd98b4869e52ca647e52c42cd2 GIT binary patch literal 1064 zcmb_b+iue^82+4gOP6M}l=HCza?urp84|l0LV{|DK{p`{^%l9Q*Lh0qDozHx4HCQn z5@=`_djK8^@jLB=#NjR%vH#;2`~N=w_<4K+;2|O(9>Xh>j=8eRW<vA5L<~*F<$D?D znKGJ!nVg8}ROvB4RPr6)JWchC9w}Edpzv!kmeJapk19jk0m?X0Q!Dwwo`@wEu`A?H zi;ZD1+gCPv!0@tP*3UNx^|8__d&2OxQyy&pKpYC52)h1mmeLe9RtF5#o*Bs{Fw{dV zU@<@i%OQN6VYtxwcT1zMwA{%jLz%u2!$dN)`X(01K%~m~^I+ADhGDz38xSirn|dU) z(H|xzw>0+F-$!Jqq`9WGvpNWH8CQK=VR%s%Jt3~)Izvswv9vaNL^mvvBu7cGYw|Rf z&y^c(`~NDv?+9gRZ0a~MmI&RJ*}fTtxP{vc%T{JHl|B<G@z9=~@>I>a;#<Gdg%rXq zt!3IvgtgLQg)~v2$HkgWCk(PY`h3(VzC>1!e3!3x?|wtjy?2E0OHtIIH7JT17QByW zl7F%A>o|)RdDMh+I8QMW8Rcex>$Ee<)w*91e8;6f(7aFZz0U<&IIEkZRd9p4JlsT^ Q_9`*Hf;(gdb38JC0kr=sumAu6 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$12.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$12.class new file mode 100644 index 0000000000000000000000000000000000000000..ca5445907a15321d5d725073412c7f867286db8f GIT binary patch literal 1065 zcmb_bTW`}a7(GtAWlb|$Iv964AP-%KFdGstLr72!G3XG|P+yUodYz}#uHt0CuR;tE zhzEWEKML_V?S#bTEf2B3>xuoH;~zi2eFw0G$cM-9+@xc!tg@NV{2&oSlX3Z0#(AcU zreG!~VmeiN%#W3P!*@<oJ)=j;)eI>7QjBG^x#gqE&~|__PSn&&esmyW$wll6`J-ZE zSj-NUjqWl$>zDQOZ9;vZw8|bbyzZ0-+dmS=f+vEmzn`Tvh3)kLL$zl{vId5Fhy^SL zs9-sSk24JCJO6HJ^p%z`^2t!9uf#Bs46VM2MKTbna{fG6b)#X}EA0lv3eBb-32pSd ziODUEz4iAI87gV6Y3-~J0$jvpAD0-OmPJp9E4a!~6LBo9jW+Mm6-#8vaT4sCJdNcO z<!0OdzfA8qMj0AAI!=rwM)zcPXhtD!;3mVemDx<Dk3~vEv}dP0m2<B6?(cM=g>YAE znf4N4t+ZGpQB>%4v1ZdLgDj6eA4?Rkk<}yL<?G#z&j`A=zaacj6g6lKieiQZ?>(C2 zuNHnCXVD^$ny`X%6eE>UZU%Utc1F3S?k5Caap4a%?*zX0u|NxFb#t@|u2GkV>uA$n OCCb-ui>zRdN9Hf@y(|v^ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$13.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$13.class new file mode 100644 index 0000000000000000000000000000000000000000..a5a152b16823b021d50f66974953d4ca29d457f9 GIT binary patch literal 1342 zcmb_cTTc@~6#izrbfqj(5%4ZpQQLA^z!#Gm6Kyb73z|T9pKcFjaJ$>=PSGFW&*8-f zH5#L6OicVy#xvUzG%D~wlii;A&h0yw*&jbYd;+k91qYVElPGR^Dp84+p|=^xMx;G@ zNq$$WC}dDmTXs4sY<WA1UU<v<s%jKAm9g1i_?c|c^x|y?wm{hgBtKA{guLxd=~L=S zapD<MimOq(BV(zfSRkvnR5HCF@VI_bJSrUZt_qdDC$LgHxv-@T0lOMCX%GTKE(Vaz zA%kHT4o(YXipF51u0mSvwi^_$%SJ!~qxHy_!G?^LIrl-^l+E-`j2$<h>vsIKwVbuq zEBvrARO;JuM|y$e(LQZ#ldu1QlxhwpnCP*G)8+;RUcyTgYUO+DG0~ciyT0zm)Lagz zO`#sbIL^DcfQwAIMS4}Xnete%^cy2~;+?DHa2Zz}ToK40u<hwwOkzslY`^C9sMZRj zn5r`2VB^KVW0h*0PW5(Bppf?d&;|)uv}h)Hkh<R}qgfIdUenTlz9KvQvF6sIZtT-T zWd=X_|En@@0`jsfhkg(xT;~eut*Gf>M&Qx0TYbcRbTNl{=9rMa@0*MIK*qdtlYeeT zS9!Gqb;azkTMI+JrGZQmN-)LSp5gC>$mh+<vt;q(;1uJ7EZyO=L2~7pH~e}B_jPJB zVz5*rFkpQ|p3g4(81xKA`JZQpv3`_SY-uxAnElSyyL0@ucW3u7{vPK9=JtiRxU|bw z8JOr3%m>zI*w!Ah))(ZguW+qzX{K^7T0axV#Wj9R_5!YBI^|Ws4VE&v$*2u0JHYZS UmMs)fO0hC#;jxrsPvgtKUz3S>3IG5A literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$14.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$14.class new file mode 100644 index 0000000000000000000000000000000000000000..4176d37259c47b2b14f834bd86dc1ae951ff9d0c GIT binary patch literal 1610 zcmb_dZBG+H5PtSrC@lxnid9r>)v9elPJGuA6KOD3i!p)pgWs0xQWmav&FvNSKllgy z876|p4}RBZjQ$>DoV|lU10<UClDpa6nVorN=b62)e?EN%a2<0A7z|H6zhy}!Rlr?q z)!{2%V2M}4?gr9xX)zFO-swoUWo=6F(puP6RXw*UwM~PTpYxU|%-&2O&XCg%h3&|W z64v@Ew}r)RZD>6V1;b#lCRO1Y!;^Zyf>#()o7^cV&kuypFdcgCMWOKvUs)Qk@T*?C z!+jojKJ6WxldcRNFuW=D4^n-dZ*t4wbaYFBPbXNZ{ST^AgCSn^nj#5?5fcL#)T1#I z2@ItW!!Z*{WEir=Ln7(jV|D3@XWjOS@R#|DBN#Gu&*n~p`%=$$7UQ}c42ylsoR~mo zI$Yqc=e}-xT}7qN9K_gTGRwef3^Bj!(zjS@q;L-T1ab_I`$ZBH=W&4{$!%LGMJO5C zeXMuskm~j@zoM&FFmVZ&358VEHDPavW|;2_oo~@Z31!l?L=dr*p;$c3?=F{@eIX)C zaz2fj1g<g^4tC%{dlMF@E+a|=d#%7=MF;YaougTnj(qQTGO`qKdt;GzLWU(k2VFiI zQ-pv2{?wA!^=<J;YR=}4zH(-ChY`;gT-)&!b=aZ^*1V>Pd$=E^7F{{>+$VzPdQ<C4 ztG1`E=v2&_>(b5OaHWJop1LhYH>HtI>*fQ}8Qpq%h2A7mq#vfyGFc6f%#^3LV3sH1 zTNo`*Pkuo9U1)opzNv5z*&AOlPV;=|IfE0((v0@vBu<4k8BE|bX&KJo>`nxqG&*LU z)ywZ;e#GQ9F22POO-93&ZCsh!#*~g1gN~Qgh>UMAjPDpTeqh}AiJb8(jGc{q?Zh^S mce9igqdx+){EhJhZjhf_G&gV?cSy#`>MklY(pfW-^!x<@M$Iz- literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$15.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$15.class new file mode 100644 index 0000000000000000000000000000000000000000..06288e2af7dc2350053b66e96a9d4ef69bc893a8 GIT binary patch literal 1137 zcmb_bU279T6g`uT-ELe>TD5*#TcfrqxGD%jMJS<SHBq4@@3WKJWWr`9?9R6RTY{qa z;1BRWDc(uri%{r828NkAGxyB>IQQ3|A3p&+$HNd6f%i5aB)ZUrlO{RLWNKYPC!|WJ ztzpp7SWYI|43Z;F$I0%$tF|?L?cekm{v-#~eD)$lRiH7FM>5GITYOAMq+Eyvfk*xu zQkk9<l#C9gqC_fhp6qqWlpX$`4CMj~Zm5gqQ-OD#d3m<Ytgp1u?zKR7V}7)oJ%MW5 z_9=qEr5GU=YY0$}5uqUvZ1@NDjyCk69H*2Y$TTB?<&IS{>&aaE^9-!|u-U!2dB^48 zxa(t1?oMh;cVPF2_E?~Gnt-!Q(Upd)nQw3QYPf-0A#Mu1omVMh+{PV&NGe4|!9EJO zIaXwvz4L@75ROmd6nK12D}ma+EptV0v@hf8*{$%zw*V)9*Qm@E+&f)zL)(w>!0Td3 z<-~2p4dm#=dG!m#dxq8D&SX(gf%~kdfae8>M#IaB`?bO|LXFXjynD%KkJMUQUlF&y z;qvF{n<bA;Z`iu>8_Rr-*~X(+aFthqYgn1F?95oA))&NE-*Npvk^oo?Sg>riG9`^> fB;J*~xW_aBR{6HVF0b)gWyP$c$vf|;|CYyJ&Q(Sh literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$16.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$16.class new file mode 100644 index 0000000000000000000000000000000000000000..32494f0eb265a861f942dff0c72b8e144f0a743d GIT binary patch literal 1061 zcmb_b+m6#P5It^6LsKseWw~FLOF>InVc>xWZZFj$F5LwI>bsk|tyigC#Ytg*hX;5@ z+7*ZgK7fxxjN2ksNJt<xlH-~2nUnFH$@d>$zX7;|YavPu&uumo+G&?dBL=DL*<7f1 zDk*Yp4Fz*GmXnD#LowCrt=Rl^)V8LtJ*G?HmvX3@x9^51GsHV`Dn%+O<3(>rC3%Pn zL*sY!Rbh<mrHY}FkF;yvVtCeBRu%WDfT>KI#^!pU6X`2t*qHIFB-InAgc=V-V#i}^ z#0<78why3*q4Gc*oj+pOU0+^d|5L*CE<?F(`>G0tI!B1Z-a5)rMHC^xF^(Em8G>~W zt#`Ch+r_x2vN!Y2Haa$uX;)_2`-@=Nx0_*WX?G&Ysaru-m<VTaKEyeOC(BZj;{rHC zRVImYjy}Z@y|zV`sK?q5&)VNd@unX(YRjfcQtN1Tw^Tl|eU2+=GOWx+Z;xn1Ri8o3 zMgGU>@crgbjZs-UmCh-Li=<3I>kvwD?4<(Yh8K$dvJ$NtIGwJL^^p94_Im5aK900D z_7S%}qw#45JWlUumOvK`-s1%MK9S%!iBq&QoW|;c>K-Be8E@?o(;nh4IP(Wj@By{p e;{hJN;0drsnI$Ux676M@?lP{D6%nK7q~|AN^(WQ< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$2.class new file mode 100644 index 0000000000000000000000000000000000000000..b179097172de0c05972515dce640f8f70ae9d9db GIT binary patch literal 1011 zcmb_b-)j>=5dJ1fd+B+#v1<Ko)dXoPcoGnViYRA9C6R)X_s!jyu3m1#?IzI&{htIy z@xed9KT4cU<BM3Ia&WgZ-_Crq`_0_XU*CTKXrmdRLU?Y<VXUpTP8IR%Tn&ti`5mVd zr%fTC<B=MVbuo;mnrCt6&sJiJO#7I=zz1r`t#*JKq3QWJ&Gp!FY-d6?<-*yxXC{^( zWoqoWB&@naZCiJwe0N#(_l5PoF0^|<=<O_zcDGNcB_`uF5Kcr`!D@&q)*}QsNvQ7l zfQ_y$_{C&2;PRCk<V@J?npEX|Rch}qz?#1{p}Vxxwc2v+#>i{?*i58QlI!#>;pUM5 z$MvD(d$PaV53z;w0nQPgE~^a@E}%}Rt2AY6TXzX0YBc9J{{L|Z;Y%|qQ+}eofZNB9 z+U+-Lszmfok><wAZ1&h4nk>RKTqmrjCCk{#fV$G;|I}ipvmwh+CT27i0>`2SA$nF6 zTqe1)maT9}bLB^&M#J}9tctt=>VmI{bx(YcgnPHX$mc7fPxF`!kIi=oEA$=>@gvFc z=qYT<N;r)(3zmnndY1a$XN2Ey_Ad_lfPg;EIkt}C795g+i?}4&Ra}<*3a;R)tTpNA NHg1R&%AT((&u_AW8R7r{ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ed33262f455f528a05a3f2000bc3ca788c96c68d GIT binary patch literal 1566 zcmb_cT~E|N6g{(BSSbZoaMi^RP*+{bM-?6+zHA_97BE71AKGCV)6Q(#?&5FpMPKwq zUrbnyJ{X_<QN}yFKnNe9CN^pB?VUU4-g|nczyJLB31A-c1>_iB=(yp@L?$U$-fqZu zbn1yW!f&NgD+;C};?1U14X-W5zPEg|RMRSuCTE+%FL^^$77DN!CJmnOL)lD(*ATm& zucL^oAn|HFhoL{+lS$<X)vo`q;)@LBHV-RlEW~CSxBRpfi(okvkx(haM)pFH4n*iB zG_^{l?`@q2NYw^SH6`}fc_bJ{>#up6dm$&9s64TCl%m6+m(sr^l}w*8{HkVe<`T*m zvm<31>+BR~BU9T9R*gs+07KD1ANq|q>Y#ut#=GWV0Jib2I~as*BafR79F!UIRkMAh zE|pksMLQzi;yYoNKkf5yo5#|;9|kQW6NY;BAupk;vOr&@&=a??sliDH_e@(BX+;m> z0Uj1mVOYzo$}Frpc!bAPHxX%138m@<thQ938SG8nihZ#n4KWiJpSL+9IU;je`Jqlo za%&>p(?J2V46B(ZxP&qX9_XOjg3kI1X<5V!ul_;6SqNG*nsA;gCE{AhlSCw#q>q!Q zpOjTB8i4`DQ6sOeC2@5vNy}u=?O=%Vhsj$-j`D$Vce;ZSccz1@?raBRZrSRf<bK1A zFSMG&I6ZB$pnWCw7PrWA$fupSjXT}=U6c<|7s#5mKKCmoP64oY^wWEP0-*00fTVQ@ zutcQ{z_5Ej4IN<YJMQOj8tDUu*vAt{!^cR~3z16aB7GvH&*vcJF-2YE;9{Drg&EA@ MDS75BnEvSc3&b?59RL6T literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$4.class new file mode 100644 index 0000000000000000000000000000000000000000..be0d3853ef2092feaac41bb2189b7e18adf06284 GIT binary patch literal 1245 zcmb_c+iuf95IviOx-o{j;SPn;Vju(wBUB-zAOwnn0HqYsD(@S6NVam;mAx+f3txf6 zO*|l8xqK61wj=^I4^YXLR=az4=IqS)%zpd%=`(;^Xga6}JV~=*sB)DXslykE9Hb_s zR}>XSrJ6xQW4W`V^f262^fK&Dk2<N2m9^<J{7eohSaVPl@VDiz3=_!?8-s0%jDtCW z#vk-~p|u<&Brs=2Di3aQ485{~Xfx|wrIooSu-+_>_F7+{)=6WkL*R%92lFnfSnyDX zFHmh-gN2^b^t2ccDBJp-VWXEuGU>}q+5H5p*|Y_Er9~I4aoW|a&@N8ljDynxkIE{j zhqE{*FfXHs@;taL@Vd;h{(lX|T>K==S&iDLDBQ}3HceJUrpPGnCNw5(+78YiMA7>= zXSHn$y6oX1Rs@!a^*(FzAhJy$uyKI0{PW(nm6N-f7Fk3OmF<<~*_)@0cf<A;tFNo0 zB+a=~*U601*uxboO@AbHoKTm8pN8r^)|#?TBJ-SbPL9RH;}C@JTVeC#P~lOB%jjWV z-Qm4O+}8DX@LC^m^v#~lqQ&-3*js!>gZCc$So9c<^DJ-z{)FW|TiUZm>n)S;_=uBV pu=E}m_OXfYSQJ10Vrxv;s#s<J3N9hwxyJwIGOqH<#%Y=P`vnp(bb0^) literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$5.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$5.class new file mode 100644 index 0000000000000000000000000000000000000000..5b23ab422c3871346b2d81c9dce1981eb34d7cd7 GIT binary patch literal 2058 zcmb_dTTc@~6#k~I6v`^KBH|S<RcWg%qTH-8Q7949su9BbbUT*8?QF9b<PZ1*eD=k^ zVB&@NV0`um7&QJAV?47hshTwbvzttI&)J#pobSw;Z$AJ0@Daci%4sAR?mKSNl%Di_ zuFNMkuRFdewuBY<(oy8}MT@uFQZ>y@DV~{?-CqliYDhh2jogoTQ{<=9NHJtL_$D`P zP75B^H-zP<(Z`VMc^?N#@wzP-`uuh2<tHhJYFtT_3H6p#(!b468;=jRu*Q&Da2jF& z3<nLQ(VsyQLk0$rWk`<e2}4z>#Dkz!7w&3@VXo>}++O3Z)OOdI(zF?>v1ON^CfZ3i zP#GM<@iaym?!{G511E5jp`Tlp@VxvC!^=3!y7wBisQ9+&Q8y}ITIQ-N#ES0*mLIsH zQL#l!D4#m|G{e%Kx&MW^qPv~?+UK;7t}f=7fwMT*qd&{A6C?fqX8&iV<-&e}Hl-JE z+YDhAC2zXCRn~kj7|7#dkMA7A^BDO?=SebRwgTIiZBh|)DU_g^wzaBM=&$2aa+gs^ zW1L|&YIpYlVW5Z-!=Td^s!N$+GMb!*6Jg*^hwPT9u&j%8)xZSIUXkV*UPR;UYNfXi z87;@Lms*X6Jz<mlipKA|%&-^-K4~DKT2E`d9g12SHyG|l?M!3|I#rEmLWazW6S$UG zlKO%e`}b`#p)VAY+={Yn$D`}1Cj51$VPIbCadw@nh8;G~9ZO$Q492peL%m>g&l4V< zYEn!Z2f(sft>$ziCTI*GL*7C9nj>3#GR4wc7{&KE^g5h#So^|1w3>ZEj%<V0XzvjW z)0^QavR#y|E=sZZhCpa+W8@P~ZR1R}W1TO(!==P43~IBqjVn4z5;{r_DFWL;j(sH! z`i27g9!47pqZhl;au~%Vu2H-xTGJ2qLm!mugfUHa0yCJUcZ&LU4masb^V8YV^9u<u Bj`IKj literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$6.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$6.class new file mode 100644 index 0000000000000000000000000000000000000000..3205f5b64f61604736396b887be34c30acf03b22 GIT binary patch literal 981 zcmb_bU2oGc6g^I}X3H{Kx-mXS3+hAnAq+h1r3eYCA&SC;w5iXysn@wm?J7>j_*pz4 zBp&zy{3yhA+G#>)Z;fR8ejFeBp6mSn^Ya&gmv|b$WB6dQF;`aETxfolilNE5yp&0i zE2Alx%c+>nlpga7CBN{at5nbEk#d*;g+Gb0Y##>j8JdnyCaIcP$tPzbkz6DW$KR9- zLp48Fw*8!rj+b?ImsnpZt@76lpF7K=jVIzl@KjLsCwWF9bo;vl2ES)Uat#dY5mrzQ zQNc!p0Jj*nJ2&j9#Y)TLVmg%BsTih`p%I%zqyv#D=P!c36Ne#QS`F<(5@)?Fw9#Lu zrm&=Y<NquE19`!~`V5t<&@^{k#o>u5vP8a9?&8gxAHg#x7(?wyC#kU{*hiV4n^Axr zhWE?rc7!Hc3>#MF^EdTYWTaVh-uSDxS18`UPIp}uQD1AB^-^K2v}jQSEA%I@dfj!A zERRNjRf?~Xbxc{G)@X14JHow#ogaw4m8crcVToo~@g(Zxw@R)Ex6vSvc3~4+B__fh xY*UuuF77S3_X)w=xF)Q+fHx`0qIq&bR>6IOdU$|`wEB32$9O_kNGL}_-(NKC3~T@Z literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$7.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$7.class new file mode 100644 index 0000000000000000000000000000000000000000..26fb1e0d34e44b0582c859c6edca05a510f9565f GIT binary patch literal 1683 zcmb_c-A)rh6#k|ZD$63ZC@P9YE!q}j!5c1WOrT<{X$c9WUU=iMot7cn8M3nl@l|{Z z6Mu*oK7bEpJhN>>upy~QH`)0;fAgJlzTba-{sQnEYbhic-s-UBNh3|fmDddTfsQ=! zQTUxmYDI^UX!GM^saoEN6sO*H|EjE2Lt2?S9q;m%$Ze#MWXM{3!Vl!J5#CXg`@-YC zmGd^^iD4o-lqR=EuB)T+T_US5q>|A~h7bACnXMl26Yd3^UcVQG1VX7&s52zXx*;aP zFy&$#6As2O?IMNi40HJ_bY`kjiJeaSK!p4JAP@|hs`hzM=b^Ow-eJ;$!%!XB8*&>2 z&Qy*ot<KuIV+i-mV2GDQ))`oZVJz$@8uNv^gL&Lf;U2@AQDw}<0v<3-a^Dxm<kl&y z&m&A+VR-!7l*{0vuJ>%o*SaPDS_YzKuS*UV@hF9d4DW_UpdopnTgLNsyG`Xk*g4zO zKswy&$e<xY7mtx+STcwDbVr=lM0BVdgF3Hbql~5V?}vY4KN9Ncz<5m=L?ZNT-_iqV zxf|*eNg<Smw>T7N|B(cX5mya!K|Ow-U%VPuL@!qXQtoO}hUW3a#Z%-N7ASo}HTHFt zn`l$@U=%%30=ZjheU@s8W}KurfWAH3=gyw)gubw4K*Tnfj6U_PTAE;(*;am_4ben5 zSQpQ*$}nw2)aAY{9#U^-FMIDuuX1r+vVPr)QX(t|+!$e~@~8`mu~|B8*@jjL`ct?@ z=aaPBq1z<QZgKe=oZ`yD54c}qsTmrbSejuxVUVW%Vr<LB4P<CXTA0PnSjNRI%+W2w zZQSYE-i-IaZ1F1`W`}d!JxBICmi}>(I724!DR$wKGO6@jjG;ig1d3RuIZ0_+fk!Kc Jq^ul$e*v!e3ZDP~ literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$8.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$8.class new file mode 100644 index 0000000000000000000000000000000000000000..892a174f65961c710f7b1c2d7fbac042e5d7b370 GIT binary patch literal 1597 zcmb_c-A)rh6#k|ZDrFI<ii%=U3$_JW@QS3y2(@ZWOGqH~)?s%jL$)(yXA64cl|F?} zVd4+r!Uyo7jAyoO2sS2=bd%lrIe&Y;bI$ks&*?7!Pq30gg5ix0o31p{L|nOh0pHb; zE8YvQ9Z9X|G7>F*cqmoVJ(A+st@K1?t$b;98g#wIn<BTCLXshC{RuCSheo&ud)yN) z_pF|~9xn_d(Y`df6$)J&RO}LYeJYiVo-w@356*4vfFE%;;FSG#6cPxfYN5f9ENfqk zf?>?TFh<fC!nlJJt};yL|6?;zlS*v1Te~9M;k$ug$kepQg9Z<!J$EmY7957!z;ei~ z5jbNxuC)5l(rrVyXZnBfoXRQ#t1=9QZAIUFp^?T6?xt{u;q{;@=3o~07)H7031f1r z^jlvBSh&K)@oP~ngR{Qgwk==pwERmMh`JS*(wM`86z(&;y)Xj4<biG)*VC;QwSWKQ zRA_*7xY3q@FG2?okz-ge`}%lO9KRAuggodsdJ%hNIK2c~7fSIGklBp5^354hcs(|7 z>s%2TY>CiPicrx`C`2U?E!vhlW(4L8792c6o?(`d7RukzHEyDH<#!SmT~&tpPMSSJ zX^OoV&p3L|pB>5cwr+=>uoWW?>W8hzQp<Lt873;q3$&q$u8U}2`wkvsnPJ?Bs6$g5 zJftzqo{!#^ZuLxDvT>cNqC%AeZj3P0Bs4HYu55DB5(DiL^rmoy?ni02Nzx>(PI2)& z(#56OpK!j$S`+k5$Jz|TiI141^IYu9!4xudA}d_O^;pNj4NQ}i;U;c%eLp7&BdtvF y8@Z<U1h-F+{ek&^A|yUxD)Bjv;B+jy5r$A8`vi(uq%}!ZT7pZvG-+AS^!x?&ap~3o literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$9.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$9.class new file mode 100644 index 0000000000000000000000000000000000000000..4b57a4a4d2b1ae3e3f5bf6f849e8cd0659d1a52e GIT binary patch literal 1094 zcmb_bO>fgc5Pj>ob>q4u1Sp>+1q@09!juD26@&y)5kYQMsVHYQ&Nki3*^Rt*fuFz$ z{t6NZ#DO2ck3!5ksSu#va`4XV%-c7+^Tt1aeg6UAA?|o^7+&gZ6iFjZ&Q)}f@`27H z@m3^7F14ayF2;N^k!lnjOYtV!K1p@88cK`lQ+SV$M7ZU_WoTMHk)(2BM09k(6A|&m z;-aUeVOY!$r3oKU>3CkXJH+}}Dw#iFc-@*GZG6O!d6aT`{eGTN6FR+(K7-rULs138 za)1Ra`lw(ffQK^-tF2Sc)MBZ`ZZRH+>=hrRf}s)Xgr|L;NxPo~UE3Uncy4b9x2QSG zAy-<x8|%VQ-y8p5@h`|G1M4wVvO>|?+UWbZf@>bGGQ60VVgc50ouSH;L>LopQq7$? z3TIXF_jQpa;<>cVZk|54_pQhbwQZH8+K|XQB0to_0Jjh_tQe6`C-)i8NSWsJmM0Tl z$f)-x-LZ9po>C&~rra1|uufxAq5qB5>vmSibLjK1MDZ$lyOedw2JO3F;J5FseMRu8 zMAc~ZOEklR^B#5Dua{f_&Z0p(I)!sMUt$7Wz$#@KF5=RR`w>}2sHOI2_}_5(A71AJ gJm+J{8%%LC-U^y@%AsmE$hxHdP248WpYf6V8!*E$2mk;8 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$1.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7297915cba93024a59ba8dc6767de659c816e00a GIT binary patch literal 1607 zcmcIkU2hUm5IvWr-4?ekqT;tyMfs?9#YAI*F(HIT6KYIqcrwPz?v&nU*(JLR_?vt) z@uTs<AK;HN&RrnUiar6!a_^m;Ju`P^&iV24+jjsDVVg(^ybZ#hts)i0(zg#i*$rZw z-jg$oRp7HRroJ2ul;5*QipF+p_Np29uF^goHouZRDmGlV>B%VCCx6%sNyb4~teHp) zlynSoJT-{Oj>a5dM1CCE2jr2XF&eHM#1smw#z!hD);O*9GV`i)q^HVP@iPHgUT&yL zM<Cq{Tv~^~84D{|&A`Bh1rwVBMp-*-wUtjVhy5;vuVvRGfm}Oqq}P$5(&wo$t;-|u zZmAg;Yh0eqv2uG9PdY@dKy^~4|8=pYyIQYwGRWhSiHibnmf1uLmvKd4O*#%mQSpJm zhh?{NVRf%(a1A$1To-u0s2b^d6a@N<D?+`JTzJ;=<3s6?EfdDtjb!0_+{A4Yw*(5m zlYEY=g<>-A;m{WlJmIB3z~{-rWS|5x2f;9OXisTk6#gwiyT@`QnM^I;@q&moYoFqy zz_qZ0dyL{}Q6eo*0*$}Nc{1^l&B_*sfp_ZiI=`8RhG33ZFMOZEMDvJQd2WsXVw*{C zu-uAlRx_V>DSk|>v3;F)Px!1Ynd;7G{`(5+W8$-=ZOI#f6{ChMpDq4IThAiLD+k2+ zDaszN8fCNk37HdIIKkB~*gl11Ji><YI6=x!yr)R~9q!;RV;CqgN(yCEcug~ptGLg* P9NY3dvAew2Iq>fnp7`%G literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$2.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2acd49e09163867e2e0fed248bc96cf94b40cd3b GIT binary patch literal 1618 zcmcIk+iuf95Iq~GbsO9?1Soe}z>p?|y7UPt2#BIoAf*VYC{GBnv8U-)t{vH%mT%$> ziA%);AHYW;W}QYr2|Oi{oZTId&&<xuIp2SL{RUtY8#ZzRZ{noqsZ^y}M&52HyRr7@ z9r**T;)so!4rITtqMmoC=*Vl0UNz$=P{yaj=9jWZZX*bqp-j_liU!Suq>dAJ(?(vP zVq%aVs(wmddc*+^DblI8Lm~MFqY=oyrbJ*?@2S*%z-hIonOB`7JyMa<j|JrFbVF4; z0{Lbf&^!drIGDj~0Tvb<*eD8EtHxomts;6cIOtOHN_ImMD7Rx@h8>wGb3QTVO?d>~ zPBmk9lgm>)QbCXOutO9G)P`mHUl&`ZtMzK9fF)eAaZ%v)G@Iz)GOh^BN#Cb5bvFdw zPrH>9t9!kGYq(+Ky1=tZ)yTmzR({okNpvu|dep1g-AC=;-<3XjG9$0o$QHiREx0yr z3oQT6_c5*x?qs8%3?c!+!(RCVe4IiIXG@^46Au!fwv^$>^1sz+eP13*=2a{5!#HL6 z+9tgh2M+GxKBM?XpU5bcK;!Sp9u9x%vB>Ep4o_X)<Tvs#5KI^6c@$BS$saL6&yCSS ztT6vAR$fsm84=)JjvpIyY@g@dLp~czp|<vk|GvQakohbcTlPj^#;T*lXNSKr*0U({ z$^miy1Z9g?gHo)0MBx}0j&b!fZk|H2o?yXxnjtL>y-$$%JKRNuF)XYyN)A=jc+E4V T*RamJGTWATcs<^m9QgMWrFrr? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$3.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8671737a507efb542df523c8b5e7bda096623e87 GIT binary patch literal 1618 zcmcIk+iuf95Iq~Gb!*%-6exFEAkZX*y0kAyK}b=QilP)D73B#bHuf~#%CRG_)ACKc zA#tgA-~;$5#H`Z_D1oQMl0Cb#<1@2!Ip2SL{RUtI>o#%%Z{nouDXnxWBX2L1ojCRA z9r=S)#Str0>dAgzMP2Vu(UI3YJ!-^Jpo~qM)h}h2O7$RUgi`AriUy5@WEv->O&fWE z72|{aQ1vx=`iLDIQj}_MmqPLlMm>=IloEmIbYJPxBMz%I$+&9l>4}O|`cy!cC+n)x z7RWc^fMy|Z&czg_9axxiVWS{mm5srCOGWfz(Cbk0N_IjLSZKw*4BIkMW`Cm0oAe00 zooK|RO-@hYNCjO=hZUkgpgK&`|EkzDRjpOp4i<66#$|!mlPsc(tGFgGBYmH=F0Bi^ zpL8k5miL;28@OfTrogjt<;cYnmVf1AL!dXleAFu0-A~JZuqS=;WH!8BJrjJTJ1E(> zE3owYypJ$-aW8BAWDp4mZuXTwz(+B}u(t%9-FT4rw5809Ed85})(+&M<hg1_ei&<} zuN_MF<G{rOJY*E#@DmxP5~%;(*~8}79+O;}#NnCCoA^#G3<QshyB$T8Wb{Wopch7P zA(namEoNR(EE*EvRgPa9GpwKG)nncpjZ<Cy#Gfy4KV&xZMwgukOj%77dGGQ+MtdF$ zEZHG0o}g^8G$@7YM>xm0bd2ktar+FCwT(IJd4{w&v_3)N|8O5GjA5b7C^=M6Wtr!Z TUd0-(7Ff5)&Fk^n#K6x_y^``< literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$4.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator$4.class new file mode 100644 index 0000000000000000000000000000000000000000..3b7c0b26439b881851d328c6b8a301b39be1d02e GIT binary patch literal 1618 zcmcIk+iuf95Iq~GbsO9?1Soe}z>rI!F3<<0AfzZt1yWj7YRMBqZ0u>em1{?~lkiQv zA#tgA-~;$5#H`Z@D1oQOl0Cb#<1@2!Ip2SL{RZGM)=gvt-h@%tQL%~>894jC?1YI! z@5t>ZDhybe(2?x*RM2$>iiS>eeAEa7PidPrt9N9V?7HVQd>O}E6!aSr$s~;I4HH>` zlJ-HauX-^#@sJ%1C`e*wmwa+HM%|OWgd&02<UqytBMz%I&A4jp>6r>t@?1ccr|YWH z7RWY2kLDq8&cY04b1<-A!9-rbC~JeomI`RQf7GF9Pj-9~D7HdZ`fV90y+2WAb$SHe zPBmhCgVU2ADz8h)s6ylkR7Yw0Ulp6Ws<lcxhb3GwaarK?G>d5ADy|94N!O(~w$}yT zPrH<7miJl?H*m|uO@S9@l_LwwSoxKYCjv)jmycQ{z5BTQhx^hcN2bH;)KkG%x&zz9 zU4iA_=Y4{yg?nl1NBuxRaI=^G0H4GVquvt8?S}oxrA?)0WclB0w00;5lIN-!xPBNj zeQi;45PB9K;31>9nx9BBl|cRP&K@;?>@dkCQRtt#ypC^dp&@u&td~JRQA&Tr1A1Ws z7h;9y-(cnyg@PslUS;?-F~|COUOnZ#*5s<IpZN0y)`!$)QR~tZff-{51>RfykJg?? zktI9C#S@fGmKr5r{fOK#E*<0gXWTx8Wb9$Vc$Fe8jjT_Q_&?l7i7^b686|@Xsw}fS U(yLhGRgrZ|+`JC2bqxIc1lH8@e*gdg literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage$AddClassMenuCreator.class new file mode 100644 index 0000000000000000000000000000000000000000..8b02f871225d68bb4321cf7e61d3fc12bbfde791 GIT binary patch literal 3512 zcmcIm-BTM?6#w1al!fi`A(UE$7K))w0%QxtYDq;gKnvxog0Ud2EXgG-&DUfXsIR{G z;+xZd!Y7@v(2*G*eejQRJZCq2lmuj)G@0GId(XMQJ>Td2{m&nN0vJM0LqK4)P|BFL zV>_;uH#f4@dcif-OO@Jo?LwY5U6r$nMLVA{cWkw5P8^aFg?!p(o+NEASQ!->OQ#cA z%W-B^emhZ8mRl%k2nw`pSv!`QwFqK<eM_ZW4Rr#&{9TpG+C@j1TN_qNnO2JN%&8Lq z0y^*RDBcseF>~^iv+J6>b~>Y6$7Fh3pw8X2ozNYDX^*oOdNJw)J8!$A0<+=T!A6n- z!9*dg8X(YYpaHrLiT4a#Myr4fGeh%?omX?)xph@qvevUopmnB@va(65Wb=D@GstQS zJg=E_)tpI&(9*V3EI6LX9~jV3ucHIkHFOGep640^@3T^ki>{S=F>4jea%<!}-?L-B zWe)@5q-!bC+)^PMkDTv(oy>ThZyy;5p_?Kn#X(q(oVub_Qh8V4=9wsm-(i))?1hLx z=mKITHS`H|pQrv5Ws#031{gLb&~rAd7sykQWIZT~IXPqHAddOT89PeOa$d$bFJout zWh|%M%|g18L8lrptl_S}2+Mw<T*)cNp<L&D^B)X+jC%qN<j6(0L}fzYR(R$(<NZzY zUBwpL<5L6oF+y?WD0fM{B=@veJ4_aSK+%0+DgQ^M3JvOrW0d{#xqwx>Jg=HbktAzB zX5dRC1g===^rFgAWu)>qLzP(NRY_o=GDy@8#js;mFvmGwCIp_<B3?55c`I8PFd81d zYcCAxn8av3rUe#ip^MkR#%(K8vZ&q7yle6A>UhlJ&r_?YiTK;=lZ9+rm2^D8qK2;o z9@Q!f3@qVmfqE;IqFfG98OYTx>Q5ExxBB~-7w2&u-(Xq8Q-Lm4>9F!wVKuOVZ>h%E z&P1M@UfS!9E1W{l3_QnoRO_jL91(-zl?as#>s@<$SjQS@DhTGh;Us8Nm8aT%W`p6< z&Ygf7>1btczctDHN3T0}8#RevYUj4<#j0jg1u3pC7Pd<%HEHuK(^Xkx4yVZ&_X`1I zDo@488!HtJIBivCOmtJvmvmi1faY47Nr09X9;fK7j;_lvh}uX`!^FWndbIB~nxgw? z`HkKJXrp@_@j!Oq3OzGFaiJYoX%#%Xlo6(BWm<FecU=36fN0snhYTY<m?l~wyP?S* zG|A8jxaKn44Ubne5l)vUJ4-f4$5^t~=pJrHqka46d5vp~{wwYJ68g}$5tLyx%7_Pj z)jw5+rt|2<EkX|P2t+Gki*^L*54<`+$1)+`o;^TxxnJ(1e{P`Fe1pL~d@^u=_%d1K zvpsxql01Gyo@DZ)Q{<^5@?$2?o+8hc$)rfr8!YT0xrbHy)EYCd6LbHudZTD2%MGAG znrM@E&?yHImiI9vM-Z2BJd_DMk>gmA6WEZmD9Sl}FX!>2T)@xrsb`L;ujr9EUX{(! zfS-_}z+glEfHagBFkRU2O@w=%$;i;+SROwhR!^8YaD*Em+<J(XdStL!#^|M$L*o)F ndm6@%EB0^zws+sc3tFQTwSsDUmY(Bu@o&;!sFV1=HGlaR*MbGi literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/ExecutionConditionViewPage.class new file mode 100644 index 0000000000000000000000000000000000000000..a1407344dbb93994ac709bd9f87692cc25a7be2a GIT binary patch literal 32052 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⪚_AW+Q%b!(~i+Wh=sIWqQSWZY=qF3%cd1MwNZIYDQ zOqam%kj1o!qyqBxR-CI3S)V@Ch-^(u9DcWoI;vG6S1i}7k`BK)Zr0QJN(hO}C<DmN zClz<-AQ}}=?P|SGt;@I&Vx45k1Yq;S@{*&@QXA~Sze*!ljYtPgz|k2Q?8^=vNTcM} zR~#BG!+uqr=Tlz;iwVmowiLV)n*hd9=SyZuH151$TTsTh(4j*x8U*Saj=D$$YA}@C z(()?EVp38sanz;q%2~8z;R%%$OOr1ybJXSXV%VbciWAEhRIXaGaAE50m5#c~c5~l~ z(v+#Lan!Z)B2ZCXURP&F11#4$G{$1~Er$-JQ8+h)j6(~u@`v?-&?X{IT?~}v_Ng0y zZ6j{kV9!q2`4)$}#O*X!Z4zmZU0t;i=|pbCc;R<A>Q;4|Pa*X(Ih%5UL3a=1yVr2N zVMsuITixxbEpq6|XVX*AvQC3N=w!kV95&8sPIfu&>^${7zQ(8S#lodhiQ;X;afIkt zhMF6Ufr^Ku>vTDyk$Mf)ou?j9TYc(5Y@v8LDZQPeexSBt#l>nzqs<uE9>_zOT#^yX zq;Ymtdh6Lf)zP0ydb(fju=fb|*{ws66;RvNL*npuWA|kb)Xr{9iPvPhmrAM-KB`CT z*@ONuSJ2Vsn2`iiMmtAi0rjx>1np|4qaIf{D?J#T;d$R9+D%_MPfKu#Up>`NULy!C zn#t9_0^c)^dRESj3VgyZOT(>85f}Oua)yKKSuJ!jXSC4zM~?cj`iV{FWt_(9C7qW% zVUp3@p!G9wwVeYRW0lO)8fg-!UU1YeWFBnC;vjZh9G%9D0etGk{^aJP{OZ^JbRGqV z`m^3~52#<Nhy3a{{S*s<T<`(x4wg^-u0M$}!>{0doeGt-&!XMy7Xbq5w?d8Aa9*!J z=CRapFTeT}lKK7Tj?VO}KlRh1#pTc&j!Vd);DCBvDDZZ_QotSCr~bUh3BR6MeaRon zS;KLYC;1i9pmK$NpE)AlzS??$0rigH|9<}+iibSFCAOpc6tbgxn04J11t$9ya;WmL zlzpavBq9Rp1N9HFcONsY`k&f6u^%{=-!B&r1agl7@vHy9a##&6uf$CF)u*rzDXnhm zq1Jus^L|~ADSn02t_b-)uLrJF;z(UUeWw25*Q%H6%!xB4E%sc|Zf^+MLA}J%IdGU= z!k8Hix%2?UbSZM#Zej<08ehZdM+Tl6&^~^}r}O%C)M<V_sGr0_K5r7x0X+m_p@%YE z_CFPiD&zSlVz+GjCX(F_no|XmWFgkW9Xgms`SpnYG6wGVTtv<KHS*4`C<!4fZy@pP z5v4@EPalYr9pL<A=$Ym{)`eWK1G<0;^YlUb5T8aK*<2}1N7#*lGa?1tjM2#0X5F4m z^e|yscr`YOqY)EzBbdQVW2Nt5y=+S*`q~f(L`7I=>uj_%I&DePgP_?6;&2Wc#t30g z`dx`M<TFq~w^48ndMb7c19mxts4`|r+T^?82fI-+KZ?{|Ku^?VK8+*sy?%7U4QU-+ zY)*MdP6JVP&ksfbW2~I}VJ!14D&e}R4&{-9bcB2_M{XRX0ot<<!W(^5MjA4WL=s%M z5oAD5#}>Dqu4g%Vwj@AC!r^vvY|YKf*M=f>NKi(6`j~!I8b=1Sq)ajIagHw6bFqhr zMH09Yn^sK4>3F7LP~~k3K9Z5<VSh^_L0q2R&zqD<q!!Xof_huXxU*$N7dZNOT?L+V z!!}v0G`jcbCAZ30pXlgGda_^FV7+Q8YnSEeg?h11FT%Ymue|nHHAgSebx7gGLQS&6 z91~F8?KvEI@Lp(fqu4ZH(um_(UVFMMUF0QTmUA3c$-G+Pyn_+Qyp|MqWdF9BE5+Vv zfUI=G2f)(6>Omu{^O|sTa~g6PyS{0tn00np70~(g$-Cm~1+i#*YfUhA2J)f$R3z8I zQ)b5pGP+XZvn_|yH}iB*wBc%KDDQgoI;(KjD)}>3dXB|u)|MtHi)`29T)L#eEDY4X zT1X`~pJeMW5^Odf!P-!P{BBdIv4@(KyBm_DN`3Oqel*KoYc^EC!J&Qre8VDpq$^KH zbgNHCGcI238VE<9sX+wu?JIn-2RGoW=E<=+&;Faec2!s<<F`4wUAEPveWe`YkVK)p zSnuewBs(hm^KjkGmq4%?t<QG!mnCQDi-p!8f3Q~Ce#Oz}CfY7+ZZvJB{%ejtFHxWP zx|ob{fuk?fUx$9T8D=@J<pIyVOMJ4Y%9ShOGMtC(`)xYAEl?xh<#1^VOe5wyXNjBW z>854Zw1vSMxF$tZxsEc_JDN?*``|x9;y_e6l4ke&C8d<E*?OA^-(M5Ma<xN;(Kzu* z<L-G*?2y>;bK1<e9lSfLF3FG;GT<cm*Qar$vLC(F=>fe--yj|!7-NIgxqaGI*=-`w zEAPEgCMjh2(38H&(KqW`#MEzyG>8Ymw7-{$JX>(Glb2eD4Aa%yWLO4qfd)oG>k})8 z4{_l>SA5(g9N6ne+|$`2P1#vL2waz#dUERLl+@3ush`ut&VAQWEh3_cUPnshy^bpL zR!(Qy-0xWQi5W8X>Ld#5d3YfOJ=~?2`w>uM1osBc|HYnS3QKIzf4v{Ev`m$WCM@pm zuCscWZ6?#z{Rq;Y5<c4=tPx393@1Yl|DSSjGHx-PAxGuCpDh(zk$`lv2w;~(%R~T^ zwNs?_VMnb>tDP#fk2z{-TJ1DXKO7Qi>+f|*cSEyzOV)*c%F!q36&_%w3%JiZI;>Ae zz*uKa(b=2cha~9(m(u!riIiojY|X(ES4D81)OaIuPd2~2=T;5&J>k}oqFnOPFqAl{ zjn5-1iMmXQuZWrwU$jKaVdnR6yvNrd&2M~6(UkZYqbc#pO;cje*p%2YHYGNsO^F<W zDX|M|O6<Uz68o>F9P5q;<BaF2m=hQC@%IQk-Hv$`%F3cnnov}{or;T!chJP`G*!wY zx6{m`qHQ#_i@+P(soZ_2kcS2C13ZfDR9)0TwGW!<7UORzkR^&y4!&zQklI0jbwIiu z$esmcHemX*0mzr>IQk0BqjPBqTJL88p*mWMCx9fMTLqX(c+i5Y{2-~1h@Eb#U$KKu z>Yy(TU%i7Gho3Hgnz@rA)x{lj=5qXLzmeYFN@sP^xkxmZpyK>4`i7#dbXgZ&jVsPu z>AEh0Q!p#1AZPe3=-)-RDJsa>O5g6H?<$&DkkduqN4b@Lu!Fj~=rQ~r8W<YbK~Hwk zvv?@!q94hC7zaB~vvLb^QS(ctF8VbF%I%`x-~bH<c}3B3dHiGQu|%HVQdCsZNpE-4 zyDK{Bud@ae3>f}C0O_E=6%6R6k5+*6<psGpo%C@B{adO&m8zK~sQDZ<MFj&o7+<O) zu$xf*3iw|{=Yi_ygW?zBld0dp(q9D1UJO<`5A1LWw&%Zzg}<C8q4g}fijJYHX)ekN zx`t}-k+>DKks9baIs+daT2J4?DA%LMjcC0YZ*Rn#o9GU@8MEF(JLy(>4lMK&`ZoO< zpB#IQ?xK(AZqB7GoJZd^t9ra$FLzZ(;e?&$9IWOf`W@%;0IY5WJ;y%w1BV)XcxoUA z0RMHgj`P@o2>qIl<Uu@`2JjHz<|qD)^L+T^pOUZfxJ-N(+G)I<Rs0Oi=;on9q~cB< zF00NX<e?;=_s{2o9XzUo4=px}gja{lE0o2{Q#33x!g?=YxDVoaKfY}GAP#G61>GJ5 zb$>t;QBJ}KzGhN~!EcP6ImxxN3|4T0sgTQf5<ZA7aBJe3_=$r!7Gy4=0hoelBS5~U zxQpQ$2{0WzeFx9Vy^{(obLaDM;D>yki@!T~-h+wS6HINjsja<%7P*KlaXG05_}1ek z7|D*klU}MV5ssSJ#V6r3ytXWbD$7yDs4yH=lEzRc&~U)m1xO#lhkqYIw(?QvkjEg7 zkAM(6A?8nkiJpcSKS}fHS*pc%v+C)2e9!bpbUOVQ!u=C4&QHNOFBoDKS)7x^+Q=t^ z1#r<C-}IG5R_Ik|7G4{&fjvq;rAFL5IfYMk7rP$B6pb|ulp9i149utQ;4h_tJ=m<t zuQ1t5Scl)3sjYSymYjMRH*yFAyQ?!4tAop$?i>-!AahIr_0}@oKtp66yE>73Q@>~B z+)24P_v(Am){3B=`V}a>KY(@q=$U##a_R{jOHQ3bY9y?H96ED3gIs0~1HYysuyNZB zDQ;M2*8MEA?kR3K+ti+8YQYVY6Hw=O^SL4m3oy#pYPL|mZ~$IjfNYp>KuuBla?b^| zh~5F+{tQ#~9v1(vSoZg^?C-&-eSl-1AJGK*2bTR~nug!A=--guPk`8e<wLZzmbGV@ z!%2k0me%+-u;vT->mY3d<=S6{{(~rI?4-|Vh>ySV2`0~xj|f|8s1ax^*7FTn=Pt&V zJBzG76|}k-2MyAmuYmGpQSMvl2C({dOgnjVP03EatQvTyTJx+NJSSSu8nA^<D;SVy zFNz#J#4dRI$WyY%z%4YcU|_O`zreqf!?Sz^zAnBw36nHHym#XlFU#QO*G+)R{Ad*G zS>4IEOIeOGrGo0gImA91$^&T(l;AiXgv*jcsGNsVE$7o>9zjcZB(?DVNP`?e=ksW~ zkPpJQD91qg9!lHr{3zNyhrTcHcvzt$=yjf8md2=Kdc$3sa(vR{E|>;<G@UNvyJ0L8 z49R-lg1Q`P!A##lT`t{CgALF6pzufXcTwjz3%8C2d_hwv$A=Nf$D4@00CV{8=;O<L zyct#ak$5wi0vT^?6SwP_FCaC&^&RM)1hR^|jFv;7k`-VjFnJf>lO#PJz6UPv;`@Xn z?uP-kH3{w*p5hLeV7@)EEbpe4;XtTpf}$S86X_5x#n;X!K~0t7L)}vhDXr#TkmT|O z`~wgM=WfB<+k}*cL@0$OLLy*mNdZMC_y2lBfIE`l_5%XbfxuBfU<MGF1q5aQfur{s zfgCx7XA#IMqXq|$jC!6EGPDaBHLdqhMophRl2O~E4>J0YE29skn8V8GagfoukkLxW z=zPfN@sQCf$Y?brrv@@w3mIJm8C?t+T?QGghm5X(jIM-?E`yBLKt?MeqpKjJr$I)8 z{~yU{j$9RWS-cD-Gz8@qZR1BDzz<O~1o=WGHyWfJ+rX73=AHaFY7nA8aamVsTTwSZ zu>z*-sqOq|Q3pTM&Cjjq<mWs1NA~GwczU6Oe<4pD{OfN1?TVsK{(T4kAzAaL)V$rn z?{xEfE2OrQ->>QB4~@sz!5?+<ziI`>+?+@FlNB1~@w2)Th+}5m#155H)T#V3#DGV5 z^9n7zUbiAglzQC?;7R3m9V$;4#^O3ff<JD?##@9A<S0$xGierYplUvkPU7>ai7%ut z!!};Y7tytR3H<<9<0UGxF4MN8mf5BTt0ADwNpy-DswBK@q8c?^<%?S+C+jWM=%4Vr zp}%NpDpJZ<BlFe%#a*fZtAR+VrbHqo{6VBtW~*!QbpEWIZgt>_qT+&_iJfY+Si^jE z2%L)!b!bsRZknex2Qdcm6_mqQQUDk02l3SqiEC&-zLxe!{V3iD@z_L1@by&6H_$Y` zk>>J!RKpKY9d9)l&arSNF<k2E(NQ$h#0m=P^Kdm*9R>`i(IILae&rx$8Kw>gy>g9~ zmAHWFOk5zR_FWoWjgiHTo8hWabp#`7Nx0UkNZck>V%(;A4;ESHNR_(IQ5v3O5qS`I zzzlZL2!04F*bTh8=rDd5qW>5j#XAiy*2|oc#ASxX#lVOdU>ueR8BG_wCxM25cT&+d zHR&0ulcGx@5~wcTs;0vl!`tsxM}uY6oE_@eEpY6%s>-`4fZ}+VWN0NdsZ*V}g$_VX z&D}K2bXX)EmY_pQTbZDSpMv#yhKBL8bO8Sle)i9368{{a{{l<$B31FP@h>C1=0W2m z7mZ;wU)8DEuCokh?K3L$siOu3J`pRYko9p9dR%xA2-RDJ7H1+f%s>oBsY5N>LQ}G0 zvwRB`SZszD+2-_8r&`gePR&H;PeA7_pz}7+`7@2@cWENO2M&9mj^)3>$o-v`@y8x? z>XYcq%S30qi_S=(gVdHq2O%u}1uCEuvFL=;&`GVsVy}dqmakUZJcL)eN+n028sV2t zgq$@=>Oj&F>I`TW8|SM@6HS=!4d+et#s2}Cp90O#fad40<6qEWpmCwX2?M35Olg{| za_~>bd_mJyF3naxnyUuViMX7(MCCzA45AjOiIggdB*}1!B?C<d4@gk1@Q;3sRn1sb z8-3-G`iu?%X+A+@t|UKi38Q|Fbw<3+^IW~!p(52qyj@KKg<`rxwV^!QEzgm%_|cr( z_<*8fJ*7jP3y<73wai{4jZ47rchP7RpzBB!$KOSRQPkW;KD~u<a_pez*me_ayMVO2 z8$qCv8_4am+4{t6V;K#DdPlneRS>h`(jQFehI&P){rX*W7>bK6NZ+&|U134GI(?9h zcHD!qj^&+g6IuYdOsrB|eIv4B1ZOHwjijM!e>y-NKx0$^O;Dq#RE?%7>L8kda<)2z zD%BWTqz<L!YAk&T`tWo-x2SP+mO7lis>UPFbp&0bCeSUYyB(Jh?^Q*#17)`=p<k(q z^m|oGe}pRfi<(3qs>$@ZDnX)c3g@Y*JRW7Cn#OXq?>Lkd>L|lL#^2?6F8k#1Om)4w z0US|D|5Z0aJy?Ht8x8w{!lcFDRhz*)Qnr5qG4fO?RPo99b0Ypfp_lh3^-_Nd>eux0 zt^xHGy}avfyidURtZqthw@Hv%XQe~koHF16QEloN%29I+IWim;xme<=!6_(Z0OK8W zsM|9f9<{*J-|vz$hw(98xBptq1o5Jg$N=QSlR)0#qn+y8lFd?grTAsIC?{17fNE)o zT1X?*;?z1JgiPd7N18|*M<pm%eMf!QT_;#0QQo-N=FYkavx>GW#f&q%6hbLD=ml<= zL>JYRm?Ty4-IQDMKq6ZD6U=xb^RXZ00-R;EzgkX*suj>u%b=l7@qkpC1gX^Ic(DBm zcgQ3GQ=t;fi?9wdHzuAOiKY3zy3fL>?}J8`S>{2D-jA$qx7xm<C|`BLg!?*GSM9`Z z^{`mKM?2JG6Z6%R#%XzaqG*qak^xlDNd{0oZy$bY9)4cbt$rz^{0gmeI@L?t)dkQ9 z7v!s#ZFjtfBbl#$Z{NSVU2Vksjrr;i$@j0z`#;+EZ*Etc@P1RidMo+<9eMv3`~JP{ zDu(y5eDzoNeL`t=s}H2zhp6sUA8l7>quJT{>YvGG37vYj!R6l;7t=^^`y`3ZXEMxx zWf)D{)j4Q!PQJz$Y2d*<Ee{E8D#K`<9OfMJoNI^a);>^D51f@#)U5*;P&*hPw;-oe z58kea6>ZbQ@^yY<Og+qwiAouBWMWMBd4D@*Nw+Ro(Wysu>CuWxCU)sVQ3(9WU+36g zY3*dHEY)dk_TnKa*?cf908cfLPlZUXHs+(;A9nCCn7oN90>vApsj8J`qC8feNyn)e zJfbtHTE$^w+hAkkv`U>r&FWl=sjt#GD8H&MqRZ4JP{NneO(<_w*FXtxq^;^YdKl$n z>Sp?}x`keZ)_6<ZO&{T2*{A9|^o9B^LrkHFzsEyxC2S<hQQ-B7YCF%ueXF^uljq}} zR5i*as*CH@LwpL#)wmzjj5{{x;TFpk>Q}r8w@+?VFY#?C?^ZAKJ-8<F0Ll*adwvp^ zF`iei@{8&Z{3<R?ysKX4kJTIaK*b-`5cMZDTD_?X)mv)1dK<Tj-!T$A&B|Rug4H}d zP9F}b#NB5-ULOJ7vA>$ACt!;~BglDK7itMySQjVN>MXPtt>_r1LEYY=OHA6`hDTPr zz7ON~fk!(!?tCnV;H(ZHPb{gYWUAJ`dphSPJ5SR`x}E0$Q1MU)V5>_{NwNS^jH2BC z2@Ux#GlKQw2PDu%93h)`Fp=`j3wNxWfuN}AW4rZqaP^Gp;+zgWv$$J}$FApe=wp#6 zW~d^dS^+P|{4D9v^NTw43HiFZn7eds4z?38GcCs7@yLIX`jq@|y9TMxsX*uA*vbH! zqzBRr9iW*g=jc2GpiMp<>jLPfqx4d}41gU@2kLsgT+ozVPZ!jOT~Jp7x|J*P^(meD zOI`XjMFP6jpPjm)Mr84V4&5l_Mz`GLmNAsYC8iV55|IrlY!*VBm|rO@Ost^?(@;H> z4%WkHydF-aI-jQN5rBR_s?___LVW<v!xVThS(zmDO1(xm0q%q8XuTFV2`1R7wU{7- zriByfh2ngDMwf0;bWCxV#!l><(Z1Vg)j{{*-AVXg7DlWYGN}^&>2)R(Y*V_aETLgV zy<rP2Mw4?go0$AivPtRa8>z^Q4>t|a*#C#2BfcRBpB9P|$$)|!?$GB0xNlhCMi01+ zjxfE*Y|aTx^1rd`?xb{42QLu<+ARc=TGDGM05S~IVcJihK_xnZC60o4tyHbg1OeM= zrCvvC^?Hixvni&}p>_IPx>%n_*Xr}>W_=ND(HGOb`cm4dFQ=dDs|~Sj`uBw-v0u;^ z>q~%4fS%Qt>TiPB!_fXR{L*w39e|!A0Pac}>HfMFP?<Voum_X>b1GpTdx#o2Vl1)} z`U-ueU8poMy(&XY^|uT#86K3r26<__D?J^hh^aC=E1qPLzRC2o;;E8oD1EKoh(4^Z zOK=MI5OU2JLnSEIn~=}w)Yo_D%_&Yb4wSx~w7!EJltc7Ap3#RUM<41EiS?~I;p3$# zlB-f<8bty>C0F0?8Ox(cFwZ#Rp?-ab{<e#)=uzu%Li{pFh3t-mZXgD_+?ln@#>_5Z zPnWy0cG;BK<qS`kyR&wQWp-)sblJkM_Q0i6e<wv2lj&3Wo-X%f?ee{hF8qY2%lAQ7 z%O75fP09qU#na_}{eatLJZLB^1<j9iLPj4|=jrpH-r92-D$eKv?no`n5A?Py)6m-) z*x=v0O7+>UJF-kOHFKI%JzYAp(ricOEMN0<c_?d_?u;&Mt)AtwN3wQ#G_%Vao>_Kg zV;Max6PJ*u%j5cqEF{xUW=x|8dHOu9Z_L)`nan;mqihw(b4HE)P(P3IQlwFSixU6A zt+C|?Zuyxl5u}>`U~X-Bv|D0tOa9|GZK)1)OZUB6<UVhA%U`->V!qei=ZB%Benj+t DjL3f5 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/DragTransfer.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/DragTransfer.class new file mode 100644 index 0000000000000000000000000000000000000000..7ba2b69cdfb92512a5f4e1334a775a14433c1370 GIT binary patch literal 853 zcmb_a%T5A85Ui0E1Q8YA7vsSLcyJOuYKV!C6TzrR;&E6S9J9=t*;(|nd>l+X_yK;D zv3Dg=6HGXGneMKgs;=$n_m9^%06SRAVM3r5+Md*rj+`>G8>n{ZB;AuAI~^JZ9re}i ztu{S5&~zs|rX!E6>NTx0QI~8Ep1|CV8YmekzI58YA>RosIZJfmZ0x((Qs+3JJ{iVO z>tpxphaC!J#QlxazHE*X+!M&|YolFFAXBNf1iVA06_CMn5jji=%+|G`M%-_cZK`%a z0_A$>tDvQ<PU<1(xoaH>9E|U8<UH8WYD8|NS%LG)`0``@ezlc{z(Ns|$O@Ex51p;_ z{<Lydss6JUfx<-?Tc1vJGUfG=Ge~x4J6RWOu<;BpBGVH0oFx@M86$blBuBw<a_a?! zM@}YC<TIOs4a{&}{JMY=X1U5^4)cs8<Xw(m<Y$z>$psbxn(%P>OJFhWpT`oGhXR`^ X9q^t|eqhee=2s~<Q4&~5zpZ`(IK$~` literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrag.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrag.class new file mode 100644 index 0000000000000000000000000000000000000000..216de04ecb6971c8c5585abb92fb482e4c031da2 GIT binary patch literal 3023 zcmb_eTT>Hf7=AtySO|+E9xA1^)&r-25f4~JR3w2$5<n8;p$EDoAFvoU>F$Esna*_j zFZ5n}<3-ykR(sLW8!!5cde!#%Hk%W~8K*j#Y`)$7-sgGV!}q@V>z_aV1aJzDh9-fT zg1r(k9n*0QE3%w7mI`h}-j~@8*DP3k=*o4YSTwDb$fhapMRHaylD4Hxx%NiZ-LPdY zmY3_&a-+7fq9G{Ixn^t{k-R~RxurFkbv3jIj3^qJ&6`C>M%I>%tc;K$Pb|Z7mZh!C zQ-uvXD-)C=Eolq1C`Pq7lGtfodgnwk-kvdmR@a9TI8?Xax##+_OH|z3a?!L*_maTz z{<^ItVcVbwG6KQLLQaMdz-}Gw=oAR_4`kXP(4|8|YY6*rK*N54!?j8)%<{flc2vg) zI4ID*BHg%(ua%Vo$NC5AbTl#?Q*<BdXhTR~cfz#f?8f?%wA02?o)BG$Le|J<4BJ%q z{==ZVYB~Z*5BxnPnc-97%l^>iH;MQ2K?6O<^iDD6&Z^7_^w&qd>}|CMVw<d}F%|e` zsg_Js!}x5spftsll5W&+jaKvth{J6dKv=_|z|ls@*@mHG2*XTxjsPmE+pC%02!^}U zbTUTX%%x<WCC;PbmBgJ8&(#?Xr?(YCqq@>@7NZOeV_5^zzb%;cmhsBYF%6#y4A(kT zzqNWmD>fmV!v!5<xX1z`?UZRdu77+5_K|sqvl@6vl8WW6s%M?2Bp-3uGA!53Hf|K{ z7{?VI6SykSMiujh?Pd77@A-Qp8dFSB9WhJ^XsTo%6q&i`JMt(Lp2g2`O+#GZ%DV(d zVd<DbLZEwUE)k6_ET+;E>DXd4J~6#8kz7pQo{tG!ef#s<AOjV_vpVJ!Ri95a9h;3U zOe7X#w_=kw(($?3#mTwZXxv*VV&&v@9Sh2)Yo{*tI<4b|dVTOs7#eO0T>HN<ij@b^ zWWmar>X@}7gWEdp;3S)&=_IAQTFC9(7Q&bKTEkZYm)@FNwS8|;sE$x>Z#ow74gGUe z$7?Y51Qtro?ERIkYI|)?wXgKnwZ8gOUegdb)e7FcWfOEMwQ{iM-l=-3eZ&W318m+@ zt&ffHjzCAsHL`b;M$sEN8rC??RLJXReR-r-_0mVLRlA1mhB(>QbwqGd_3DC-B34uj zE|~26q0--iDN{|kLk*Ll5_UrME__O)0Kd&>;)j!&|8$zv$mDMepSMHjwS#xpy&b@w z!QZiKFucXZbL`zh_b;AF53gMa^16@L{e(DxPLA%6_~ZahX^4+;h`(y3h!_rhg2O(1 z#JdNY2Y*BN&)n1m1*tTEh6+Y0;RYW@Q2P<z_$;3*3Q^TkGCW$tFDm>TY&hoe9j`!K z_TAIMUA<fAuL6ZU<X$T2s{zw0U>Z(%U`;9=B|Tz<HqF%YBc0jv3?qr~YupRJ!nubi zhF{{`Gn`Kjy~6lI7(*{HJ{uSf4!^)<f!Bz0F)8pXrXS;Ud7XTWzVdqhF?!1D)Dv_M zzeMH*ZV5a>$MAD}5gZNv1Wj<YKln88lqv#VB(E|ZK$w9a!d`0bq241Hp;xCch|~O> z!DWuv8I0m42VVi_;ot%u;1a&a75son&;K(e&wT$|@f{2-(eEBeWHC(7`*0gM-UW!8 z!7^4@5Ub?wLGWL~Hfs<XObr1I<IHGV;BOiU+^ytdf%ht%9W1r{BeaGCTd-6{N}lZE gFEGs_inAtWYO>N%$x4Tx6~)W?R;BYTmrbz$1H4f$YybcN literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrop.class b/org.isistan.flabot.executionstatemapping/bin/org/isistan/flabot/executionstatemapping/view/dnd/TreeStructuredElementDrop.class new file mode 100644 index 0000000000000000000000000000000000000000..321a4e3ad491a4b5599a494689a860d1b5b89c4d GIT binary patch literal 4389 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 b4bd7R+X3FFWF<qlPK!9ZL1Mod2)^}SQU#k4 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/build.properties b/org.isistan.flabot.executionstatemapping/build.properties new file mode 100755 index 0000000..e87ac23 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/build.properties @@ -0,0 +1,10 @@ +source.lib/executionmapping.jar = src/ +output.lib/executionmapping.jar = bin/ +bin.includes = META-INF/,\ + lib/executionmapping.jar,\ + icons/,\ + plugin.xml,\ + bin/,\ + plugin.properties,\ + resource/ + diff --git a/org.isistan.flabot.executionstatemapping/icons/executionmapping.gif b/org.isistan.flabot.executionstatemapping/icons/executionmapping.gif new file mode 100755 index 0000000000000000000000000000000000000000..e3d22adbfd1583a6ca5f82540257fdb8ab6c71e0 GIT binary patch literal 1052 zcmZ?wbhEHb6krfw_|Cu}A}S^#CN3%_Au28*CLt*yB`qZ_BP%B_Coiv|q^zx~qN|~% zr=g~=p=PA1W~QrYp{HeIplxlW<F2ORWUlXJW8`CR669zc>R?n9WL+9+TNZAA!BF$I zncf{BGS@%uZ9F-_d4IY4qVmusWg&M`98Xuf9V+rUUF~tU*5h2g_wKg1wXI1z`m=UV z%H2OD_gsVT`6j=!-BIWJ;x4oVTxbcp*cN=dG5lgj=*5n(i(TP&nj<cEM_%rYzStFe zxhL*Qf9%c9n9F_1=O-i_o|tiMV#3wQNmnMNUz?h8eOmg}Nf|e$XWW>Xbz@G>&AEBE z=H(xnQFLf#@tL{BH|7@KoLg~wLBZ_>MYk7~++I|EXKC5RWwm#gRoq=(acg1C?L~FB zm(*NcQG0K7&Aruix0kitUDb4dee>N_?RQso-rv}Ae`D+YP3`x$OnR`j^WnDc2V46e zZtHuvqv!FizQ?;KJl;3?$)1UicTah`f6C+ivmWi4^LYP)rw67!J2?IM;hE14&3kcd z_KOqqo*r8C^7QhTXI8#C3q<Q)onQC*!ur?ex4b&P|Lx`NZ?5ckcXQ9X+xy;JKJxC~ z`FHm(e0q8J^SehszI^=g_4Ci~Uw(f7`uo@S-@ktR`TgV1pI?9e{Qmd%_rE`X{{Q>? z|Nno6Q9vjJ6o0aCGBC_z&;cm~<p~CkpA5E~Z$vsLE_7^U(QLZnx!|x*_rD(xH@lyg zu`1$-E$Uc#;Ye4>qXU_T-OkE-&$CipRS}pXtt+bGA;8=rtYWR`zR8pM7%L+K!;YNF z5|8ClCaF<64Gba&M71k^ZRlir+B(HRM^B*ez=DI5)lyzfF?2|1VB+RC2>E#`#ZyQp z|BwiSR3b~KXzpYM!=RL|**Z)Oem@*6PE3$As`@Zv((+Smypm3Dc07FO(!|VB^1$Np z3D4VmT^mXs2ry{$O7)tpW#nDb-Y2BM#t{0@b@Fnrc#-UFj?OJP4DM={OH$O>dnF7) dmKZcPb*Z#7S(-{Me$vjb7%Om7OhSOc8USZZfZqTB literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/plugin.properties b/org.isistan.flabot.executionstatemapping/plugin.properties new file mode 100755 index 0000000..adc545d --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/plugin.properties @@ -0,0 +1,20 @@ +# <copyright> +# </copyright> +# +# $Id$ + +# ==================================================================== +# To code developer: +# Do NOT change the properties between this line and the +# "%%% END OF TRANSLATED PROPERTIES %%%" line. +# Make a new property name, append to the end of the file and change +# the code to use the new property. +# ==================================================================== + +# ==================================================================== +# %%% END OF TRANSLATED PROPERTIES %%% +# ==================================================================== + +pluginName = Model Model +providerName = www.example.org + diff --git a/org.isistan.flabot.executionstatemapping/plugin.xml b/org.isistan.flabot.executionstatemapping/plugin.xml new file mode 100755 index 0000000..254d490 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/plugin.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.2"?> +<plugin> + <extension + point="org.eclipse.emf.ecore.generated_package"> + <package + class="org.isistan.flabot.executionstatemapping.model.strategymodel.StrategymodelPackage" + uri="http:///org/isistan/flabot/executionstatemapping/strategymodel.ecore"> + </package> + <package + class="org.isistan.flabot.executionstatemapping.model.ModelPackage" + uri="http:///org/isistan/flabot/executionstatemapping/model.ecore"> + </package> + </extension> + + <extension + point="org.eclipse.ui.views"> + <view + category="org.isistan.flabot.engine.viewcategory" + class="org.isistan.flabot.executionstatemapping.view.ExecutionConditionView" + icon="icons/executionmapping.gif" + id="org.isistan.flabot.executionstatemapping.view" + name="Execution Conditions and State Diagrams"> + </view> + </extension> + <extension + point="org.eclipse.ui.perspectiveExtensions"> + <perspectiveExtension + targetID="org.eclipse.ui.resourcePerspective"> + <view + ratio="0.5" + relative="org.eclipse.ui.views.TaskList" + relationship="right" + id="org.isistan.flabot.executionstatemapping.views.SampleView"> + </view> + </perspectiveExtension> + </extension> + <extension + point="org.isistan.flabot.engine.strategyUIComboBox"> + <action + class="org.isistan.flabot.executionstatemapping.dialogs.strategy.ExecutionConditionTraceInferenceStrategyTabItem"> + </action> + </extension> + <extension + point="org.isistan.flabot.engine.prologStrategyUIComboBox"> + <action + class="org.isistan.flabot.executionstatemapping.dialogs.strategy.EventStrategyPrologProviderTabItem"> + </action> + </extension> + <extension + point="org.isistan.flabot.engine.generalLogFilterStrategyUIComboBox"> + <action + class="org.isistan.flabot.executionstatemapping.dialogs.strategy.ExecutionConditionGeneralLogFilterStrategyTabItem"> + </action> + </extension> + <extension + point="org.eclipse.ui.helpSupport"> + </extension> + <extension + point="org.eclipse.help.toc"> + <toc + file="resource/help/toc.xml" + primary="true"> + </toc> + <toc + file="resource/help/tocdemos.xml"> + </toc> + </extension> + +</plugin> diff --git a/org.isistan.flabot.executionstatemapping/resource/examples/EMF-GEF-executioncondition.flabot b/org.isistan.flabot.executionstatemapping/resource/examples/EMF-GEF-executioncondition.flabot new file mode 100755 index 0000000..26d43a8 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/resource/examples/EMF-GEF-executioncondition.flabot @@ -0,0 +1,12111 @@ +<?xml version="1.0" encoding="ISO-8859-15"?> +<org.isistan.flabot.edit.editormodel:FlabotFileModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org.isistan.flabot.coremodel="http:///org/isistan/flabot/coremodel.ecore" xmlns:org.isistan.flabot.edit.componentmodel="http:///org/isistan/flabot/edit/componentmodel.ecore" xmlns:org.isistan.flabot.edit.editormodel="http:///org/isistan/flabot/edit/editormodel.ecore" xmlns:org.isistan.flabot.edit.ucmmodel="http:///org/isistan/flabot/edit/ucmmodel.ecore" xmlns:org.isistan.flabot.engine.executionstate="http:///org/isistan/flabot/engine/executionstate.ecore" xmlns:org.isistan.flabot.engine.executionstate.javalogtrace="http:///org/isistan/flabot/engine/executionstate/javalogtrace.ecore" xmlns:org.isistan.flabot.executionstatemapping.model.model="http:///org/isistan/flabot/executionstatemapping/model.ecore" xmlns:org.isistan.flabot.executionstatemapping.model.semantic="http:///org/isistan/flabot/executionstatemapping/model.ecore#//semantic" xmlns:org.isistan.flabot.executionstatemapping.model.strategymodel="http:///org/isistan/flabot/executionstatemapping/strategymodel.ecore" xmlns:org.isistan.flabot.launcher.filter.filtermodel="http:///org/isistan/flabot/launcher/filter/filtermodel.ecore" xmlns:org.isistan.flabot.mapping.mappingmodel="http:///org/isistan/flabot/mapping/mappingmodel.ecore" openDiagrams="//@diagrams.11 //@diagrams.9 //@diagrams.2 //@diagrams.12 //@diagrams.5 //@diagrams.4 //@diagrams.6 //@diagrams.13 //@diagrams.10 //@diagrams.8 //@diagrams.7 //@diagrams.0 //@diagrams.1 //@diagrams.3 //@diagrams.14 //@diagrams.15 //@diagrams.16 //@diagrams.17 //@diagrams.18 //@diagrams.19 //@diagrams.20 //@diagrams.21 //@diagrams.22 //@diagrams.23"> + <extendedData key="org.isistan.flabot.executionstatemapping|executionStateMappingFileModel"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.model:ExecutionStateMappingFileModel"> + <stateContainersTree name="State Diagrams" type="FOLDER_STATE_DIAGRAM_TYPE"/> + <methodExecutionConditionsTree name="Method Execution Conditions"/> + <generalExecutionConditionsTree name="General Execution Conditions" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList name="Common" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsFlabotFileTreeEditPartNotification" type="EXECUTION_CONDITION_TYPE"> + <fields value="FlabotFileTreeEditPart" condition="CLASS_OF" fieldName="parent"/> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.CoreModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsResponsibilityModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.ResponsibilityImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentModelNotifier" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="Visual Commons" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsTargetConnectionVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.ConnectionVisualModelImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="12" fieldName="featureID"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsSourceConnectionVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="11" fieldName="featureID"/> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.ConnectionVisualModelImpl" condition="CLASS_OF" fieldName="newValue"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="UCM Editor" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList name="Add Condition" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsConditionModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.ConditionImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsConditionAddedNotification" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ConditionImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ResponsibilityImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="Insert Responsibility Node" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsPathVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.ConnectionVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.PathImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsResponsibilityNodeVisual" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="ot.coremodel.impl.ResponsibilityNodeImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsResponsibilityNodeModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="ot.coremodel.impl.ResponsibilityNodeImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + </persistentList> + <persistentList name="Add Port" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsVisualPortModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.VisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.PortModelImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentEditPartNotifier" type="EXECUTION_CONDITION_TYPE"> + <fields value="ComponentDiagramEditPart" condition="CLASS_OF" fieldName="parent"/> + <fields value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" fieldName="model"/> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsPortModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.PortModelImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + </persistentList> + <persistentList name="Specify Path" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsPathModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.PathImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsStartPathAdded" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.SimplePathNodeImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="next"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsUseCaseMaplNotifierMapAdded" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.PathImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.UseCaseMapImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsSimplePathNodeModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.SimplePathNodeImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsStartSimplePathNodeVisualAdded" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.SimplePathNodeImpl" condition="CLASS_OF" fieldName="semanticModel"/> + <fieldEvaluationConditions value="[]" condition="CONTAINS" fieldName="sourceConnections"/> + <fieldEvaluationConditions value="[]" condition="CONTAINS" fieldName="targetConnections"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsEndSimplePathNodeVisualAdded" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="[]" condition="CONTAINS" fieldName="sourceConnections"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.ConnectionVisualModelImpl" condition="CLASS_OF" fieldName="targetConnections"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.SimplePathNodeImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="Add Component Role" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentRoleModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.ComponentRoleImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsUCMNotifier" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.edit.ucmmodel.impl.UCMDiagramImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentRoleImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + </persistentList> + </persistentList> + <persistentList name="Component Editor" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList name="Add Component" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsVisualComponentModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentDiagramEditPartNotifierAdd" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.componentmodel.impl.ComponentDiagramImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="Remove Component" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsCoreModelNotifier" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.CoreModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsComponentDiagramNotifierRemove" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.edit.componentmodel.impl.ComponentDiagramImpl" condition="CLASS_OF" fieldName="notifier"/> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.edit.editormodel.impl.NodeVisualModelImpl" condition="CLASS_OF" fieldName="oldValue"/> + </parameters> + </persistentList> + </persistentList> + <persistentList name="Add Relationship" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsRelationshipVisualModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.edit.editormodel.impl.ConnectionVisualModelImpl" condition="CLASS_OF" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.RelationshipImpl" condition="CLASS_OF" fieldName="semanticModel"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsRelationshipModel" type="EXECUTION_CONDITION_TYPE"> + <parameters value="org.isistan.flabot.coremodel.impl.RelationshipImpl" condition="CLASS_OF" parameterPosition="-1"/> + </persistentList> + </persistentList> + <persistentList name="Remove Responsibility" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsResponsibilityNotifierRemove" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ResponsibilityImpl" condition="CLASS_OF" fieldName="oldValue"/> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsCoreModelNotifierResponsibilityRemove" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ResponsibilityImpl" condition="CLASS_OF" fieldName="oldValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.CoreModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsUseCasemapNotifier" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentRoleImpl" condition="CLASS_OF" fieldName="oldValue"/> + <fieldEvaluationConditions value="" condition="IS_NULL" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.UseCaseMapImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + <persistentList name="Assign Responsibility" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="IsResponsibilityAssignNotifier" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ResponsibilityImpl" condition="CLASS_OF" fieldName="newValue"/> + <fieldEvaluationConditions value="org.isistan.flabot.coremodel.impl.ComponentModelImpl" condition="CLASS_OF" fieldName="notifier"/> + </parameters> + </persistentList> + </persistentList> + </persistentList> + </generalExecutionConditionsTree> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.engine|generalLogFilterStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimpleGeneralLogFilterStrategy"/> + </extendedData> + <coreModel architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.2 //@coreModel/@useCaseMaps.3 //@coreModel/@useCaseMaps.4 //@coreModel/@useCaseMaps.5 //@coreModel/@useCaseMaps.10 //@coreModel/@useCaseMaps.19" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1 //@coreModel/@useCaseMaps.6 //@coreModel/@useCaseMaps.7 //@coreModel/@useCaseMaps.8 //@coreModel/@useCaseMaps.9 //@coreModel/@useCaseMaps.11 //@coreModel/@useCaseMaps.12 //@coreModel/@useCaseMaps.13 //@coreModel/@useCaseMaps.14 //@coreModel/@useCaseMaps.15 //@coreModel/@useCaseMaps.16 //@coreModel/@useCaseMaps.17 //@coreModel/@useCaseMaps.18"> + <components name="EObject" features="//@coreModel/@responsibilities.0 //@coreModel/@responsibilities.1"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore|org\.eclipse\.emf\.common\.notify|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.eclipse\.emf\.ecore\.EObject|@org\.eclipse\.emf\.common\.notify\.Notifier|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl" javaFilePattern="org\.eclipse\.emf\.ecore\.EObject\.|org\.eclipse\.emf\.common\.notify\.Notifier\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\."/> + </extendedData> + </components> + <components name="Adapter" features="//@coreModel/@responsibilities.2"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.notify" behaviorPattern="" classPattern="@org\.eclipse\.emf\.common\.notify\.Adapter" javaFilePattern="org\.eclipse\.emf\.common\.notify\.Adapter\."/> + </extendedData> + </components> + <components name="ComponentEditPart" features="//@coreModel/@responsibilities.11 //@coreModel/@responsibilities.39 //@coreModel/@responsibilities.62 //@coreModel/@responsibilities.74 //@coreModel/@responsibilities.75 //@coreModel/@responsibilities.105 //@coreModel/@responsibilities.113"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="ComponentModel" features="//@coreModel/@responsibilities.9 //@coreModel/@responsibilities.57 //@coreModel/@responsibilities.114 //@coreModel/@responsibilities.115"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.notify\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.impl\.NamedElementModelImpl|@org\.isistan\.flabot\.coremodel\.impl\.ComponentModelImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.util\.DelegatingEList|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$Unsettable|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$Unsettable\$ManyInverse" javaFilePattern="org\.isistan\.flabot\.coremodel\.impl\.NamedElementModelImpl|org\.isistan\.flabot\.coremodel\.impl\.ComponentModelImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$Unsettable\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$Unsettable\$ManyInverse\."/> + </extendedData> + </components> + <components name="EditPart" features="//@coreModel/@responsibilities.3 //@coreModel/@responsibilities.13 //@coreModel/@responsibilities.14 //@coreModel/@responsibilities.15 //@coreModel/@responsibilities.28 //@coreModel/@responsibilities.29 //@coreModel/@responsibilities.30"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef|org\.eclipse\.gef\.editparts" behaviorPattern="" classPattern="@org\.eclipse\.gef\.EditPart|@org\.eclipse\.gef\.editparts\.AbstractEditPart" javaFilePattern="org\.eclipse\.gef\.EditPart\.|org\.eclipse\.gef\.editparts\.AbstractEditPart\."/> + </extendedData> + <ownedPorts name="CommandProvision"> + <provideds name="CommandProvider" port="//@coreModel/@components.4/@ownedPorts.0"/> + <requireds name="CommandProvider" port="//@coreModel/@components.4/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="Command" features="//@coreModel/@responsibilities.4 //@coreModel/@responsibilities.5 //@coreModel/@responsibilities.6 //@coreModel/@responsibilities.45 //@coreModel/@responsibilities.46 //@coreModel/@responsibilities.47 //@coreModel/@responsibilities.157 //@coreModel/@responsibilities.158"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="" classPattern="@org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + </components> + <components name="CommandStack" features="//@coreModel/@responsibilities.7 //@coreModel/@responsibilities.43 //@coreModel/@responsibilities.44 //@coreModel/@responsibilities.155 //@coreModel/@responsibilities.156"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="" classPattern="@org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + </components> + <components name="EditPolicy" features="//@coreModel/@responsibilities.8"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="" classPattern="@org\.eclipse\.gef\.EditPolicy" javaFilePattern="org\.eclipse\.gef\.EditPolicy\."/> + </extendedData> + <ownedPorts name="CommandProvision"> + <provideds name="CommandProvider" port="//@coreModel/@components.7/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="ModifyComponentPropertyCommand" features="//@coreModel/@responsibilities.10"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.ModifyNamedElementCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.ModifyNamedElementCommand"/> + </extendedData> + </components> + <components name="ComponentDirectEditPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart\$5" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="FlabotCommandStack" features="//@coreModel/@responsibilities.36"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editor\.FlabotCommandStack" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.FlabotCommandStack"/> + </extendedData> + </components> + <components name="EditPartFactory" features="//@coreModel/@responsibilities.12"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="" classPattern="@org\.eclipse\.gef\.EditPartFactory" javaFilePattern="org\.eclipse\.gef\.EditPartFactory\."/> + </extendedData> + </components> + <components name="GraphicalEditPart" features="//@coreModel/@responsibilities.16 //@coreModel/@responsibilities.18"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef|org\.eclipse\.gef\.editparts" behaviorPattern="" classPattern="@org\.eclipse\.gef\.GraphicalEditPart|@org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.GraphicalEditPart\.|org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </components> + <components name="TreeEditPart" features="//@coreModel/@responsibilities.17 //@coreModel/@responsibilities.19 //@coreModel/@responsibilities.31 //@coreModel/@responsibilities.32"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef|org\.eclipse\.gef\.editparts" behaviorPattern="" classPattern="@org\.eclipse\.gef\.TreeEditPart|@org\.eclipse\.gef\.editparts\.AbstractTreeEditPart|@org\.eclipse\.gef\.editparts\.RootTreeEditPart" javaFilePattern="org\.eclipse\.gef\.TreeEditPart\.|org\.eclipse\.gef\.editparts\.AbstractTreeEditPart\.|org\.eclipse\.gef\.editparts\.RootTreeEditPart\."/> + </extendedData> + </components> + <components name="Figure" features="//@coreModel/@responsibilities.26"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.draw2d" behaviorPattern="" classPattern="@org\.eclipse\.draw2d\.IFigure" javaFilePattern="org\.eclipse\.draw2d\.IFigure\."/> + </extendedData> + </components> + <components name="ComponentDiagramEditPart" features="//@coreModel/@responsibilities.25 //@coreModel/@responsibilities.40 //@coreModel/@responsibilities.42"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart"/> + </extendedData> + </components> + <components name="ComponentDiagramModel" features="//@coreModel/@responsibilities.24 //@coreModel/@responsibilities.38"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componentmodel|org\.isistan\.flabot\.edit\.componentmodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componentmodel\.ComponentDiagram|@org\.isistan\.flabot\.edit\.componentmodel\.impl\.ComponentDiagramImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.isistan\.flabot\.edit\.componentmodel\.ComponentDiagram|org\.isistan\.flabot\.edit\.componentmodel\.impl\.ComponentDiagramImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </components> + <components name="CoreModel" features="//@coreModel/@responsibilities.21 //@coreModel/@responsibilities.34 //@coreModel/@responsibilities.77 //@coreModel/@responsibilities.83 //@coreModel/@responsibilities.100"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.CoreModel|@org\.isistan\.flabot\.coremodel\.impl\.CoreModelImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList|@org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.isistan\.flabot\.coremodel\.CoreModel|org\.isistan\.flabot\.coremodel\.impl\.CoreModelImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </components> + <components name="CoreModelTreeEditPart" features="//@coreModel/@responsibilities.22 //@coreModel/@responsibilities.35 //@coreModel/@responsibilities.78 //@coreModel/@responsibilities.84 //@coreModel/@responsibilities.98 //@coreModel/@responsibilities.139"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + </components> + <components name="AddComponentCommand" features="//@coreModel/@responsibilities.20 //@coreModel/@responsibilities.52 //@coreModel/@responsibilities.53"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand"/> + </extendedData> + </components> + <components name="ComponentDiagramLayoutPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart\$1" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart"/> + </extendedData> + </components> + <components name="FlabotTreeEditPartFactory"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.FlabotTreeEditPartFactory" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.FlabotTreeEditPartFactory"/> + </extendedData> + </components> + <components name="ComponentTreeEditPart" features="//@coreModel/@responsibilities.23 //@coreModel/@responsibilities.41 //@coreModel/@responsibilities.58 //@coreModel/@responsibilities.119"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart"/> + </extendedData> + </components> + <components name="ComponentDiagramEditPartFactory"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPartFactory" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPartFactory"/> + </extendedData> + </components> + <components name="ComponentFigure" features="//@coreModel/@responsibilities.27 //@coreModel/@responsibilities.106"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure"/> + </extendedData> + </components> + <components name="RemoveCoreComponentCommand" features="//@coreModel/@responsibilities.33 //@coreModel/@responsibilities.48 //@coreModel/@responsibilities.49"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand"/> + </extendedData> + </components> + <components name="ComponentTreeEditPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart\$1" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart"/> + </extendedData> + </components> + <components name="DeleteVisualComponentCommand" features="//@coreModel/@responsibilities.37 //@coreModel/@responsibilities.50 //@coreModel/@responsibilities.51"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand"/> + </extendedData> + </components> + <components name="ComponentLayoutPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart\$3" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="AddPortCommand" features="//@coreModel/@responsibilities.54 //@coreModel/@responsibilities.55 //@coreModel/@responsibilities.56"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand"/> + </extendedData> + </components> + <components name="VisualModel" features="//@coreModel/@responsibilities.61 //@coreModel/@responsibilities.67 //@coreModel/@responsibilities.68 //@coreModel/@responsibilities.166 //@coreModel/@responsibilities.167 //@coreModel/@responsibilities.162 //@coreModel/@responsibilities.163 //@coreModel/@responsibilities.174 //@coreModel/@responsibilities.175"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editormodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editormodel\.impl\.VisualModelImpl|@org\.isistan\.flabot\.edit\.editormodel\.impl\.NodeVisualModelImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList|@org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.isistan\.flabot\.edit\.editormodel\.impl\.VisualModelImpl|org\.isistan\.flabot\.edit\.editormodel\.impl\.NodeVisualModelImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </components> + <components name="PortTreeEditPart" features="//@coreModel/@responsibilities.59 //@coreModel/@responsibilities.60"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart"/> + </extendedData> + </components> + <components name="PortFigure" features="//@coreModel/@responsibilities.63"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.figures\.PortFigure" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.PortFigure"/> + </extendedData> + </components> + <components name="PortEditPart"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.PortEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.PortEditPart"/> + </extendedData> + </components> + <components name="AddRelationshipCommand" features="//@coreModel/@responsibilities.64 //@coreModel/@responsibilities.65 //@coreModel/@responsibilities.66"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand"/> + </extendedData> + </components> + <components name="ComponentNodeEditPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart\$4" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="NodeEditPart" features="//@coreModel/@responsibilities.69 //@coreModel/@responsibilities.70 //@coreModel/@responsibilities.71 //@coreModel/@responsibilities.72"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts|org\.eclipse\.gef" behaviorPattern="" classPattern="@org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart|@org\.eclipse\.gef\.NodeEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\.|org\.eclipse\.gef\.NodeEditPart\."/> + </extendedData> + </components> + <components name="ConnectionEditPart" features="//@coreModel/@responsibilities.73"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef|org\.eclipse\.gef\.editparts" behaviorPattern="" classPattern="@org\.eclipse\.gef\.ConnectionEditPart|@org\.eclipse\.gef\.editparts\.AbstractConnectionEditPart" javaFilePattern="org\.eclipse\.gef\.ConnectionEditPart\.|org\.eclipse\.gef\.editparts\.AbstractConnectionEditPart\."/> + </extendedData> + </components> + <components name="LineConnectionFigure" features="//@coreModel/@responsibilities.76"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editor\.figures\.LineConnection" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.figures\.LineConnection"/> + </extendedData> + </components> + <components name="ComponentRelationshipEditPart"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.editparts\.RelationshipConnectionEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.RelationshipConnectionEditPart"/> + </extendedData> + </components> + <components name="RelationshipTreeEditPart" features="//@coreModel/@responsibilities.79"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.RelationshipTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.RelationshipTreeEditPart"/> + </extendedData> + </components> + <components name="AddResposabilityCommand" features="//@coreModel/@responsibilities.80 //@coreModel/@responsibilities.81 //@coreModel/@responsibilities.82"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand"/> + </extendedData> + </components> + <components name="ResponsibilityTreeEditPart" features="//@coreModel/@responsibilities.85 //@coreModel/@responsibilities.99"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart"/> + </extendedData> + </components> + <components name="RemoveCoreResponsibilityCommand" features="//@coreModel/@responsibilities.86 //@coreModel/@responsibilities.87 //@coreModel/@responsibilities.88"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand"/> + </extendedData> + </components> + <components name="AddComponentRoleCommand" features="//@coreModel/@responsibilities.89 //@coreModel/@responsibilities.90 //@coreModel/@responsibilities.91"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand"/> + </extendedData> + </components> + <components name="UCMDiagramModel" features="//@coreModel/@responsibilities.95 //@coreModel/@responsibilities.107 //@coreModel/@responsibilities.145 //@coreModel/@responsibilities.146"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmmodel|org\.isistan\.flabot\.edit\.ucmmodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmmodel\.UCMDiagram|@org\.isistan\.flabot\.edit\.ucmmodel\.impl\.UCMDiagramImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList" javaFilePattern="org\.isistan\.flabot\.edit\.ucmmodel\.UCMDiagram|org\.isistan\.flabot\.edit\.ucmmodel\.impl\.UCMDiagramImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\."/> + </extendedData> + </components> + <components name="UCMDiagramEditPart" features="//@coreModel/@responsibilities.96 //@coreModel/@responsibilities.108 //@coreModel/@responsibilities.109"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart"/> + </extendedData> + </components> + <components name="MapTreeEditPart" features="//@coreModel/@responsibilities.93 //@coreModel/@responsibilities.125 //@coreModel/@responsibilities.140"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart"/> + </extendedData> + </components> + <components name="ComponentRoleTreeEditPart" features="//@coreModel/@responsibilities.124 //@coreModel/@responsibilities.94"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart"/> + </extendedData> + </components> + <components name="ComponentRoleFigure" features="//@coreModel/@responsibilities.97"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editor\.figures\.ComponentFigure" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.figures\.ComponentFigure"/> + </extendedData> + </components> + <components name="ResponsibilityNodeEditPart" features="//@coreModel/@responsibilities.101 //@coreModel/@responsibilities.153 //@coreModel/@responsibilities.154"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart"/> + </extendedData> + </components> + <components name="DeleteVisualResponsibilityNodeCommand" features="//@coreModel/@responsibilities.102 //@coreModel/@responsibilities.103 //@coreModel/@responsibilities.104"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual|org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand|@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityNodeAssociationsCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand|org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityNodeAssociationsCommand"/> + </extendedData> + </components> + <components name="AssignResponsibilityCommand" features="//@coreModel/@responsibilities.110 //@coreModel/@responsibilities.111 //@coreModel/@responsibilities.112"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand"/> + </extendedData> + </components> + <components name="RemoveComponentRoleCommand" features="//@coreModel/@responsibilities.116 //@coreModel/@responsibilities.117 //@coreModel/@responsibilities.118 //@coreModel/@responsibilities.168"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand"/> + </extendedData> + </components> + <components name="DeleteVisualComponentRoleCommand" features="//@coreModel/@responsibilities.120 //@coreModel/@responsibilities.121 //@coreModel/@responsibilities.122"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand"/> + </extendedData> + </components> + <components name="ComponentRoleEditPart" features="//@coreModel/@responsibilities.126 //@coreModel/@responsibilities.170 //@coreModel/@responsibilities.171"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="InsertResponsibilityNodeCommand" features="//@coreModel/@responsibilities.127 //@coreModel/@responsibilities.128 //@coreModel/@responsibilities.129 //@coreModel/@responsibilities.169"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertResponsibilityCommand|@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertResponsibilityCommand|org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand"/> + </extendedData> + </components> + <components name="PathNodeModel" features="//@coreModel/@responsibilities.130 //@coreModel/@responsibilities.131 //@coreModel/@responsibilities.172 //@coreModel/@responsibilities.173"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.notify\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.PathNode|@org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.util\.DelegatingEList|@org\.isistan\.flabot\.coremodel\.impl\.SimplePathNodeImpl" javaFilePattern="org\.isistan\.flabot\.coremodel\.PathNode|org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.isistan\.flabot\.coremodel\.impl\.SimplePathNodeImpl"/> + </extendedData> + </components> + <components name="PathNodeEditPart" features="//@coreModel/@responsibilities.164 //@coreModel/@responsibilities.165"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart"/> + </extendedData> + </components> + <components name="PathCreateCommand" features="//@coreModel/@responsibilities.132 //@coreModel/@responsibilities.133 //@coreModel/@responsibilities.134"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand"/> + </extendedData> + </components> + <components name="PathModel" features="//@coreModel/@responsibilities.136"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.Path|@org\.isistan\.flabot\.coremodel\.impl\.PathImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList|@org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.isistan\.flabot\.coremodel\.Path|org\.isistan\.flabot\.coremodel\.impl\.PathImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </components> + <components name="ResponsibilityNodeFigure" features="//@coreModel/@responsibilities.135"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure"/> + </extendedData> + </components> + <components name="PathNodeFigure" features="//@coreModel/@responsibilities.138"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.figures\.PathPointFigure" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.PathPointFigure"/> + </extendedData> + </components> + <components name="PathTreeEditPart" features="//@coreModel/@responsibilities.141"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.StartPointEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.StartPointEditPart"/> + </extendedData> + </components> + <components name="UseCaseMapModel" features="//@coreModel/@responsibilities.137 //@coreModel/@responsibilities.92 //@coreModel/@responsibilities.123"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.UseCaseMap|@org\.isistan\.flabot\.coremodel\.impl\.UseCaseMapImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl|@org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.isistan\.flabot\.coremodel\.UseCaseMap|org\.isistan\.flabot\.coremodel\.impl\.UseCaseMapImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </components> + <components name="UCMDiagramEditPartFactory"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMEditPartFactory" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMEditPartFactory"/> + </extendedData> + </components> + <components name="UCMDiagramLayoutPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart\$UCMXYLayoutEditPolicy" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart"/> + </extendedData> + </components> + <components name="AddConditionCommand" features="//@coreModel/@responsibilities.142 //@coreModel/@responsibilities.143 //@coreModel/@responsibilities.144"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand"/> + </extendedData> + </components> + <components name="ComponentRoleTreeEditPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart\$1" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart"/> + </extendedData> + </components> + <components name="ResponsibilityTreeEditPolicy"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart\$1" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart"/> + </extendedData> + </components> + <components name="ResponsibilityModel" features="//@coreModel/@responsibilities.152"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl|org\.eclipse\.emf\.ecore\.util|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="" classPattern="@org\.isistan\.flabot\.coremodel\.Responsibility|@org\.isistan\.flabot\.coremodel\.impl\.ResponsibilityImpl|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList|@org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList|@org\.eclipse\.emf\.ecore\.util\.EObjectEList|@org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|@org\.eclipse\.emf\.common\.util\.BasicEList|@org\.eclipse\.emf\.common\.util\.DelegatingEList|@org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl" javaFilePattern="org\.isistan\.flabot\.coremodel\.Responsibility|org\.isistan\.flabot\.coremodel\.impl\.ResponsibilityImpl|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectContainmentWithInverseEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\."/> + </extendedData> + </components> + <components name="Action" features="//@coreModel/@responsibilities.147 //@coreModel/@responsibilities.148"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.jface\.action" behaviorPattern="" classPattern="@org\.eclipse\.jface\.action\.Action" javaFilePattern="org\.eclipse\.jface\.action\.Action\."/> + </extendedData> + </components> + <components name="CommandExecutor" features="//@coreModel/@responsibilities.149"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editor\.CommandExecutor" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.CommandExecutor"/> + </extendedData> + </components> + <components name="SelectionAction"/> + <components name="EditResponsibilityNodeAction" features="//@coreModel/@responsibilities.150 //@coreModel/@responsibilities.151"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.actions\.EditResponsibilityNodeAction" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.EditResponsibilityNodeAction"/> + </extendedData> + </components> + <components name="FlabotCommandExecutor"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.editor\.FlabotGraphicalEditor" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.FlabotGraphicalEditor"/> + </extendedData> + </components> + <components name="InsertResponsibilityNodeAction" features="//@coreModel/@responsibilities.159"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.ucmeditor\.actions\.InsertResponsibilityAction" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.InsertResponsibilityAction"/> + </extendedData> + </components> + <components name="EditResponsibilityAction" features="//@coreModel/@responsibilities.160"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.actions\.EditResponsibilitiesAction" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.EditResponsibilitiesAction"/> + </extendedData> + </components> + <components name="AssignResponsibilityAction" features="//@coreModel/@responsibilities.161"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions" behaviorPattern="" classPattern="@org\.isistan\.flabot\.edit\.componenteditor\.actions\.AssignResponsibilitiesAction" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.AssignResponsibilitiesAction"/> + </extendedData> + </components> + <components name="ComponentRoleLayoutPolicy"/> + <responsibilities name="notifyAdapters" components="//@coreModel/@components.0" description="notify all the registered adapters"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.0"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.notify|org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="org\.eclipse\.emf\.common\.notify\.Notifier#eNotify\(org\.eclipse\.emf\.common\.notify\.Notification\):void|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl#eNotify\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.eclipse\.emf\.common\.notify\.Notifier|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl" javaFilePattern="org\.eclipse\.emf\.common\.notify\.Notifier\.|org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="registerAdapter" components="//@coreModel/@components.0" description="register an adapter"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.1"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.notify\.impl" behaviorPattern="org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList" javaFilePattern="org\.eclipse\.emf\.common\.notify\.impl\.BasicNotifierImpl\$EAdapterList\."/> + </extendedData> + </responsibilities> + <responsibilities name="notifyChanged" components="//@coreModel/@components.1" description="a notification from a notifier eObject was received"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.2"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.notify" behaviorPattern="org\.eclipse\.emf\.common\.notify\.Adapter#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.eclipse\.emf\.common\.notify\.Adapter" javaFilePattern="org\.eclipse\.emf\.common\.notify\.Adapter\."/> + </extendedData> + <preconditions name="registerAdapter" value="precondition( registerAdapter, registerAdapter, EMF Notification UCM, registerAdapter )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.1" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4"/> + </responsibilities> + <responsibilities name="getCommandForRequest" components="//@coreModel/@components.4" description="creates a domain specific command from a domain independent request"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.3"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPart#getCommand\(org\.eclipse\.gef\.Request\):org\.eclipse\.gef\.commands\.Command" classPattern="org\.eclipse\.gef\.EditPart" javaFilePattern="org\.eclipse\.gef\.EditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="createCommand" components="//@coreModel/@components.5" description="command creation"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.4"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#<init>\(\)|org\.eclipse\.gef\.commands\.Command#<init>\(java\.lang\.String\)" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + </responsibilities> + <responsibilities name="canExecuteCommand" components="//@coreModel/@components.5" description="check if the command can be executed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.5"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#canExecute\(\):boolean" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + </responsibilities> + <responsibilities name="executeCommand" components="//@coreModel/@components.5" description="execute the command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.6"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#execute\(\):void" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + </responsibilities> + <responsibilities name="addCommandToStack" components="//@coreModel/@components.6" description="add the command to the command stack and execute it"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.7"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.CommandStack#execute\(org\.eclipse\.gef\.commands\.Command\):void" classPattern="org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + </responsibilities> + <responsibilities name="policyGetCommand" components="//@coreModel/@components.7" description="delegated getCommand from EditPart"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.8"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPolicy#getCommand\(org\.eclipse\.gef\.Request\):org\.eclipse\.gef\.commands\.Command" classPattern="org\.eclipse\.gef\.EditPolicy" javaFilePattern="org\.eclipse\.gef\.EditPolicy\."/> + </extendedData> + </responsibilities> + <responsibilities name="setComponentModelProperty" components="//@coreModel/@components.3" description="modification of a component model's property"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.9"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- executionInstanceSnapshot(Tag, Snapshot), snapshotObject(Snapshot, Object), objectClass(Object, Class), classDescriptor(Class, Descriptor), stringContains(Descriptor, 'org.isistan.flabot.coremodel.impl.ComponentModelImpl'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl" behaviorPattern="org\.isistan\.flabot\.coremodel\.NamedElementModel#setName\(java\.lang\.String\):void|org\.isistan\.flabot\.coremodel\.impl\.NamedElementModelImpl#setName\(java\.lang\.String\):void" classPattern="org\.isistan\.flabot\.coremodel\.NamedElementModel|org\.isistan\.flabot\.coremodel\.impl\.NamedElementModelImpl" javaFilePattern="org\.isistan\.flabot\.coremodel\.NamedElementModel|org\.isistan\.flabot\.coremodel\.impl\.NamedElementModelImpl"/> + </extendedData> + <preconditions name="firePropertyChangedNotification" value="mapping( firePropertyChangedNotification, notifyAdapters, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.0" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="executeModification" components="//@coreModel/@components.8" description="execution of the component property modify command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.10"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.ModifyNamedElementCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.ModifyNamedElementCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.ModifyNamedElementCommand"/> + </extendedData> + <preconditions name="executeCommand" value="mapping( executeCommand, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.1" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="refreshComponentVisuals" components="//@coreModel/@components.2"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.11"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="notifyPropertyChanged" value="mapping( notifyPropertyChanged, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.0" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.8" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="createEditPartForModel" components="//@coreModel/@components.11" description="create an EditPart for a given model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.12"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- preScope(Scope), returnValue(Tag, EditPart), scopeAcceptsSnapshot(Scope, EditPart). responsibilityPreFilterAccepts(Tag) :- isExitError(Tag). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPartFactory#createEditPart\(org\.eclipse\.gef\.EditPart,java\.lang\.Object\):org\.eclipse\.gef\.EditPart" classPattern="org\.eclipse\.gef\.EditPartFactory" javaFilePattern="org\.eclipse\.gef\.EditPartFactory\."/> + </extendedData> + </responsibilities> + <responsibilities name="refreshChildren" components="//@coreModel/@components.4" description="refresh the EditPart's children"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.13"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart#refreshChildren\(\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="createEditPart" components="//@coreModel/@components.4" description="creation of an EditPart"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPart#<init>\(\)" classPattern="org\.eclipse\.gef\.EditPart" javaFilePattern="org\.eclipse\.gef\.EditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="addChildVisual" components="//@coreModel/@components.4" description="add the child's visual to the editpart's visuals"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.15"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart#addChildVisual\(org\.eclipse\.gef\.EditPart,int\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="graphicalAddChildVisual" components="//@coreModel/@components.12" description="add the child edit part's visuals to the parent edit part's visuals (graphical)"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.16"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#addChildVisual\(org\.eclipse\.gef\.EditPart,int\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + <preconditions name="graphicalAddChildVisualMapping" value="mapping( graphicalAddChildVisualMapping, addChildVisual, GEF Create EditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.3" event="//@coreModel/@events.0" family="//@coreModel/@families.2" sourceResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="treeAddChildVisual" components="//@coreModel/@components.13" description="add the child's visuals to the parent edit part's visuals (tree)"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.17"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- preScope(Scope), arguments(Tag, [ChildEditPart, _]), scopeAcceptsSnapshot(Scope, ChildEditPart). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart#addChildVisual\(org\.eclipse\.gef\.EditPart,int\):void|org\.eclipse\.gef\.editparts\.RootTreeEditPart#addChildVisual\(org\.eclipse\.gef\.EditPart,int\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart|org\.eclipse\.gef\.editparts\.RootTreeEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart\.|org\.eclipse\.gef\.editparts\.RootTreeEditPart\."/> + </extendedData> + <preconditions name="treeAddChildVisualMapping" value="mapping( treeAddChildVisualMapping, addChildVisual, GEF Create EditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.3" event="//@coreModel/@events.0" family="//@coreModel/@families.3" sourceResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="createEditPartFigure" components="//@coreModel/@components.12" description="create the graphical edit part's figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.18"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#createFigure\(\):org\.eclipse\.draw2d\.IFigure" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="setTreeWidget" components="//@coreModel/@components.13" description="set a tree edit part's widget"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.19"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- argument(Tag, Argument), snapshotToString(Argument, ToString), not(stringsEqual(ToString, 'null')). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.TreeEditPart#setWidget\(org\.eclipse\.swt\.widgets\.Widget\):void" classPattern="org\.eclipse\.gef\.TreeEditPart" javaFilePattern="org\.eclipse\.gef\.TreeEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="executeAddComponentCommand" components="//@coreModel/@components.19" description="execution of an add component command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.20"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand"/> + </extendedData> + <preconditions name="addComponentCommand GEF Mapping" value="mapping( addComponentCommand GEF Mapping, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.17" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="coreModelAddComponent" components="//@coreModel/@components.17" description="a component addition to a core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.21"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="fireComponentAddedNotification" value="mapping( fireComponentAddedNotification, notifyAdapters, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.5" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.11" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="coreModelTreeNotifyComponentAdded" components="//@coreModel/@components.18" description="the core model tree edit part is notified of a component addition in the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.22"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + <preconditions name="notifyComponentAddedEMFMapping" value="mapping( notifyComponentAddedEMFMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.5" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showTreeComponentVisualProperties" components="//@coreModel/@components.22" description="showing the component in the outline tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.23"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart#getImage\(\):org\.eclipse\.swt\.graphics\.Image|org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart#getText\(\):java\.lang\.String|org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart#<init>\(org\.isistan\.flabot\.coremodel\.ComponentModel\)" classPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart"/> + </extendedData> + <preconditions name="setComponentTreeWidgetMapping" value="mapping( setComponentTreeWidgetMapping, setTreeWidget, GEF Create TreeEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.5" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="componentDiagramAddVisualModel" components="//@coreModel/@components.16" description="addition of a visual model to a component diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.24"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="componentDiagramNotifyVisualModelAdded" components="//@coreModel/@components.15" description="notification of a visual model addition in the diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.25"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart"/> + </extendedData> + <preconditions name="componentDiagramNotifyMapping" value="mapping( componentDiagramNotifyMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.6" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.8" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="constructFigure" components="//@coreModel/@components.14" description="construction of a figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.26"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.draw2d" behaviorPattern="org\.eclipse\.draw2d\.IFigure#<init>\(\)" classPattern="org\.eclipse\.draw2d\.IFigure" javaFilePattern="org\.eclipse\.draw2d\.IFigure\."/> + </extendedData> + </responsibilities> + <responsibilities name="createComponentFigure" components="//@coreModel/@components.24" description="create a component figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.27"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure#<init>\(org\.eclipse\.swt\.graphics\.RGB,org\.eclipse\.swt\.graphics\.RGB,int\)" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure"/> + </extendedData> + <preconditions name="createComponentFigureMapping" value="mapping( createComponentFigureMapping, createFigure, GEF Create GraphicalEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.4" event="//@coreModel/@events.0" family="//@coreModel/@families.6" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.10" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="activateEditPart" components="//@coreModel/@components.4" description="activate the editpart"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPart#activate\(\):void" classPattern="org\.eclipse\.gef\.EditPart" javaFilePattern="org\.eclipse\.gef\.EditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="deactivateEditPart" components="//@coreModel/@components.4" description="deactivate the edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.29"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.EditPart#deactivate\(\):void" classPattern="org\.eclipse\.gef\.EditPart" javaFilePattern="org\.eclipse\.gef\.EditPart\."/> + </extendedData> + <preconditions name="deactivatePrecondition" value="precondition( deactivatePrecondition, activateEditPart, GEF EditPart Refresh Children, none )." useCaseMap="//@coreModel/@useCaseMaps.3" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.18" dependencyResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.13"/> + </responsibilities> + <responsibilities name="removeChildVisual" components="//@coreModel/@components.4" description="remove the child edit part's visual"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.30"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart#removeChildVisual\(org\.eclipse\.gef\.EditPart\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="treeRemoveChildVisual" components="//@coreModel/@components.13" description="remove child visual in a tree edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.31"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart#removeChildVisual\(org\.eclipse\.gef\.EditPart\):void|org\.eclipse\.gef\.editparts\.RootTreeEditPart#removeChildVisual\(org\.eclipse\.gef\.EditPart\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart|org\.eclipse\.gef\.editparts\.RootTreeEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractTreeEditPart\.|org\.eclipse\.gef\.editparts\.RootTreeEditPart\."/> + </extendedData> + <preconditions name="removeChildVisualMapping" value="mapping( removeChildVisualMapping, removeChildVisual, GEF EditPart Refresh Children, none )." useCaseMap="//@coreModel/@useCaseMaps.3" event="//@coreModel/@events.0" family="//@coreModel/@families.3" sourceResponsibility="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.15"/> + </responsibilities> + <responsibilities name="unsetTreeWidget" components="//@coreModel/@components.13" description="unset the tree widget (set to null)"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.32"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- argument(Tag, Argument), snapshotIsNull(Argument). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef" behaviorPattern="org\.eclipse\.gef\.TreeEditPart#setWidget\(org\.eclipse\.swt\.widgets\.Widget\):void" classPattern="org\.eclipse\.gef\.TreeEditPart" javaFilePattern="org\.eclipse\.gef\.TreeEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="executeRemoveComponentCommand" components="//@coreModel/@components.25" description="execute the remove component command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.33"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand"/> + </extendedData> + <preconditions name="executeRemoveComponentMapping" value="mapping( executeRemoveComponentMapping, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.7" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="coreModelRemoveComponent" components="//@coreModel/@components.17" description="a component is removed from the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.34"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="coreModelRemoveComponentMapping" value="mapping( coreModelRemoveComponentMapping, notifyAdapters, EMF Notification UCM, none, Outline Component Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.8" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="coreModelTreeNotifyComponentRemoved" components="//@coreModel/@components.18" description="the core model tree edit part is notified that a component has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.35"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + <preconditions name="notifyComponentRemovedEMFMapping" value="mapping( notifyComponentRemovedEMFMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.8" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="appendToLastAndExecuteCommand" components="//@coreModel/@components.10" description="append the given command to the top command in the undo stack and execute it"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.36"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor" behaviorPattern="org\.isistan\.flabot\.edit\.editor\.FlabotCommandStack#appendToLastAndExecute\(org\.eclipse\.gef\.commands\.Command\):void" classPattern="org\.isistan\.flabot\.edit\.editor\.FlabotCommandStack" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.FlabotCommandStack"/> + </extendedData> + </responsibilities> + <responsibilities name="executeDeleteVisualComponentCommand" components="//@coreModel/@components.27" description="execution of the delete visual component command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.37"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand"/> + </extendedData> + <preconditions name="parentCommandExecuted" value="precondition( parentCommandExecuted, executeRemoveComponentCommand, Remove Component, none )." useCaseMap="//@coreModel/@useCaseMaps.7" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="componentDiagramRemoveVisualModel" components="//@coreModel/@components.16" description="remove a visual model from the component diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.38"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="removeVisualComponentMapping" value="mapping( removeVisualComponentMapping, notifyAdapters, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.10" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="componentEditPartNotifyComponentRemoved" components="//@coreModel/@components.2" description="a component edit part is notified that its core component model has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.39"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="notifyComponentRemovedToVisual" value="mapping( notifyComponentRemovedToVisual, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.9" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + <preconditions name="removeComponent" value="precondition( removeComponent, coreModelRemoveComponent, Remove Component, none )." useCaseMap="//@coreModel/@useCaseMaps.7" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5" dependencyResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.2"/> + </responsibilities> + <responsibilities name="componentDiagramNotifyVisualModelRemoved" components="//@coreModel/@components.15" description="notification to the diagram that a visual model has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.40"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.1/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentDiagramEditPart"/> + </extendedData> + <preconditions name="notifyVisualRemovedMapping" value="mapping( notifyVisualRemovedMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.10" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.6" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="hideTreeComponentVisuals" components="//@coreModel/@components.22" description="hide the component visual widget in the tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:StateFromMappingStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.41"/> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <preconditions name="hideTreeComponentVisuals" value="mapping( hideTreeComponentVisuals, unsetTreeWidget, GEF Create TreeEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.8" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="componentDiagramRemoveChildFigure" components="//@coreModel/@components.15" description="removal of a child figure from the component diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:StateFromMappingStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.42"/> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <preconditions name="componentDiagramRemoveChildFigure" value="mapping( componentDiagramRemoveChildFigure, removeChildVisual, GEF EditPart Refresh Children, none )." useCaseMap="//@coreModel/@useCaseMaps.3" event="//@coreModel/@events.0" family="//@coreModel/@families.10" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.15"/> + </responsibilities> + <responsibilities name="undoLastCommand" components="//@coreModel/@components.6" description="undo the last command that was added to this command stack"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.43"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.CommandStack#undo\(\):void" classPattern="org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + <preconditions name="commandAdded" value="precondition( commandAdded, addCommandToStack, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.4" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.11"/> + </responsibilities> + <responsibilities name="redoLastUndoneCommand" components="//@coreModel/@components.6" description="redo the last undone command in this command stack"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.44"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.CommandStack#redo\(\):void" classPattern="org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + <preconditions name="lastCommandUndone" value="precondition( lastCommandUndone, undoLastCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.2" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.4"/> + </responsibilities> + <responsibilities name="undoCommand" components="//@coreModel/@components.5" description="undo the command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.45"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#undo\(\):void" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + <preconditions name="commandExecuted" value="precondition( commandExecuted, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="canUndoCommand" components="//@coreModel/@components.5" description="check if the comman can undo"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.46"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#canUndo\(\):boolean" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + </responsibilities> + <responsibilities name="redoCommand" components="//@coreModel/@components.5" description="redo the command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.47"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#redo\(\):void" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + <preconditions name="commandUndone" value="precondition( commandUndone, undoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="undoRemoveCoreComponentCommand" components="//@coreModel/@components.25" description="undo remove core component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.48"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand"/> + </extendedData> + <preconditions name="undoRemoveComponentMapping" value="mapping( undoRemoveComponentMapping, undoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.7" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="redoRemoveCoreComponentCommand" components="//@coreModel/@components.25" description="redo remove core component command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.49"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.DeleteComponentCommand"/> + </extendedData> + <preconditions name="redoRemoveComponentMapping" value="mapping( redoRemoveComponentMapping, redoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.7" sourceResponsibility="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoDeleteVisualComponentCommand" components="//@coreModel/@components.27" description="undo delete visual component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.50"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="redoDeleteVisualComponentCommand" components="//@coreModel/@components.27" description="redo delete visual component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.51"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.DeleteVisualComponentCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="undoAddComponentCommand" components="//@coreModel/@components.19" description="undo add component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.52"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand"/> + </extendedData> + <preconditions name="undoAddComponent Mapping" value="mapping( undoAddComponent Mapping, undoCommand, GEF Modify UCM, none, General AddComponent Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="redoAddComponentCommand" components="//@coreModel/@components.19" description="redo add component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.53"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddComponentCommand"/> + </extendedData> + <preconditions name="redoAddComponent Mapping" value="mapping( redoAddComponent Mapping, redoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.15" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="executeAddPortCommand" components="//@coreModel/@components.29" description="execution of the add port command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.54"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand"/> + </extendedData> + <preconditions name="executeAddPortMapping" value="mapping( executeAddPortMapping, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.11" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.6" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="undoAddPortCommand" components="//@coreModel/@components.29" description="undo the add port command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.55"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand"/> + </extendedData> + <preconditions name="undoAddPortMapping" value="mapping( undoAddPortMapping, undoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.11" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="redoAddPortCommand" components="//@coreModel/@components.29" description="redo the add port command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.56"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddPortCommand"/> + </extendedData> + <preconditions name="redoAddPortMapping" value="mapping( redoAddPortMapping, redoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.11" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="componentModelAddPort" components="//@coreModel/@components.3" description="addition of a port to a component model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.57"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.2/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(java\.lang\.Object\):void" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </responsibilities> + <responsibilities name="componentTreeNotifyPortAdded" components="//@coreModel/@components.22" description="notification to the component tree edit part that a port was added to the component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.58"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- arguments(Tag, [Notification]), snapshotField(Notification, field(Name, Value)), stringContains(Name, '#newValue:'), stringContains(Value, 'PortModel'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart"/> + </extendedData> + <preconditions name="portAddNotifyMapping" value="mapping( portAddNotifyMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.12" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.13" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showTreePortVisuals" components="//@coreModel/@components.31" description="show the tree port visuals"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.59"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart#getImage\(\):org\.eclipse\.swt\.graphics\.Image|org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart#getText\(\):java\.lang\.String|org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart#<init>\(org\.isistan\.flabot\.coremodel\.PortModel\)" classPattern="org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.PortTreeEditPart"/> + </extendedData> + <preconditions name="showPortTreeVisualsMapping" value="mapping( showPortTreeVisualsMapping, setTreeWidget, GEF Create TreeEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.12" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.14" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="hideTreePortVisuals" components="//@coreModel/@components.31" description="hide the tree port visuals"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + </responsibilities> + <responsibilities name="componentVisualAddPortVisual" components="//@coreModel/@components.30" description="addition of a port's visual model to the component visual model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.61"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.2/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="componentEditPartNotifyPortVisualAdded" components="//@coreModel/@components.2" description="notification to the component edit part that a port visual model was added"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.62"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.2/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="notifyVisualPortAddedMapping" value="mapping( notifyVisualPortAddedMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.13" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.16" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="createPortFigure" components="//@coreModel/@components.32" description="creation of the port figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.63"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.PortFigure#<init>\(\)" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.PortFigure" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.PortFigure"/> + </extendedData> + <preconditions name="createPortFigureMapping" value="mapping( createPortFigureMapping, contructFigure, GEF Create GraphicalEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.4" event="//@coreModel/@events.0" family="//@coreModel/@families.13" sourceResponsibility="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.17" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="executeAddRelationshipCommand" components="//@coreModel/@components.34" description="execute the add component relationship command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.64"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand"/> + </extendedData> + <preconditions name="executeAddRelationshipMapping" value="mapping( executeAddRelationshipMapping, executeCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.14" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="undoAddRelationshipCommand" components="//@coreModel/@components.34" description="undo the add component relationship command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.65"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand"/> + </extendedData> + <preconditions name="undoAddRelationshipMapping" value="mapping( undoAddRelationshipMapping, undoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.14" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="redoAddRelationshipCommand" components="//@coreModel/@components.34" description="redo the add component relationship command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.66"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.visual\.AddRelationshipConnectionCommand"/> + </extendedData> + <preconditions name="redoAddRelationshipMapping" value="mapping( redoAddRelationshipMapping, redoCommand, GEF Modify UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.14" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="componentVisualModelAddSourceConnection" components="//@coreModel/@components.30" description="add a source connection to a component visual node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.67"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.2/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, coreModelAddRelationship, Add Component Relationship, none )." useCaseMap="//@coreModel/@useCaseMaps.9" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.18" dependencyResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.23"/> + </responsibilities> + <responsibilities name="componentVisualModelAddTargetConnection" components="//@coreModel/@components.30" description="add a target connection to a component visual node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.68"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.2/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, coreModelAddRelationship, Add Component Relationship, none )." useCaseMap="//@coreModel/@useCaseMaps.9" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.11" dependencyResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.23"/> + </responsibilities> + <responsibilities name="refreshSourceConnections" components="//@coreModel/@components.36" description="refresh the source connections of a node edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.69"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#refreshSourceConnections\(\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="refreshTargetConnections" components="//@coreModel/@components.36" description="refresh the target connections of a node edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.70"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#refreshTargetConnections\(\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="nodeEditPartAddSourceConnection" components="//@coreModel/@components.36" description="add a source connection ot a node edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.71"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#addSourceConnection\(org\.eclipse\.gef\.ConnectionEditPart,int\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="nodeEditPartAddTargetConnection" components="//@coreModel/@components.36" description="add a target connection to a node edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.72"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart#addTargetConnection\(org\.eclipse\.gef\.ConnectionEditPart,int\):void" classPattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart" javaFilePattern="org\.eclipse\.gef\.editparts\.AbstractGraphicalEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="createConnectionEditPart" components="//@coreModel/@components.37" description="creation of a connection edit part"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.73"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef|org\.eclipse\.gef\.editparts" behaviorPattern="org\.eclipse\.gef\.ConnectionEditPart#<init>\(\)|org\.eclipse\.gef\.editparts\.AbstractConnectionEditPart#<init>\(\)" classPattern="org\.eclipse\.gef\.ConnectionEditPart|org\.eclipse\.gef\.editparts\.AbstractConnectionEditPart" javaFilePattern="org\.eclipse\.gef\.ConnectionEditPart\.|org\.eclipse\.gef\.editparts\.AbstractConnectionEditPart\."/> + </extendedData> + </responsibilities> + <responsibilities name="componentEditPartNotifySourceConnectionAdded" components="//@coreModel/@components.2" description="notification to the component edit part that a source connection was added"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.74"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="componentEditPartNotifyTargetConnectionAdded" components="//@coreModel/@components.2" description="notification to the component edit part that a target connection was added"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.75"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="createLineConnectionFigure" components="//@coreModel/@components.38" description="creation of the line connection figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.76"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.editor\.figures\.LineConnection#<init>\(int,int,org\.eclipse\.swt\.graphics\.Color\)" classPattern="org\.isistan\.flabot\.edit\.editor\.figures\.LineConnection" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.figures\.LineConnection"/> + </extendedData> + <preconditions name="createConnectionFigureMapping" value="mapping( createConnectionFigureMapping, contructFigure, GEF EditPart Refresh Connections, none )." useCaseMap="//@coreModel/@useCaseMaps.10" event="//@coreModel/@events.0" family="//@coreModel/@families.15" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.22" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.11"/> + </responsibilities> + <responsibilities name="coreModelAddRelationship" components="//@coreModel/@components.17" description="addition of a relationship to the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.77"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.2/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="coreModelTreeNotifyRelationshipAdded" components="//@coreModel/@components.18" description="notification to the core model tree edit part that a relationship has been added to the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.78"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + <preconditions name="notifyRelationshipAddedMapping" value="mapping( notifyRelationshipAddedMapping, notifyChanged, EMF Notification UCM, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.17" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.24" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showRelationshipTreeVisuals" components="//@coreModel/@components.40" description="show the relationship's visual properties in the outline tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:StateFromMappingStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.79"/> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <preconditions name="showRelationshipVisualsMapping" value="mapping( showRelationshipVisualsMapping, setTreeWidget, GEF Create TreeEditPart, none )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.17" sourceResponsibility="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.25" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="undoAddResponsibilityCommand" components="//@coreModel/@components.41" description="undo the add responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.80"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand"/> + </extendedData> + <preconditions name="undoAddResponsibilityMapping" value="mapping( undoAddResponsibilityMapping, undoCommandAction, GEF Modify UCM With Action, none, General Add Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.39" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + </responsibilities> + <responsibilities name="redoAddResponsibilityCommand" components="//@coreModel/@components.41" description="redo the add responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.81"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand"/> + </extendedData> + <preconditions name="undoAddResponsibilityMapping" value="mapping( undoAddResponsibilityMapping, redoCommandAction, GEF Modify UCM With Action, none, General Add Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.39" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="executeAddResponsibilityCommand" components="//@coreModel/@components.41" description="execute the add responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.82"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToCoreCommand"/> + </extendedData> + <preconditions name="executeAddResponsibilityMapping" value="mapping( executeAddResponsibilityMapping, executeCommand, GEF Modify UCM With Action, none, General Add Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.39" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.20"/> + </responsibilities> + <responsibilities name="coreModelAddResponsibility" components="//@coreModel/@components.17" description="addition of a responsibility to the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.83"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="fireResponsibilityAddedNotification" value="mapping( fireResponsibilityAddedNotification, notifyAdapters, EMF Notification UCM, none, Outline AddResponsibility Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.23" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.9" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="coreModelTreeNotifyResponsibilityAdded" components="//@coreModel/@components.18" description="the core model tree edit part is notified of a responsibility addition in the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.84"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + <preconditions name="notifyResponsibilityAddedEMFMapping" value="mapping( notifyResponsibilityAddedEMFMapping, notifyChanged, EMF Notification UCM, none, Outline AddResponsibility Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.23" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.12" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showTreeResponsibilityVisualProperties" components="//@coreModel/@components.42" description="showing the responsibility in the outline tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.85"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart#getImage\(\):org\.eclipse\.swt\.graphics\.Image|org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart#getText\(\):java\.lang\.String|org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart#<init>\(org\.isistan\.flabot\.coremodel\.Responsibility\)" classPattern="org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ResponsibilityTreeEditPart"/> + </extendedData> + <preconditions name="setResponsibilityTreeWidgetMapping" value="mapping( setResponsibilityTreeWidgetMapping, setTreeWidget, GEF Create TreeEditPart, none, Outline AddResponsibility Family )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.23" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.17" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="executeRemoveResponsibilityCommand" components="//@coreModel/@components.43" description="execute the remove responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.86"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand"/> + </extendedData> + <preconditions name="executeRemoveResponsibilityMapping" value="mapping( executeRemoveResponsibilityMapping, executeCommand, GEF Modify UCM, none, General RemoveResponsibility Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.28" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="redoRemoveCoreResponsibilityCommand" components="//@coreModel/@components.43" description="redo remove core responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.87"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand"/> + </extendedData> + <preconditions name="redoRemoveResponsibilityMapping" value="mapping( redoRemoveResponsibilityMapping, redoCommand, GEF Modify UCM, none, General RemoveResponsibility Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.28" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoRemoveCoreResponsibilityCommand" components="//@coreModel/@components.43" description="undo remove core responsibility"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.88"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteResponsibilityCommand"/> + </extendedData> + <preconditions name="undoRemoveResponsibilityMapping" value="mapping( undoRemoveResponsibilityMapping, undoCommand, GEF Modify UCM, none, General RemoveResponsibility Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.28" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="executeAddComponentRoleCommand" components="//@coreModel/@components.44" description="execution of an add component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.89"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand"/> + </extendedData> + <preconditions name="executeComponentRoleMapping" value="mapping( executeComponentRoleMapping, executeCommand, GEF Modify UCM, none, Genereal AddComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.18" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="redoAddComponentRoleCommand" components="//@coreModel/@components.44" description="redo add role component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.90"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand"/> + </extendedData> + <preconditions name="redoAddComponentRoleMapping" value="mapping( redoAddComponentRoleMapping, redoCommand, GEF Modify UCM, none, Genereal AddComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.18" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoAddComponentRoleCommand" components="//@coreModel/@components.44" description="undo add role component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.91"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertComponentRoleCommand"/> + </extendedData> + <preconditions name="undoAddComponentRoleMapping" value="mapping( undoAddComponentRoleMapping, undoCommand, GEF Modify UCM, none, Genereal AddComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.18" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="useCaseMapModelAddComponentRole" components="//@coreModel/@components.64" description="a component role addition to a use case map"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.92"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- argument(Tag, Argument), snapshotObject(Argument, Object), objectClass(Object, Class), classDescriptor(Class, Descriptor), stringContains(Descriptor, 'ComponentRole'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="coreModelAddComponentRoleMapping" value="mapping( coreModelAddComponentRoleMapping, notifyAdapters, EMF Notification UCM, none, Outline Component Role Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.19" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.14" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="mapTreeNotifyComponentRoleAdded" components="//@coreModel/@components.47" description="the map tree edit part is notified of a component role addition in the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.93"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.4/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart"/> + </extendedData> + <preconditions name="mapTreeNotifyComponentRoleMapping" value="mapping( mapTreeNotifyComponentRoleMapping, notifyChanged, EMF Notification UCM, none, Outline Component Role Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.19" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.15" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showTreeComponentRoleVisualProperties" components="//@coreModel/@components.48" description="showing the component role in the outline tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.94"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart#getImage\(\):org\.eclipse\.swt\.graphics\.Image|org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart#getText\(\):java\.lang\.String" classPattern="org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentRoleTreeEditPart"/> + </extendedData> + <preconditions name="showTreeComponentRoleMapping" value="mapping( showTreeComponentRoleMapping, setTreeWidget, GEF Create TreeEditPart, none, Outline Component Role Add Family )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.19" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.17" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="ucmDiagramAddVisualComponentRoleModel" components="//@coreModel/@components.45" description="addition of a visual model component role to a UCM diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.95"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.4/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\."/> + </extendedData> + <preconditions name="ucmDiagramAddVisualMapping" value="mapping( ucmDiagramAddVisualMapping, notifyAdapters, EMF Notification UCM, none, Component Role UCM Diagram Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.20" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.19" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="ucmDiagramNotifyVisualModelAdded" components="//@coreModel/@components.46" description="notification of a visual model addition in the diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.96"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.4/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="createComponentRoleFigure" components="//@coreModel/@components.49" description="create a component role figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.97"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.editor\.figures\.ComponentFigure#<init>\(org\.eclipse\.swt\.graphics\.RGB,org\.eclipse\.swt\.graphics\.RGB,int\)" classPattern="org\.isistan\.flabot\.edit\.editor\.figures\.ComponentFigure" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.figures\.ComponentFigure"/> + </extendedData> + <preconditions name="createComponentRoleFigureMapping" value="mapping( createComponentRoleFigureMapping, constructFigure, GEF Create GraphicalEditPart, none, Component Role UCM Diagram Add Family )." useCaseMap="//@coreModel/@useCaseMaps.4" event="//@coreModel/@events.0" family="//@coreModel/@families.20" sourceResponsibility="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.24" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="coreModelTreeNotifyResponsibilityRemoved" components="//@coreModel/@components.18" description="the core model tree edit part is notified that a responsibility has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.98"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.CoreModelTreeEditPart"/> + </extendedData> + <preconditions name="notifyResponsibilityRemovedEMFMapping" value="mapping( notifyResponsibilityRemovedEMFMapping, notifyChanged, EMF Notification UCM, none, Outline Responsibility Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.29" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="hideTreeResponsibilityVisuals" components="//@coreModel/@components.42" description="hide the responsibility visual widget in the tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:StateFromMappingStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.99"/> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <preconditions name="hideTreeComponentVisuals" value="mapping( hideTreeComponentVisuals, unsetTreeWidget, GEF Create TreeEditPart, none, Outline Responsibility Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.29" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.10" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="coreModelRemoveResponsibility" components="//@coreModel/@components.17" description="a responsibility is removed from the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.100"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#removeAll\(java\.util\.Collection\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="coreModelRemoveResponsibilityMapping" value="mapping( coreModelRemoveResponsibilityMapping, notifyAdapters, EMF Notification UCM, none, Remove Responsibility Notify to Visual Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.30" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="responsibilityNodeEditPartNotifyResponsibilityRemoved" components="//@coreModel/@components.50" description="a responsibility node edit part is notified that its core responsibility model has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.101"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.3/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart"/> + </extendedData> + <preconditions name="removeResponsibility" value="precondition( removeResponsibility, coreModelRemoveResponsibility, Remove Responsibility, none )." useCaseMap="//@coreModel/@useCaseMaps.12" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.5" dependencyResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13"/> + <preconditions name="notifyRemoveResponsibility" value="mapping( notifyRemoveResponsibility, notifyAdapters, EMF Notification UCM, none, Remove Responsibility Notify to Visual Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.30" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="executeDeleteVisualResponsibilityNodeCommand" components="//@coreModel/@components.51" description="execution of the delete visual responsibility node command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.102"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand"/> + </extendedData> + <preconditions name="removeResponsibility" value="precondition( removeResponsibility, executeRemoveResponsibilityCommand, Remove Responsibility, none )." useCaseMap="//@coreModel/@useCaseMaps.12" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.8" dependencyResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="redoDeleteVisualResponsibilityNodeCommand" components="//@coreModel/@components.51" description="redo delete visual responsibility node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.103"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="undoDeleteVisualResponsibilityNodeCommand" components="//@coreModel/@components.51" description="undo delete visual responsibility node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.104"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeletePathNodeCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="componentEditPartNotifyResponsibilityUnassigned" components="//@coreModel/@components.2" description="one of the component's responsibilities was unassigned"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.105"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.3/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="notifyResponsibilityRemovedEMFMapping" value="mapping( notifyResponsibilityRemovedEMFMapping, notifyChanged, EMF Notification UCM, none, Remove Responsibility Notify to Visual Component Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.32" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.21" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="refreshFigure" components="//@coreModel/@components.24" description="updates the figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.106"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure#outlineShape\(org\.eclipse\.draw2d\.Graphics\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.figures\.ComponentFigure"/> + </extendedData> + </responsibilities> + <responsibilities name="ucmDiagramRemoveComponentRoleVisualModel" components="//@coreModel/@components.45" description="remove a visual component role model from the ucm diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.107"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- argument(Tag, Argument), snapshotObject(Argument, Object), objectClass(Object, Class), classDescriptor(Class, Descriptor), stringContains(Descriptor, 'VisualModel'), snapshotField(Argument, field(FieldName, FieldValue)), stringContains(FieldName, '#semanticModel'), stringContains(FieldValue, 'ComponentRole'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="ucmDiagramNotifyVisualModelRemoved" components="//@coreModel/@components.46" description="notification to the diagram that a visual model has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.108"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- arguments(Tag, [Notification]), snapshotField(Notification, field(NotifierFieldName, NotifierFieldValue)), stringContains(NotifierFieldName, '#notifier:'), stringContains(NotifierFieldValue, 'UCMDiagram'), snapshotField(Notification, field(OldValueFieldName, OldValueValue)), stringContains(OldValueFieldName, '#oldValue:'), stringContains(OldValueValue, 'VisualModel'), snapshotField(Notification, field(NewValueFieldName, NewValueValue)), stringContains(NewValueFieldName, '#newValue:'), stringsEqual(NewValueValue, 'null'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.UCMDiagramEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="umcDiagramRemoveChildFigure" components="//@coreModel/@components.46" description="removal of a child figure from the ucm diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.109"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + </responsibilities> + <responsibilities name="executeAssingResponsibilityCommand" components="//@coreModel/@components.52" description="execute the assignation of a responsibility to a component command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.110"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand"/> + </extendedData> + <preconditions name="executeAssignResponsibilityMapping" value="mapping( executeAssignResponsibilityMapping, executeCommand, GEF Modify UCM With Action, none, General Assing Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.40" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.20"/> + </responsibilities> + <responsibilities name="redoAssingResponsibility" components="//@coreModel/@components.52" description="redo assing responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.111"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand"/> + </extendedData> + <preconditions name="redoAssignResponsibilityMapping" value="mapping( redoAssignResponsibilityMapping, redoCommandAction, GEF Modify UCM With Action, none, General Assing Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.40" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.8" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoAssingResponsibilityCommand" components="//@coreModel/@components.52" description="undo assing responsibility command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.112"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.commands\.model\.AddResponsibilityToComponentCommand"/> + </extendedData> + <preconditions name="undoAssignResponsibilityMapping" value="mapping( undoAssignResponsibilityMapping, undoCommandAction, GEF Modify UCM With Action, none, General Assing Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.40" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + </responsibilities> + <responsibilities name="componentEditPartNotifyResponsibilityAssigned" components="//@coreModel/@components.2" description="one of the component's responsibilities was assigned"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.113"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.5/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="coreModelEditPartNotifyAssingResponsibility" value="mapping( coreModelEditPartNotifyAssingResponsibility, notifyChanged, EMF Notification UCM, none, Assing Responsibility Edit Part Notification )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.35" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="componentModelAssingResponsibility" components="//@coreModel/@components.3" description="assings a responsibility to the component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.114"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#assign\(int,java\.lang\.Object\):java\.lang\.Object|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList#<init>\(java\.lang\.Class,org\.eclipse\.emf\.ecore\.InternalEObject,int\)|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList#hasProxies\(\):boolean|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList#resolve\(int,java\.lang\.Object\):java\.lang\.Object|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse#<init>\(java\.lang\.Class,org\.eclipse\.emf\.ecore\.InternalEObject,int,int\)|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse#hasManyInverse\(\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectResolvingEList\.|org\.eclipse\.emf\.ecore\.util\.EObjectWithInverseEList\$ManyInverse\."/> + </extendedData> + <preconditions name="fireAssingResponsibilityNotification" value="mapping( fireAssingResponsibilityNotification, notifyAdapters, EMF Notification UCM, none, Assing Responsibility Outline Notification )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.34" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.24" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="componentModelUnassingResponsibility" components="//@coreModel/@components.3" description="unassings the responsibility from the component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.115"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#remove\(int\):java\.lang\.Object|org\.eclipse\.emf\.common\.util\.DelegatingEList#remove\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="coreModelRemoveResponsibilityMapping" value="mapping( coreModelRemoveResponsibilityMapping, notifyAdapters, EMF Notification UCM, none, Remove Responsibility Notify to Visual Component Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.32" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.26" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="executeRomoveComponentRoleCommand" components="//@coreModel/@components.53" description="execution of a remove component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.116"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand"/> + </extendedData> + <preconditions name="executeRemoveComponentRoleMapping" value="mapping( executeRemoveComponentRoleMapping, executeCommand, GEF Modify UCM, none, General RemoveComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.21" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.9" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="redoRemoveComponentRoleCommand" components="//@coreModel/@components.53" description="redo remove component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.117"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand"/> + </extendedData> + <preconditions name="redoRemoveComponentRoleCommand" value="mapping( redoRemoveComponentRoleCommand, redoCommand, GEF Modify UCM, none, General RemoveComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.21" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.11" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoRemoveComponentRoleCommand" components="//@coreModel/@components.53" description="undo remove role component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.118"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand#undo\(\):void|org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand#undoDeleteComponentRole\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand"/> + </extendedData> + <preconditions name="undoRemoveComponentRoleMapping" value="mapping( undoRemoveComponentRoleMapping, undoCommand, GEF Modify UCM, none, General RemoveComponentRole Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.21" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="componentTreeNotifyResponsibilityAssigned" components="//@coreModel/@components.22" description="notification to the component tree edit part that a responsibility was assigned to the component"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.119"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.ComponentTreeEditPart"/> + </extendedData> + <preconditions name="coreModelTreeNotifyAssingResponsibility" value="mapping( coreModelTreeNotifyAssingResponsibility, notifyChanged, EMF Notification UCM, none, Assing Responsibility Outline Notification )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.34" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.19" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="executeDeleteVisualComponentRoleCommand" components="//@coreModel/@components.54" description="execute the remove component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.120"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="redoDeleteVisualComponentRoleCommand" components="//@coreModel/@components.54" description="redo delete visual component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="undoDeleteVisualComponentRoleCommand" components="//@coreModel/@components.54" description="undo delete visual component role command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.DeleteVisualComponentRoleCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="useCaseMapRemoveComponentRole" components="//@coreModel/@components.64" description="a component role is removed from the use case map"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.123"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.4/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#remove\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="coreModelRemoveComponentRoleMapping" value="mapping( coreModelRemoveComponentRoleMapping, notifyAdapters, EMF Notification UCM, none, Outline ComponentRole Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.22" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="hideTreeComponentRoleVisuals" components="//@coreModel/@components.48" description="hide the component role visual widget in the tree"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:StateFromMappingStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.124"/> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <preconditions name="hideTreeComponentRoleVisuals" value="mapping( hideTreeComponentRoleVisuals, unsetTreeWidget, GEF Create TreeEditPart, none, Outline ComponentRole Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.22" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="mapTreeNotifyComponentRoleRemoved" components="//@coreModel/@components.47" description="the map tree edit part is notified of a component role removed in the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.125"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3/@persistentList.4" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart"/> + </extendedData> + <preconditions name="notifyComponentRoleRemovedEMFMapping" value="mapping( notifyComponentRoleRemovedEMFMapping, notifyChanged, EMF Notification UCM, none, Outline ComponentRole Remove Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.22" sourceResponsibility="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="componentRoleEditPartNotifyComponentRoleRemoved" components="//@coreModel/@components.55" description="a component role edit part is notified that its core component role model has been removed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.126"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="executeInsertResponsibilityNodeCommand" components="//@coreModel/@components.56" description="execute the insert responsibility node command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.127"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand"/> + </extendedData> + <preconditions name="executeInsertResponsibilityNodeMapping" value="mapping( executeInsertResponsibilityNodeMapping, executeCommand, GEF Modify UCM With Action, none, General Insert Responsibility Node Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.38" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17"/> + </responsibilities> + <responsibilities name="redoInsertResponsibilityNodeCommand" components="//@coreModel/@components.56" description="redo insert responsibility node command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.128"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand"/> + </extendedData> + <preconditions name="redoInsertResponsibilityNodeMapping" value="mapping( redoInsertResponsibilityNodeMapping, redoCommandAction, GEF Modify UCM With Action, none, General Insert Responsibility Node Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.38" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoInsertResponsibilityNodeCommand" components="//@coreModel/@components.56" description="undo insert responsibility node command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.129"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand"/> + </extendedData> + <preconditions name="undoInsertResponsibilityNodeMapping" value="mapping( undoInsertResponsibilityNodeMapping, undoCommandAction, GEF Modify UCM With Action, none, General Insert Responsibility Node Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.38" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + </responsibilities> + <responsibilities name="pathNodeModelAddNext" components="//@coreModel/@components.57" description="add a next path node to this node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.130"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + </responsibilities> + <responsibilities name="pathNodeModelAddPrevious" components="//@coreModel/@components.57" description="add a previous path node to this node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.131"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.DelegatingEList|org\.eclipse\.emf\.common\.util\.BasicEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.common\.util\.BasicEList\."/> + </extendedData> + </responsibilities> + <responsibilities name="executeCreatePathCommand" components="//@coreModel/@components.59" description="execute the create path command "> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.132"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand"/> + </extendedData> + <preconditions name="executeCreatePathMapping" value="mapping( executeCreatePathMapping, executeCommand, GEF Modify UCM, none, General AddPath Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.24" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.18" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="redoCreatePathCommand" components="//@coreModel/@components.59" description="redo the create path command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.133"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand"/> + </extendedData> + <preconditions name="redoCreatePathMapping" value="mapping( redoCreatePathMapping, executeCommand, GEF Modify UCM, none, General AddPath Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.24" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.10" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + </responsibilities> + <responsibilities name="undoCreatePathCommand" components="//@coreModel/@components.59" description="undo the create path command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.134"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.PathNodeCreateCommand"/> + </extendedData> + <preconditions name="undoCreatePathMapping" value="mapping( undoCreatePathMapping, undoCommand, GEF Modify UCM, none, General AddPath Command GEF Family )." useCaseMap="//@coreModel/@useCaseMaps.2" event="//@coreModel/@events.0" family="//@coreModel/@families.24" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + </responsibilities> + <responsibilities name="createResponsibilityNodeFigure" components="//@coreModel/@components.61" description="creates a new responsibility node figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.135"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure#<init>\(org\.eclipse\.draw2d\.IFigure,org\.eclipse\.swt\.graphics\.RGB\)|org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure#<init>\(org\.eclipse\.swt\.graphics\.RGB\)" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.ResponsibilityNodeFigure"/> + </extendedData> + <preconditions name="ucmDiagramAddVisualMapping" value="mapping( ucmDiagramAddVisualMapping, constructFigure, GEF Create GraphicalEditPart, none, Insert ResponsibilityNode UCM Diagram Add Family )." useCaseMap="//@coreModel/@useCaseMaps.4" event="//@coreModel/@events.0" family="//@coreModel/@families.42" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.14" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="pathModelAddPathNode" components="//@coreModel/@components.60" description="add a new path node to this path"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.136"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#addUnique\(java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#addUnique\(java\.lang\.Object\):void" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + </responsibilities> + <responsibilities name="useCaseMapModelAddPath" components="//@coreModel/@components.64" description="addition of a path to the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.137"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="useCaseMapModellAddPathMapping" value="mapping( useCaseMapModellAddPathMapping, notifyAdapters, EMF Notification UCM, none, Outline Path Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.25" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.47" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="createPathNodeFigure" components="//@coreModel/@components.62" description="create a new path node figure"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.138"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.PathPointFigure#<init>\(org\.eclipse\.swt\.graphics\.RGB\)" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.PathPointFigure" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.figures\.PathPointFigure"/> + </extendedData> + <preconditions name="createPathNodeFigureMapping" value="mapping( createPathNodeFigureMapping, constructFigure, GEF Create GraphicalEditPart, none, UCM Diagram Add Path )." useCaseMap="//@coreModel/@useCaseMaps.4" event="//@coreModel/@events.0" family="//@coreModel/@families.27" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.37" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="coreModelTreeNotifyPathAdded" components="//@coreModel/@components.18" description="the core model tree edit part is notified of a path addition in the core model"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + </responsibilities> + <responsibilities name="mapTreeNotifyPathAdded" components="//@coreModel/@components.47" description="the map tree edit part is notified of a path addition in the map"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.140"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.UseCaseMapTreeEditPart"/> + </extendedData> + <preconditions name="notifyPathAddedEMFMapping" value="mapping( notifyPathAddedEMFMapping, notifyChanged, EMF Notification UCM, none, Outline Path Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.25" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.48" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="showTreePathVisuals" components="//@coreModel/@components.63"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.141"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.outline" behaviorPattern="org\.isistan\.flabot\.edit\.outline\.StartPointEditPart#getImage\(\):org\.eclipse\.swt\.graphics\.Image|org\.isistan\.flabot\.edit\.outline\.StartPointEditPart#getText\(\):java\.lang\.String" classPattern="org\.isistan\.flabot\.edit\.outline\.StartPointEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.outline\.StartPointEditPart"/> + </extendedData> + <preconditions name="showTreePathMapping" value="mapping( showTreePathMapping, setTreeWidget, GEF Create TreeEditPart, none, Outline Path Add Family )." useCaseMap="//@coreModel/@useCaseMaps.5" event="//@coreModel/@events.0" family="//@coreModel/@families.25" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.50" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="executeAddConditionCommand" components="//@coreModel/@components.67" description="execute the add condition command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.142"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand#execute\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand"/> + </extendedData> + <preconditions name="executeAddConditionMapping" value="mapping( executeAddConditionMapping, executeCommand, GEF Modify UCM With Action, none, General Add Condition Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.36" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17"/> + </responsibilities> + <responsibilities name="redoAddConditionCommand" components="//@coreModel/@components.67" description="redo the add condition command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.143"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand#redo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand"/> + </extendedData> + <preconditions name="redoAddConditionMapping" value="mapping( redoAddConditionMapping, redoCommandAction, GEF Modify UCM With Action, none, General Add Condition Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.36" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3"/> + </responsibilities> + <responsibilities name="undoAddConditionCommand" components="//@coreModel/@components.67" description="undo the add condition command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.144"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand#undo\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.AddConditionToResponsibilityCommand"/> + </extendedData> + <preconditions name="undoAddConditionMapping" value="mapping( undoAddConditionMapping, undoCommandAction, GEF Modify UCM With Action, none, General Add Condition Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.36" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + </responsibilities> + <responsibilities name="ucmDiagramAddVisualStartPathNodeModel" components="//@coreModel/@components.45" description="addition of a visual model start path node to a UCM diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.145"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.4" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="addStartPathNodePrecondition" value="precondition( addStartPathNodePrecondition, useCaseMapModelAddPath, Specify Path, none )." useCaseMap="//@coreModel/@useCaseMaps.17" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.29" dependencyResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.47"/> + <preconditions name="startNodeAdded" value="mapping( startNodeAdded, notifyAdapters, EMF Notification UCM, none, UCM Diagram Add Path )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.27" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.29" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="ucmDiagramAddVisualEndPathNodeModel" components="//@coreModel/@components.45" description="addition of a visual model end path node to a UCM diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.146"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.3/@persistentList.5" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="addEndPathNodePrecondition" value="precondition( addEndPathNodePrecondition, pathModelAddPathNode, Specify Path, none )." useCaseMap="//@coreModel/@useCaseMaps.17" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.30" dependencyResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.46"/> + <preconditions name="endNodeAdded" value="mapping( endNodeAdded, registerAdapter, EMF Notification UCM, none, UCM Diagram Add Path )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.27" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.30" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4"/> + </responsibilities> + <responsibilities name="calculateEnabled" components="//@coreModel/@components.71" description="checks if the action can be performed"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.147"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.jface\.action" behaviorPattern="org\.eclipse\.jface\.action\.Action#isEnabled\(\):boolean" classPattern="org\.eclipse\.jface\.action\.Action" javaFilePattern="org\.eclipse\.jface\.action\.Action\."/> + </extendedData> + </responsibilities> + <responsibilities name="run" components="//@coreModel/@components.71" description="executes the action"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.148"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.jface\.action" behaviorPattern="org\.eclipse\.jface\.action\.Action#run\(\):void" classPattern="org\.eclipse\.jface\.action\.Action" javaFilePattern="org\.eclipse\.jface\.action\.Action\."/> + </extendedData> + </responsibilities> + <responsibilities name="executeCommand" components="//@coreModel/@components.72" description="executes a command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.149"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.editor" behaviorPattern="org\.isistan\.flabot\.edit\.editor\.CommandExecutor#executeCommand\(org\.eclipse\.gef\.commands\.Command,boolean\):void" classPattern="org\.isistan\.flabot\.edit\.editor\.CommandExecutor" javaFilePattern="org\.isistan\.flabot\.edit\.editor\.CommandExecutor"/> + </extendedData> + </responsibilities> + <responsibilities name="isEditResponsibilityNodeActionEnabled" components="//@coreModel/@components.74" description="checks if EditResponsibiliyNodeAction is enabled"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + </responsibilities> + <responsibilities name="runEditResponsibilityNodeAction" components="//@coreModel/@components.74" description="runs the action EditResponsibilityNodeAction"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.151"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.EditResponsibilityNodeAction#run\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.EditResponsibilityNodeAction" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.EditResponsibilityNodeAction"/> + </extendedData> + <preconditions name="runAddConditionMapping" value="mapping( runAddConditionMapping, run, GEF Modify UCM With Action, none, General Add Condition Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.36" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.8" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="responsibilityModelAddCondition" components="//@coreModel/@components.70" description="notifies when a condition is added to a responsibility"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.152"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="responsibilityAddConditionMapping" value="mapping( responsibilityAddConditionMapping, notifyAdapters, EMF Notification UCM, none, Add Condition Notify to Responsibilities Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.37" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.11" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="responsibilityNodeNotifyConditionAdded" components="//@coreModel/@components.50" description="the responsibility node edit part is notified of a condition addition to a responsibility"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.153"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ResponsibilityNodeEditPart"/> + </extendedData> + <preconditions name="notifyResponsibilityNodeAddConditionEMFMapping" value="mapping( notifyResponsibilityNodeAddConditionEMFMapping, notifyChanged, EMF Notification UCM, none, Add Condition Notify to Responsibilities Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.37" sourceResponsibility="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.13" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="responsibilityNodeNotifyConditionRemoved" components="//@coreModel/@components.50" description="the responsibility node edit part is notified of a condition removal of a responsibility"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + </responsibilities> + <responsibilities name="undoLastCommandAction" components="//@coreModel/@components.6" description="undo the last command that was added to this command stack"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.155"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.CommandStack#undo\(\):void" classPattern="org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + <preconditions name="commandAdded" value="precondition( commandAdded, addCommandToStack, GEF Modify UCM With Action, none )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.2" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.10"/> + </responsibilities> + <responsibilities name="redoLastUndoneCommandAction" components="//@coreModel/@components.6" description="redo the last undone command in this command stack"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.156"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.CommandStack#redo\(\):void" classPattern="org\.eclipse\.gef\.commands\.CommandStack" javaFilePattern="org\.eclipse\.gef\.commands\.CommandStack\."/> + </extendedData> + <preconditions name="lastCommandUndoneAction" value="precondition( lastCommandUndoneAction, undoLastCommandAction, GEF Modify UCM With Action, none )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.5" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.2"/> + </responsibilities> + <responsibilities name="undoCommandAction" components="//@coreModel/@components.5" description="undo the command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.157"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#undo\(\):void" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + <preconditions name="commandExecuted" value="precondition( commandExecuted, executeCommand, GEF Modify UCM With Action, none )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17"/> + </responsibilities> + <responsibilities name="redoCommandAction" components="//@coreModel/@components.5" description="redo the command"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.158"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.gef\.commands" behaviorPattern="org\.eclipse\.gef\.commands\.Command#redo\(\):void" classPattern="org\.eclipse\.gef\.commands\.Command" javaFilePattern="org\.eclipse\.gef\.commands\.Command\."/> + </extendedData> + <preconditions name="commandUndone" value="precondition( commandUndone, undoCommandAction, GEF Modify UCM With Action, none )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + </responsibilities> + <responsibilities name="runInsertResponsibilityNodeAction" components="//@coreModel/@components.76" description="runs the action InsertResponsibilityNodeAction"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.159"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.InsertResponsibilityAction#run\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.InsertResponsibilityAction" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.actions\.InsertResponsibilityAction"/> + </extendedData> + <preconditions name="runInsertResponsibilityNodeMapping" value="mapping( runInsertResponsibilityNodeMapping, run, GEF Modify UCM With Action, none, General Insert Responsibility Node Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.38" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.17" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="runEditResponsibilityAction" components="//@coreModel/@components.77" description="runs the action EditResponsibilityAction"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.160"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.EditResponsibilitiesAction#run\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.EditResponsibilitiesAction" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.EditResponsibilitiesAction"/> + </extendedData> + <preconditions name="runAddResponsibilityMapping" value="mapping( runAddResponsibilityMapping, run, GEF Modify UCM With Action, none, General Add Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.39" sourceResponsibility="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.16" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="runAssignResponsibilityAction" components="//@coreModel/@components.78" description="runs the action AssignResponsibilityAction"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.161"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions" behaviorPattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.AssignResponsibilitiesAction#run\(\):void" classPattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.AssignResponsibilitiesAction" javaFilePattern="org\.isistan\.flabot\.edit\.componenteditor\.actions\.AssignResponsibilitiesAction"/> + </extendedData> + <preconditions name="runAssignResponsibilityMapping" value="mapping( runAssignResponsibilityMapping, run, GEF Modify UCM With Action, none, General Assing Responsibility Action Family )." useCaseMap="//@coreModel/@useCaseMaps.19" event="//@coreModel/@events.0" family="//@coreModel/@families.40" sourceResponsibility="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.16" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7"/> + </responsibilities> + <responsibilities name="ucmDiagramAddVisualResponsibilityNodeModel" components="//@coreModel/@components.30" description="addition of a visual model responsibility node to a UCM diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.162"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, notifyAdapters, EMF Notification UCM, none, Insert ResponsibilityNode UCM Diagram Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.42" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.28" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="ucmDiagramRemoveResponsibilityNodeVisualModel" components="//@coreModel/@components.30" description="remove a visual component responsibility node model from the ucm diagram"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.163"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0/@persistentList.2" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#remove\(int\):java\.lang\.Object|org\.eclipse\.emf\.common\.util\.BasicEList#remove\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseRemove\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, registerAdapter, EMF Notification UCM, none, Remove Visual Responsibility Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.31" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.11" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4"/> + </responsibilities> + <responsibilities name="pathNodeEditPartNotifyTargetConnectionAdded" components="//@coreModel/@components.58"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.164"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="pathNodeEditPartNotifySourceConnectionAdded" components="//@coreModel/@components.58"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.165"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.PathNodeEditPart"/> + </extendedData> + </responsibilities> + <responsibilities name="pathNodeVisualModelAddSourceConnection" components="//@coreModel/@components.30" description="add a source connection to a path visual node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.166"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, pathNodeModelAddNext, Specify Path, none )." useCaseMap="//@coreModel/@useCaseMaps.17" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.59" dependencyResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.42"/> + </responsibilities> + <responsibilities name="pathNodeVisualModelAddTargetConnection" components="//@coreModel/@components.30" description="add a target connection to a path visual node"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.167"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, pathNodeModelAddPrevious, Specify Path, none )." useCaseMap="//@coreModel/@useCaseMaps.17" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.57" dependencyResponsibility="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.45"/> + </responsibilities> + <responsibilities name="doDeleteComponentRoleCommand" components="//@coreModel/@components.53"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.168"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand#doDeleteComponentRole\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.model\.DeleteComponentRoleCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="doInsertResponsibilityNode" components="//@coreModel/@components.56"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.169"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand#doInsertPathNode\(\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.commands\.visual\.InsertPathNodeCommand"/> + </extendedData> + </responsibilities> + <responsibilities name="componentRoleEditPatyNotifyResponsibilityNodeAdded" components="//@coreModel/@components.55"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.170"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, notifyChanged, EMF Notification UCM, none, Insert ResponsibilityNode UCM Diagram Add Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.42" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.30" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="componentRoleEditPartNotifyResponsibilityNodeRemoved" components="//@coreModel/@components.55"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.171"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="responsibilityPreFilter. responsibilityPreFilterAccepts(Tag) :- arguments(Tag, [Notification]), snapshotField(Notification, field(NotifierFieldName, NotifierFieldValue)), stringContains(NotifierFieldName, '#notifier:'), stringContains(NotifierFieldValue, 'VisualModel'), snapshotField(Notification, field(OldValueFieldName, OldValueValue)), stringContains(OldValueFieldName, '#oldValue:'), stringContains(OldValueValue, 'VisualModel'), snapshotField(Notification, field(NewValueFieldName, NewValueValue)), stringContains(NewValueFieldName, '#newValue:'), stringsEqual(NewValueValue, 'null'). executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts" behaviorPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart#notifyChanged\(org\.eclipse\.emf\.common\.notify\.Notification\):void" classPattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart" javaFilePattern="org\.isistan\.flabot\.edit\.ucmeditor\.editparts\.ComponentEditPart"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, notifyChanged, EMF Notification UCM, none, Remove Visual Responsibility Family )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.0" family="//@coreModel/@families.31" sourceResponsibility="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.13" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + </responsibilities> + <responsibilities name="pathNodeAddNextResponsibilityNode" components="//@coreModel/@components.57"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.172"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel|org\.isistan\.flabot\.coremodel\.impl" behaviorPattern="org\.isistan\.flabot\.coremodel\.PathNode#addNext\(org\.isistan\.flabot\.coremodel\.PathNode\):boolean|org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl#addNext\(org\.isistan\.flabot\.coremodel\.PathNode\):boolean" classPattern="org\.isistan\.flabot\.coremodel\.PathNode|org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl" javaFilePattern="org\.isistan\.flabot\.coremodel\.PathNode|org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl"/> + </extendedData> + </responsibilities> + <responsibilities name="pathNodeAddPreviousResponsibilityNode" components="//@coreModel/@components.57"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.173"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.isistan\.flabot\.coremodel\.impl|org\.isistan\.flabot\.coremodel" behaviorPattern="org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl#addPrevious\(org\.isistan\.flabot\.coremodel\.PathNode\):boolean|org\.isistan\.flabot\.coremodel\.PathNode#addPrevious\(org\.isistan\.flabot\.coremodel\.PathNode\):boolean" classPattern="org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl|org\.isistan\.flabot\.coremodel\.PathNode" javaFilePattern="org\.isistan\.flabot\.coremodel\.impl\.PathNodeImpl|org\.isistan\.flabot\.coremodel\.PathNode"/> + </extendedData> + </responsibilities> + <responsibilities name="responsibilityNodeVisualModelAddSourceConnection" components="//@coreModel/@components.30"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.174"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.common\.util|org\.eclipse\.emf\.ecore\.impl" behaviorPattern="org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain" classPattern="org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl" javaFilePattern="org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\.|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, pathNodeAddPreviousResponsibilityNode, Insert Responsibility Node, none )." useCaseMap="//@coreModel/@useCaseMaps.16" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.36" dependencyResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.34"/> + </responsibilities> + <responsibilities name="responsibilityNodeVisualModelAddTargetConnection" components="//@coreModel/@components.30"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.175"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2/@persistentList.1/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="org.isistan.flabot.launcher.filter.filtermodel:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="org\.eclipse\.emf\.ecore\.impl|org\.eclipse\.emf\.common\.util" behaviorPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,java\.lang\.Class,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl#eInverseAdd\(org\.eclipse\.emf\.ecore\.InternalEObject,int,org\.eclipse\.emf\.common\.notify\.NotificationChain\):org\.eclipse\.emf\.common\.notify\.NotificationChain|org\.eclipse\.emf\.common\.util\.BasicEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.BasicEList#add\(java\.lang\.Object\):boolean|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(int,java\.lang\.Object\):void|org\.eclipse\.emf\.common\.util\.DelegatingEList#add\(java\.lang\.Object\):boolean" classPattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl|org\.eclipse\.emf\.common\.util\.BasicEList|org\.eclipse\.emf\.common\.util\.DelegatingEList" javaFilePattern="org\.eclipse\.emf\.ecore\.impl\.BasicEObjectImpl\.|org\.eclipse\.emf\.common\.util\.BasicEList\.|org\.eclipse\.emf\.common\.util\.DelegatingEList\."/> + </extendedData> + <preconditions name="modelAdded" value="precondition( modelAdded, pathNodeAddNextResponsibilityNode, Insert Responsibility Node, none )." useCaseMap="//@coreModel/@useCaseMaps.16" event="//@coreModel/@events.0" sourceResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.38" dependencyResponsibility="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.31"/> + </responsibilities> + <useCaseMaps name="EMF Notification" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.0" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.2" role="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.1" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + </paths> + <componentRoles name="anEObject" component="//@coreModel/@components.0" abstractInfo="RedefinedComponent"/> + <componentRoles name="anAdapter" component="//@coreModel/@components.1" abstractInfo="RedefinedComponent"/> + </useCaseMaps> + <useCaseMaps name="Modify Name Component"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.10" role="//@coreModel/@useCaseMaps.1/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.6" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.9" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.7" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.11" role="//@coreModel/@useCaseMaps.1/@componentRoles.1"/> + </paths> + <componentRoles name="aComponentModel" component="//@coreModel/@components.3"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aModifyCommand" component="//@coreModel/@components.8"/> + <componentRoles name="anEditPolicy" component="//@coreModel/@components.9"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + </useCaseMaps> + <useCaseMaps name="GEF Modify" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.6 //@coreModel/@useCaseMaps.2/@paths.0/@nodes.14" startNodes="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.2/@paths.0/@nodes.7" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.3" role="//@coreModel/@useCaseMaps.2/@componentRoles.0" forkType="1"> + <conditions name="C1"/> + <conditions name="C2"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.2/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.9" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.3" role="//@coreModel/@useCaseMaps.2/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.8" role="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.17" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.4" role="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.17" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.12" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.7" role="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.11" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.12" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.15 //@coreModel/@useCaseMaps.2/@paths.0/@nodes.14" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.6" role="//@coreModel/@useCaseMaps.2/@componentRoles.1" forkType="1"> + <conditions name="canExecute"/> + <conditions name="can'tExecute"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.13" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.15" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.6" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.6" role="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.11"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.46" role="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.45" role="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.2" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.43" role="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.1" startNodes="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.44" role="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.2" next="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.1" map="//@coreModel/@useCaseMaps.2" responsibility="//@coreModel/@responsibilities.47" role="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + </paths> + <componentRoles name="anEditPart" component="//@coreModel/@components.4" abstractInfo="RedefinedComponent"/> + <componentRoles name="aCommand" component="//@coreModel/@components.5" abstractInfo="RedefinedComponent"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.6"/> + <componentRoles name="anEditPolicy" component="//@coreModel/@components.7"/> + </useCaseMaps> + <useCaseMaps name="GEF EditPart Refresh Children" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.3/@paths.0/@nodes.10" startNodes="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.12" role="//@coreModel/@useCaseMaps.3/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.6" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.14" role="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.11" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.15" role="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.8 //@coreModel/@useCaseMaps.3/@paths.0/@nodes.14" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.13" role="//@coreModel/@useCaseMaps.3/@componentRoles.0" forkType="1"> + <conditions name="childAdded"/> + <conditions name="childRemoved"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.13" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.11" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.12" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.28" role="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.14" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.16" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.30" role="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.15" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.18" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.16" next="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.17" map="//@coreModel/@useCaseMaps.3" responsibility="//@coreModel/@responsibilities.29" role="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + </paths> + <componentRoles name="parentEditPart" component="//@coreModel/@components.4" abstractInfo="RedefinedComponent"/> + <componentRoles name="childEditPart" component="//@coreModel/@components.4" abstractInfo="RedefinedComponent"/> + <componentRoles name="anEditPartFactory" component="//@coreModel/@components.11" abstractInfo="RedefinedComponent"/> + </useCaseMaps> + <useCaseMaps name="GEF Create GraphicalEditPart" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.4" responsibility="//@coreModel/@responsibilities.16" role="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.6" map="//@coreModel/@useCaseMaps.4" responsibility="//@coreModel/@responsibilities.18" role="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.4" responsibility="//@coreModel/@responsibilities.26" role="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + </paths> + <componentRoles name="parentEditPart" component="//@coreModel/@components.12" abstractInfo="RedefinedComponent"/> + <componentRoles name="childEditPart" component="//@coreModel/@components.12" abstractInfo="RedefinedComponent"/> + <componentRoles name="childFigure" component="//@coreModel/@components.14" abstractInfo="RedefinedComponent"/> + <componentRoles name="aGraphicalEditPartFactory" component="//@coreModel/@components.11" abstractInfo="RedefinedComponent"/> + </useCaseMaps> + <useCaseMaps name="GEF Create TreeEditPart" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.5" responsibility="//@coreModel/@responsibilities.17" role="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.5" responsibility="//@coreModel/@responsibilities.19" role="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.5" responsibility="//@coreModel/@responsibilities.31" role="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.5" responsibility="//@coreModel/@responsibilities.32" role="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + </paths> + <componentRoles name="parentTreeEditPart" component="//@coreModel/@components.13" abstractInfo="RedefinedComponent"/> + <componentRoles name="childTreeEditPart" component="//@coreModel/@components.13" abstractInfo="RedefinedComponent"/> + <componentRoles name="aTreeEditPartFactory" component="//@coreModel/@components.11" abstractInfo="RedefinedComponent"/> + </useCaseMaps> + <useCaseMaps name="Add Component"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.3" startNodes="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.0 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.16"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.21"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.14" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.12 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.13" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.53" role="//@coreModel/@useCaseMaps.6/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.19" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.20" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.22" role="//@coreModel/@useCaseMaps.6/@componentRoles.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.20" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.21" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.23" role="//@coreModel/@useCaseMaps.6/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.13" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.7" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.24" role="//@coreModel/@useCaseMaps.6/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.9" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.25" role="//@coreModel/@useCaseMaps.6/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.27" role="//@coreModel/@useCaseMaps.6/@componentRoles.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.12" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.19" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.21" role="//@coreModel/@useCaseMaps.6/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.15" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.17 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.18" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.14" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.53" role="//@coreModel/@useCaseMaps.6/@componentRoles.4" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.16" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.15" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.20" role="//@coreModel/@useCaseMaps.6/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.11" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.6" responsibility="//@coreModel/@responsibilities.52" role="//@coreModel/@useCaseMaps.6/@componentRoles.4"/> + </paths> + <componentRoles name="aComponentDiagramEditPart" component="//@coreModel/@components.15"/> + <componentRoles name="aComponentDiagramModel" component="//@coreModel/@components.16"/> + <componentRoles name="aCoreModel" component="//@coreModel/@components.17"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="anAddComponentCommand" component="//@coreModel/@components.19"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="aLayoutPolicy" component="//@coreModel/@components.20"/> + <componentRoles name="treeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aComponentTreeEditPart" component="//@coreModel/@components.22"/> + <componentRoles name="cdFactory" component="//@coreModel/@components.23"/> + <componentRoles name="aComponentFigure" component="//@coreModel/@components.24"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + </useCaseMaps> + <useCaseMaps name="Remove Component From Outline"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.8 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.12" startNodes="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.34" role="//@coreModel/@useCaseMaps.7/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.5" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.35" role="//@coreModel/@useCaseMaps.7/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.33" role="//@coreModel/@useCaseMaps.7/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.41" role="//@coreModel/@useCaseMaps.7/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.6 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.9" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.49" role="//@coreModel/@useCaseMaps.7/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.11 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.13" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.49" role="//@coreModel/@useCaseMaps.7/@componentRoles.0" forkType="1"> + <conditions name="visualWasUnRemoved"/> + <conditions name="visualWasn'tUnRemoved"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.13" next="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.8" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.51" role="//@coreModel/@useCaseMaps.7/@componentRoles.9"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.36" role="//@coreModel/@useCaseMaps.7/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.37" role="//@coreModel/@useCaseMaps.7/@componentRoles.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.6" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.38" role="//@coreModel/@useCaseMaps.7/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.2" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.39" role="//@coreModel/@useCaseMaps.7/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.40" role="//@coreModel/@useCaseMaps.7/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.42" role="//@coreModel/@useCaseMaps.7/@componentRoles.3"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.1 //@coreModel/@useCaseMaps.7/@paths.2/@nodes.6" startNodes="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.2 //@coreModel/@useCaseMaps.7/@paths.2/@nodes.5" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.48" role="//@coreModel/@useCaseMaps.7/@componentRoles.0" forkType="1"> + <conditions name="visualWasRemoved"/> + <conditions name="visualWasn'tRemoved"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.2" next="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.1" map="//@coreModel/@useCaseMaps.7" responsibility="//@coreModel/@responsibilities.50" role="//@coreModel/@useCaseMaps.7/@componentRoles.9"/> + </paths> + <componentRoles name="aRemoveCoreCommand" component="//@coreModel/@components.25"/> + <componentRoles name="aCoreModel" component="//@coreModel/@components.17"/> + <componentRoles name="aComponentDiagramModel" component="//@coreModel/@components.16"/> + <componentRoles name="aComponentDiagramEditPart" component="//@coreModel/@components.15"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aComponentTreeEditPart" component="//@coreModel/@components.22"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="aComponentEditPolicy" component="//@coreModel/@components.26"/> + <componentRoles name="aDeleteVisualCommand" component="//@coreModel/@components.27"/> + <componentRoles name="aTreeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aDiagramFactory" component="//@coreModel/@components.23"/> + </useCaseMaps> + <useCaseMaps name="Add Port"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.55" role="//@coreModel/@useCaseMaps.8/@componentRoles.2"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.11" startNodes="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.4"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.56" role="//@coreModel/@useCaseMaps.8/@componentRoles.2" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.5" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.54" role="//@coreModel/@useCaseMaps.8/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.8 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.10" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.56" role="//@coreModel/@useCaseMaps.8/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.57" role="//@coreModel/@useCaseMaps.8/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.14" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.58" role="//@coreModel/@useCaseMaps.8/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.59" role="//@coreModel/@useCaseMaps.8/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.16" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.61" role="//@coreModel/@useCaseMaps.8/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.17" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.62" role="//@coreModel/@useCaseMaps.8/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.11" map="//@coreModel/@useCaseMaps.8" responsibility="//@coreModel/@responsibilities.63" role="//@coreModel/@useCaseMaps.8/@componentRoles.9"/> + </paths> + <componentRoles name="aComponentLayoutPolicy" component="//@coreModel/@components.28"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="anAddPortCommand" component="//@coreModel/@components.29"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aComponentModel" component="//@coreModel/@components.3"/> + <componentRoles name="aComponentTreeEditPart" component="//@coreModel/@components.22"/> + <componentRoles name="aComponentVisualModel" component="//@coreModel/@components.30"/> + <componentRoles name="aTreeEditPartFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aPortTreeEditPart" component="//@coreModel/@components.31"/> + <componentRoles name="aPortFigure" component="//@coreModel/@components.32"/> + <componentRoles name="aCDEditPart" component="//@coreModel/@components.23"/> + <componentRoles name="aPortEditPart" component="//@coreModel/@components.33"/> + </useCaseMaps> + <useCaseMaps name="Add Component Relationship"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.65" role="//@coreModel/@useCaseMaps.9/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.10 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.17" startNodes="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.6"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.25"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.64" role="//@coreModel/@useCaseMaps.9/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.3 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.12" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.66" role="//@coreModel/@useCaseMaps.9/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.8 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.66" role="//@coreModel/@useCaseMaps.9/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.20"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.21" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.68" role="//@coreModel/@useCaseMaps.9/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.14 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.16" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.66" role="//@coreModel/@useCaseMaps.9/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.22"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.19" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.67" role="//@coreModel/@useCaseMaps.9/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.18" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.22" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.74" role="//@coreModel/@useCaseMaps.9/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.21" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.20" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.75" role="//@coreModel/@useCaseMaps.9/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.19" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.17" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.76" role="//@coreModel/@useCaseMaps.9/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.24" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.77" role="//@coreModel/@useCaseMaps.9/@componentRoles.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.23" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.25" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.78" role="//@coreModel/@useCaseMaps.9/@componentRoles.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.24" next="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.9" responsibility="//@coreModel/@responsibilities.79" role="//@coreModel/@useCaseMaps.9/@componentRoles.14"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.34"/> + <componentRoles name="aComponentEditPolicy" component="//@coreModel/@components.35"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="sourceComponentVisual" component="//@coreModel/@components.30"/> + <componentRoles name="targetComponentVisual" component="//@coreModel/@components.30"/> + <componentRoles name="sourceComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="targetComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aLineFigure" component="//@coreModel/@components.38"/> + <componentRoles name="aCDFactory" component="//@coreModel/@components.23"/> + <componentRoles name="aRelationshipEditPart" component="//@coreModel/@components.39"/> + <componentRoles name="aCoreModel" component="//@coreModel/@components.17"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + <componentRoles name="aTreeEditPartFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aRelationshipTreeEditPart" component="//@coreModel/@components.40"/> + </useCaseMaps> + <useCaseMaps name="GEF EditPart Refresh Connections" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.0" startNodes="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.9"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.7 //@coreModel/@useCaseMaps.10/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.10" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.71" role="//@coreModel/@useCaseMaps.10/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.2" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.73" role="//@coreModel/@useCaseMaps.10/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.12" role="//@coreModel/@useCaseMaps.10/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.5 //@coreModel/@useCaseMaps.10/@paths.0/@nodes.7" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.69" role="//@coreModel/@useCaseMaps.10/@componentRoles.0" forkType="1"> + <conditions name="mustCreate"/> + <conditions name="alreadyExists"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.1" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.0" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.26" role="//@coreModel/@useCaseMaps.10/@componentRoles.3"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.0" startNodes="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.9"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.10/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.10" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.72" role="//@coreModel/@useCaseMaps.10/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.2" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.73" role="//@coreModel/@useCaseMaps.10/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.12" role="//@coreModel/@useCaseMaps.10/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.7 //@coreModel/@useCaseMaps.10/@paths.1/@nodes.5" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.70" role="//@coreModel/@useCaseMaps.10/@componentRoles.0" forkType="1"> + <conditions name="alreadyExists"/> + <conditions name="mustCreate"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.1" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.0" map="//@coreModel/@useCaseMaps.10" responsibility="//@coreModel/@responsibilities.26" role="//@coreModel/@useCaseMaps.10/@componentRoles.3"/> + </paths> + <componentRoles name="aNodeEditPart" component="//@coreModel/@components.36" abstractInfo="RedefinedComponent"/> + <componentRoles name="anEditPartFactory" component="//@coreModel/@components.11" abstractInfo="RedefinedComponent"/> + <componentRoles name="aConnectionEditPart" component="//@coreModel/@components.37" abstractInfo="RedefinedComponent"/> + <componentRoles name="aConnectionFigure" component="//@coreModel/@components.14" abstractInfo="RedefinedComponent"/> + </useCaseMaps> + <useCaseMaps name="Add Responsibility"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.80" role="//@coreModel/@useCaseMaps.11/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.7"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.82" role="//@coreModel/@useCaseMaps.11/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.4 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.2" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.81" role="//@coreModel/@useCaseMaps.11/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.8" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.83" role="//@coreModel/@useCaseMaps.11/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.11" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.84" role="//@coreModel/@useCaseMaps.11/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.17" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.15" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.160" role="//@coreModel/@useCaseMaps.11/@componentRoles.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.11" responsibility="//@coreModel/@responsibilities.85" role="//@coreModel/@useCaseMaps.11/@componentRoles.5"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.41"/> + <componentRoles name="aCoreModel" component="//@coreModel/@components.17"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="aLayout" component="//@coreModel/@components.20"/> + <componentRoles name="aResponsibilityTreeEditPart" component="//@coreModel/@components.42"/> + <componentRoles name="aTreeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aResponsibilityEditPart" component="//@coreModel/@components.50"/> + <componentRoles name="aCommandExecutor" component="//@coreModel/@components.75"/> + <componentRoles name="anAction" component="//@coreModel/@components.77"/> + </useCaseMaps> + <useCaseMaps name="Remove Responsibility"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.6 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.17" startNodes="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.86" role="//@coreModel/@useCaseMaps.12/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.11 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.15" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.87" role="//@coreModel/@useCaseMaps.12/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.12" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.8" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.98" role="//@coreModel/@useCaseMaps.12/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.9" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.99" role="//@coreModel/@useCaseMaps.12/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.11" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.12" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.100" role="//@coreModel/@useCaseMaps.12/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.20" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.5" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.15" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.19 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.24" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.87" role="//@coreModel/@useCaseMaps.12/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.23" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.16" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.20"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.19" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.14" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.103" role="//@coreModel/@useCaseMaps.12/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.25" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.22" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.105" role="//@coreModel/@useCaseMaps.12/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.21" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.22" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.18" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.106" role="//@coreModel/@useCaseMaps.12/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.16" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.26"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.26" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.21"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.24" next="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.25" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.115" role="//@coreModel/@useCaseMaps.12/@componentRoles.9"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.6" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.36" role="//@coreModel/@useCaseMaps.12/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.101" role="//@coreModel/@useCaseMaps.12/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.102" role="//@coreModel/@useCaseMaps.12/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.12" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.163" role="//@coreModel/@useCaseMaps.12/@componentRoles.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.9" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.171" role="//@coreModel/@useCaseMaps.12/@componentRoles.13"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.1" startNodes="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.2" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.4" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.88" role="//@coreModel/@useCaseMaps.12/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.6" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.4" next="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.5" map="//@coreModel/@useCaseMaps.12" responsibility="//@coreModel/@responsibilities.104" role="//@coreModel/@useCaseMaps.12/@componentRoles.6"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.43"/> + <componentRoles name="aCoreModel" component="//@coreModel/@components.17"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + <componentRoles name="aResponsibilityTreeEditPart" component="//@coreModel/@components.42"/> + <componentRoles name="aResponsibilityNodeEditPart" component="//@coreModel/@components.50"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="aVisualDeleteCommand" component="//@coreModel/@components.51"/> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aComponentFigure" component="//@coreModel/@components.24"/> + <componentRoles name="aComponentModel" component="//@coreModel/@components.3"/> + <componentRoles name="aEditPolicy" component="//@coreModel/@components.69"/> + <componentRoles name="aTreeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aEditPartFactory" component="//@coreModel/@components.65"/> + <componentRoles name="aComponentRoleEditPart" component="//@coreModel/@components.55"/> + <componentRoles name="aComponentVisualModel" component="//@coreModel/@components.30"/> + </useCaseMaps> + <useCaseMaps name="Add Component Role"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.2" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.91" role="//@coreModel/@useCaseMaps.13/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.11" startNodes="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.4"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.8" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.90" role="//@coreModel/@useCaseMaps.13/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.6" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.89" role="//@coreModel/@useCaseMaps.13/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.9 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.18" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.90" role="//@coreModel/@useCaseMaps.13/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.92" role="//@coreModel/@useCaseMaps.13/@componentRoles.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.16" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.93" role="//@coreModel/@useCaseMaps.13/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.94" role="//@coreModel/@useCaseMaps.13/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.19"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.18" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.20" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.95" role="//@coreModel/@useCaseMaps.13/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.19" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.21"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.20" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.22" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.96" role="//@coreModel/@useCaseMaps.13/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.21" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.24"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.24" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.22" next="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.23" map="//@coreModel/@useCaseMaps.13" responsibility="//@coreModel/@responsibilities.97" role="//@coreModel/@useCaseMaps.13/@componentRoles.5"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.44"/> + <componentRoles name="aUCMDiagramModel" component="//@coreModel/@components.45"/> + <componentRoles name="aUCMDiagramEditPart" component="//@coreModel/@components.46"/> + <componentRoles name="aMapTreeEditPart" component="//@coreModel/@components.47"/> + <componentRoles name="aComponentRoleEditPart" component="//@coreModel/@components.48"/> + <componentRoles name="aComponentRoleFigure" component="//@coreModel/@components.49"/> + <componentRoles name="aFlabotCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="treeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aUCMFactory" component="//@coreModel/@components.65"/> + <componentRoles name="aLayoutPolicy" component="//@coreModel/@components.66"/> + <componentRoles name="aComponentRoleEditPart" component="//@coreModel/@components.55"/> + <componentRoles name="aUseCaseMapModel" component="//@coreModel/@components.64"/> + </useCaseMaps> + <useCaseMaps name="Remove Component Role"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.118" role="//@coreModel/@useCaseMaps.14/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.0" startNodes="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.12"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.14" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.123" role="//@coreModel/@useCaseMaps.14/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.124" role="//@coreModel/@useCaseMaps.14/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.6" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.125" role="//@coreModel/@useCaseMaps.14/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.1" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.10" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.116" role="//@coreModel/@useCaseMaps.14/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.10 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.17" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.168" role="//@coreModel/@useCaseMaps.14/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.18" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.17" map="//@coreModel/@useCaseMaps.14" responsibility="//@coreModel/@responsibilities.117" role="//@coreModel/@useCaseMaps.14/@componentRoles.0"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.53"/> + <componentRoles name="aCoreModelTreeEditPart" component="//@coreModel/@components.18"/> + <componentRoles name="aMapTreeEditPart" component="//@coreModel/@components.47"/> + <componentRoles name="aComponentRoleEditPart" component="//@coreModel/@components.48"/> + <componentRoles name="treeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aUCMFactory" component="//@coreModel/@components.65"/> + <componentRoles name="aComponentRoleEditPolicy" component="//@coreModel/@components.68"/> + <componentRoles name="aUseCaseMapModel" component="//@coreModel/@components.64"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + </useCaseMaps> + <useCaseMaps name="Assign Responsibility to Component"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.112" role="//@coreModel/@useCaseMaps.15/@componentRoles.2"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.23" startNodes="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.10"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.110" role="//@coreModel/@useCaseMaps.15/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.113" role="//@coreModel/@useCaseMaps.15/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.5" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.106" role="//@coreModel/@useCaseMaps.15/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.7 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.11" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.111" role="//@coreModel/@useCaseMaps.15/@componentRoles.2" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.24"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.24" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.15" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.161" role="//@coreModel/@useCaseMaps.15/@componentRoles.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.24" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.17" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.19"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.18" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.20" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.119" role="//@coreModel/@useCaseMaps.15/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.19" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.21"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.20" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.22" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.85" role="//@coreModel/@useCaseMaps.15/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.21" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.22"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.13 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.17" map="//@coreModel/@useCaseMaps.15" responsibility="//@coreModel/@responsibilities.114" role="//@coreModel/@useCaseMaps.15/@componentRoles.3"/> + </paths> + <componentRoles name="aComponentEditPart" component="//@coreModel/@components.2"/> + <componentRoles name="aComponentFigure" component="//@coreModel/@components.24"/> + <componentRoles name="aCommand" component="//@coreModel/@components.52"/> + <componentRoles name="aComponentModel" component="//@coreModel/@components.3"/> + <componentRoles name="aComponentTreeEditPart" component="//@coreModel/@components.22"/> + <componentRoles name="aTreeEditPartFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aResponsibilityTreeEditPart" component="//@coreModel/@components.42"/> + <componentRoles name="aCommandExecutor" component="//@coreModel/@components.75"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="anAction" component="//@coreModel/@components.78"/> + </useCaseMaps> + <useCaseMaps name="Insert Responsibility Node"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.129" role="//@coreModel/@useCaseMaps.16/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.4 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.11" startNodes="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.24"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.33"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.16" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.21" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.127" role="//@coreModel/@useCaseMaps.16/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.22" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.5 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.169" role="//@coreModel/@useCaseMaps.16/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.28"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.10 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.36" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.169" role="//@coreModel/@useCaseMaps.16/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.38"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.19"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.31"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.28" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.30"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.29" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.8" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.135" role="//@coreModel/@useCaseMaps.16/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.17" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.16" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.159" role="//@coreModel/@useCaseMaps.16/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.35" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.165" role="//@coreModel/@useCaseMaps.16/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.20" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.37" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.19" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.164" role="//@coreModel/@useCaseMaps.16/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.23" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.21 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.26" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.22" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.169" role="//@coreModel/@useCaseMaps.16/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.25"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.24" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.27"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.27" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.25" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.26" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.128" role="//@coreModel/@useCaseMaps.16/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.162" role="//@coreModel/@useCaseMaps.16/@componentRoles.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.30" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.29" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.170" role="//@coreModel/@useCaseMaps.16/@componentRoles.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.12" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.32" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.172" role="//@coreModel/@useCaseMaps.16/@componentRoles.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.31" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.34"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.34" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.32" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.33" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.173" role="//@coreModel/@useCaseMaps.16/@componentRoles.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.36" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.35" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.174" role="//@coreModel/@useCaseMaps.16/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.38" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.20"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.37" map="//@coreModel/@useCaseMaps.16" responsibility="//@coreModel/@responsibilities.175" role="//@coreModel/@useCaseMaps.16/@componentRoles.1"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.56"/> + <componentRoles name="targetPathNodeVisual" component="//@coreModel/@components.30"/> + <componentRoles name="sourcePathNodeVisual" component="//@coreModel/@components.30"/> + <componentRoles name="aResponsibilityNodeFigure" component="//@coreModel/@components.61"/> + <componentRoles name="anAction" component="//@coreModel/@components.76"/> + <componentRoles name="aCommandExecutor" component="//@coreModel/@components.75"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + <componentRoles name="targetPathNodeEditPart" component="//@coreModel/@components.58"/> + <componentRoles name="sourcePathNodeEditPart" component="//@coreModel/@components.58"/> + <componentRoles name="aUCMFactory" component="//@coreModel/@components.65"/> + <componentRoles name="anEditPart" component="//@coreModel/@components.50"/> + <componentRoles name="aComponentRoleVisualModel" component="//@coreModel/@components.30"/> + <componentRoles name="aComponentRoleEditPart" component="//@coreModel/@components.55"/> + <componentRoles name="aLayoutpolicy" component="//@coreModel/@components.79"/> + <componentRoles name="aPathNode" component="//@coreModel/@components.57"/> + </useCaseMaps> + <useCaseMaps name="Specify Path"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.134" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.6 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.12 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.16 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.24 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.54" startNodes="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.20"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.36"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.29"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.1 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.28" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.133" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.28" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.47"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.47" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.52"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.49"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.17" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.7 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.9" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.133" role="//@coreModel/@useCaseMaps.17/@componentRoles.0" forkType="1"> + <conditions name="anyPathNodeSelected"/> + <conditions name="nonePathNodeSelected"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.11 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.13" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.133" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.21"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.41"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.15"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.14" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.30"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.63"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.18" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.19" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.17" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.132" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.20" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.19"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.46"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.46" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.23"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.22" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.40 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.43" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.133" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.44"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.39" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.26"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.25" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.27"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.26" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.53"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.1" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.31" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.145" role="//@coreModel/@useCaseMaps.17/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.15" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.33" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.146" role="//@coreModel/@useCaseMaps.17/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.29" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.32"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.31" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.35" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.96" role="//@coreModel/@useCaseMaps.17/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.30" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.34"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.33" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.38" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.96" role="//@coreModel/@useCaseMaps.17/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.32" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.37"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.37" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.35" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.36" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.138" role="//@coreModel/@useCaseMaps.17/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.34" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.39"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.38" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.25" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.138" role="//@coreModel/@useCaseMaps.17/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.23" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.42"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.42" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.40" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.41" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.130" role="//@coreModel/@useCaseMaps.17/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.23" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.45"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.45" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.24"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.43" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.44" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.131" role="//@coreModel/@useCaseMaps.17/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.21" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.22" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.136" role="//@coreModel/@useCaseMaps.17/@componentRoles.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.137" role="//@coreModel/@useCaseMaps.17/@componentRoles.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.51" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.50" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.140" role="//@coreModel/@useCaseMaps.17/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.50" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.48" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.49" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.141" role="//@coreModel/@useCaseMaps.17/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.52" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.48"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.51" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.136" role="//@coreModel/@useCaseMaps.17/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.27" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.56 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.58" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.133" role="//@coreModel/@useCaseMaps.17/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.60"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.59" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.61"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.53" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.57"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.56" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.62" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.167" role="//@coreModel/@useCaseMaps.17/@componentRoles.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.53" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.59"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.58" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.55" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.166" role="//@coreModel/@useCaseMaps.17/@componentRoles.18"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.61" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.54"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.55" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.60" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.165" role="//@coreModel/@useCaseMaps.17/@componentRoles.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.57" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.64"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.64" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.62" next="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.63" map="//@coreModel/@useCaseMaps.17" responsibility="//@coreModel/@responsibilities.164" role="//@coreModel/@useCaseMaps.17/@componentRoles.15"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.59"/> + <componentRoles name="aPathModel" component="//@coreModel/@components.60"/> + <componentRoles name="aMapTreeEditPart" component="//@coreModel/@components.47"/> + <componentRoles name="aUCMDiagramModel" component="//@coreModel/@components.45"/> + <componentRoles name="aUCMDiagramEditPart" component="//@coreModel/@components.46"/> + <componentRoles name="aPathNodeFigure" component="//@coreModel/@components.62"/> + <componentRoles name="aPathTreeEditPart" component="//@coreModel/@components.63"/> + <componentRoles name="nextNode" component="//@coreModel/@components.57"/> + <componentRoles name="previousNode" component="//@coreModel/@components.57"/> + <componentRoles name="aPathModel" component="//@coreModel/@components.60"/> + <componentRoles name="aUseCaseMapModel" component="//@coreModel/@components.64"/> + <componentRoles name="aLayoutPolicy" component="//@coreModel/@components.66"/> + <componentRoles name="aCommandStarck" component="//@coreModel/@components.10"/> + <componentRoles name="aTreeFactory" component="//@coreModel/@components.21"/> + <componentRoles name="aPathNodeEditPart" component="//@coreModel/@components.58"/> + <componentRoles name="targetPathNodeEditPart" component="//@coreModel/@components.58"/> + <componentRoles name="sourcePathNodeEditPart" component="//@coreModel/@components.58"/> + <componentRoles name="targetPathNodeVisual" component="//@coreModel/@components.30"/> + <componentRoles name="sourcePathNodeVisual" component="//@coreModel/@components.30"/> + </useCaseMaps> + <useCaseMaps name="Add Condition"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.144" role="//@coreModel/@useCaseMaps.18/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.0 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.5"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.142" role="//@coreModel/@useCaseMaps.18/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:JoinNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.4 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.9" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.143" role="//@coreModel/@useCaseMaps.18/@componentRoles.0" joinType="1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.8" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.6" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.7" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.151" role="//@coreModel/@useCaseMaps.18/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.11"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.11" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.9" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.10" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.152" role="//@coreModel/@useCaseMaps.18/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.13" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.10" next="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.12" map="//@coreModel/@useCaseMaps.18" responsibility="//@coreModel/@responsibilities.153" role="//@coreModel/@useCaseMaps.18/@componentRoles.1"/> + </paths> + <componentRoles name="aCommand" component="//@coreModel/@components.67"/> + <componentRoles name="aResponsibilityNodeEditPart" component="//@coreModel/@components.50"/> + <componentRoles name="aResponsibilityModel" component="//@coreModel/@components.70"/> + <componentRoles name="anEditAction" component="//@coreModel/@components.74"/> + <componentRoles name="aCommandExecutor" component="//@coreModel/@components.75"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.10"/> + </useCaseMaps> + <useCaseMaps name="GEF Modify UCM With Action" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.1 //@coreModel/@useCaseMaps.19/@paths.0/@nodes.5 //@coreModel/@useCaseMaps.19/@paths.0/@nodes.14" startNodes="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.3 //@coreModel/@useCaseMaps.19/@paths.0/@nodes.6" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.147" role="//@coreModel/@useCaseMaps.19/@componentRoles.0" forkType="1"> + <conditions name="actionDisabled"/> + <conditions name="actionEnabled"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.16"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.6" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.18" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.148" role="//@coreModel/@useCaseMaps.19/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.19" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.9" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.4" role="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.8" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.9" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.11" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.7" role="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.10" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.12"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.11" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.13 //@coreModel/@useCaseMaps.19/@paths.0/@nodes.15" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.5" role="//@coreModel/@useCaseMaps.19/@componentRoles.2" forkType="1"> + <conditions name="canExecute"/> + <conditions name="can'tExecute"/> + </nodes> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.12" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.14"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.13"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.12" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.15" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.16" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.6" role="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.20"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.20" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.18" next="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.19" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.149" role="//@coreModel/@useCaseMaps.19/@componentRoles.3"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.155" role="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.5" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.46" role="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.5" next="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.6" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.157" role="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.1" startNodes="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.4" next="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.2" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.158" role="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.5" next="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.4" map="//@coreModel/@useCaseMaps.19" responsibility="//@coreModel/@responsibilities.156" role="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + </paths> + <componentRoles name="anAction" component="//@coreModel/@components.71" abstractInfo="RedefinedComponent"/> + <componentRoles name="aCommandStack" component="//@coreModel/@components.6"/> + <componentRoles name="aCommand" component="//@coreModel/@components.5" abstractInfo="RedefinedComponent"/> + <componentRoles name="aCommandExecutor" component="//@coreModel/@components.72"/> + </useCaseMaps> + <interfaceLinks source="//@coreModel/@components.7/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.0/@requireds.0"/> + <relationships stereotype="//@coreModel/@stereotypes.0" source="//@coreModel/@components.12" target="//@coreModel/@components.4" direction="Target"/> + <relationships stereotype="//@coreModel/@stereotypes.0" source="//@coreModel/@components.13" target="//@coreModel/@components.4" direction="Target"/> + <relationships stereotype="//@coreModel/@stereotypes.0" source="//@coreModel/@components.49" target="//@coreModel/@components.24" direction="Target"/> + <relationships stereotype="//@coreModel/@stereotypes.0" source="//@coreModel/@components.62" target="//@coreModel/@components.61" direction="Target"/> + <stereotypes name="extends"/> + <families name="EMF Component Property Change Notification to ComponentEditPart Family" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.8 //@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="EMF Component Property Change Notification to ComponentEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="EMF Component Property Change Notification to ComponentEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + </families> + <families name="GEF Component Property Modification Family" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="GEF Component Property Modification Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="GEF Component Property Modification Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="GEF Component Property Modification Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="GEF Component Property Modification Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + </families> + <families name="GEF Create GraphicalEditPart Family" associatedResponsibilities="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.3" functionalUseCaseMaps="//@coreModel/@useCaseMaps.4"> + <familyElement name="GEF Create GraphicalEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <familyElement name="GEF Create GraphicalEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <familyElement name="GEF Create GraphicalEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.2"/> + </families> + <families name="GEF Create TreeEditPart Family" associatedResponsibilities="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.2 //@coreModel/@useCaseMaps.5/@paths.1/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.3" functionalUseCaseMaps="//@coreModel/@useCaseMaps.5"> + <familyElement name="GEF Create TreeEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <familyElement name="GEF Create TreeEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <familyElement name="GEF Create TreeEditPart Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.2"/> + </families> + <families name="General AddComponent Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.17 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.15 //@coreModel/@useCaseMaps.6/@paths.1/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.6"> + <familyElement name="General AddComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General AddComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General AddComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General AddComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline Component Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.5 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.11" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.6"> + <familyElement name="Outline Component Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Component Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Component Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Component Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Component Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + </families> + <families name="Component Diagram Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.8 //@coreModel/@useCaseMaps.6/@paths.0/@nodes.10" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.4" functionalUseCaseMaps="//@coreModel/@useCaseMaps.6"> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + <familyElement name="Component Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.6/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3"/> + </families> + <families name="General RemoveComponent Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.7"> + <familyElement name="General RemoveComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General RemoveComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General RemoveComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General RemoveComponent Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + </families> + <families name="Outline Component Remove Family" associatedResponsibilities="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.3 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.5 //@coreModel/@useCaseMaps.7/@paths.0/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.7"> + <familyElement name="Outline Component Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Component Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Component Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Component Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Component Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + </families> + <families name="Remove Component Notify to Visual Family" associatedResponsibilities="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.7"> + <familyElement name="Remove Component Notify to Visual Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Remove Component Notify to Visual Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + </families> + <families name="Remove Visual Component Family" associatedResponsibilities="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.4 //@coreModel/@useCaseMaps.7/@paths.1/@nodes.6 //@coreModel/@useCaseMaps.7/@paths.1/@nodes.7" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.3" functionalUseCaseMaps="//@coreModel/@useCaseMaps.7"> + <familyElement name="Remove Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Remove Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Remove Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <familyElement name="Remove Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <familyElement name="Remove Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.7/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.2"/> + </families> + <families name="General Add Port GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.2 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.6 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.8"> + <familyElement name="General Add Port GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General Add Port GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General Add Port GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General Add Port GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline Port Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.13 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.14" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.8"> + <familyElement name="Outline Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Component Diagram Port Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.16 //@coreModel/@useCaseMaps.8/@paths.1/@nodes.17" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.4" functionalUseCaseMaps="//@coreModel/@useCaseMaps.8"> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + <familyElement name="Component Diagram Port Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.8/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="General Component Relationship Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9 //@coreModel/@useCaseMaps.9/@paths.0/@nodes.2 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.9"> + <familyElement name="General Component Relationship Add Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General Component Relationship Add Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General Component Relationship Add Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General Component Relationship Add Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Add Source Connection Family" associatedResponsibilities="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.22" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.10" functionalUseCaseMaps="//@coreModel/@useCaseMaps.9"> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.10" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.10/@componentRoles.0"/> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.10" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.10/@componentRoles.1"/> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.10" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.10/@componentRoles.2"/> + <familyElement name="Add Source Connection Family" useCaseMap="//@coreModel/@useCaseMaps.10" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.10/@componentRoles.3"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Add Target Connection Family" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.9"> + <familyElement name="Add Target Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Add Target Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Outline Add Relationship Family" associatedResponsibilities="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.24 //@coreModel/@useCaseMaps.9/@paths.1/@nodes.25" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.9"> + <familyElement name="Outline Add Relationship Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Add Relationship Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Add Relationship Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Add Relationship Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.14" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Add Relationship Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.9/@componentRoles.13" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Genereal AddComponentRole Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.7 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.13"> + <familyElement name="Genereal AddComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="Genereal AddComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="Genereal AddComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="Genereal AddComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline Component Role Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.17 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.14 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.15" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.13"> + <familyElement name="Outline Component Role Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Component Role Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Component Role Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Component Role Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Component Role Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Component Role UCM Diagram Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.24 //@coreModel/@useCaseMaps.13/@paths.1/@nodes.19" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.4" functionalUseCaseMaps="//@coreModel/@useCaseMaps.13"> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + <familyElement name="Component Role UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.13/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="General RemoveComponentRole Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.3 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.11 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.9" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.14"> + <familyElement name="General RemoveComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General RemoveComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General RemoveComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General RemoveComponentRole Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline ComponentRole Remove Family" associatedResponsibilities="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.7 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.4 //@coreModel/@useCaseMaps.14/@paths.1/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.14"> + <familyElement name="Outline ComponentRole Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline ComponentRole Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline ComponentRole Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline ComponentRole Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline ComponentRole Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.14/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Outline AddResponsibility Family" associatedResponsibilities="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.9 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.12 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.17" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.11"> + <familyElement name="Outline AddResponsibility Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline AddResponsibility Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline AddResponsibility Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline AddResponsibility Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline AddResponsibility Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="General AddPath Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.18 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.10" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.17"> + <familyElement name="General AddPath Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General AddPath Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General AddPath Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General AddPath Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline Path Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.48 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.50 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.47" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.17"> + <familyElement name="Outline Path Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Path Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Path Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Path Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Path Add Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.13" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Add Target Path Connection Family" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.17"> + <familyElement name="Add Target Path Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.17" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Add Target Path Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.15" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="UCM Diagram Add Path" associatedResponsibilities="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.37 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.30 //@coreModel/@useCaseMaps.17/@paths.1/@nodes.29" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.4" functionalUseCaseMaps="//@coreModel/@useCaseMaps.17"> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.14" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + <familyElement name="UCM Diagram Add Path" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.13" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="General RemoveResponsibility Command GEF Family" associatedResponsibilities="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.5 //@coreModel/@useCaseMaps.12/@paths.2/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.2" functionalUseCaseMaps="//@coreModel/@useCaseMaps.12"> + <familyElement name="General RemoveResponsibility Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.0"/> + <familyElement name="General RemoveResponsibility Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.1"/> + <familyElement name="General RemoveResponsibility Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.2"/> + <familyElement name="General RemoveResponsibility Command GEF Family" useCaseMap="//@coreModel/@useCaseMaps.2" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.2/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Outline Responsibility Remove Family" associatedResponsibilities="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.10 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.7" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.12"> + <familyElement name="Outline Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Remove Responsibility Notify to Visual Family" associatedResponsibilities="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13 //@coreModel/@useCaseMaps.12/@paths.1/@nodes.5" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.12"> + <familyElement name="Remove Responsibility Notify to Visual Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Remove Responsibility Notify to Visual Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Remove Visual Responsibility Family" associatedResponsibilities="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.11 //@coreModel/@useCaseMaps.12/@paths.1/@nodes.13" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.3" functionalUseCaseMaps="//@coreModel/@useCaseMaps.12"> + <familyElement name="Remove Visual Responsibility Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.14" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Remove Visual Responsibility Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.13" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Remove Visual Responsibility Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.13" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.0"/> + <familyElement name="Remove Visual Responsibility Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.1"/> + <familyElement name="Remove Visual Responsibility Family" useCaseMap="//@coreModel/@useCaseMaps.3" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.3/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Remove Responsibility Notify to Visual Component Family" associatedResponsibilities="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.26 //@coreModel/@useCaseMaps.12/@paths.0/@nodes.21" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.12"> + <familyElement name="Remove Responsibility Notify to Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Remove Responsibility Notify to Visual Component Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.12/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Outline Assing Responsibility Remove Family" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.5" functionalUseCaseMaps="//@coreModel/@useCaseMaps.15"> + <familyElement name="Outline Assing Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Outline Assing Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Outline Assing Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.0"/> + <familyElement name="Outline Assing Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.1"/> + <familyElement name="Outline Assing Responsibility Remove Family" useCaseMap="//@coreModel/@useCaseMaps.5" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.5/@componentRoles.2"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Assing Responsibility Outline Notification" associatedResponsibilities="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.19 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.24" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.15"> + <familyElement name="Assing Responsibility Outline Notification" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Assing Responsibility Outline Notification" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Assing Responsibility Edit Part Notification" associatedResponsibilities="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.15"> + <familyElement name="Assing Responsibility Edit Part Notification" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Assing Responsibility Edit Part Notification" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="General Add Condition Action Family" associatedResponsibilities="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.3 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.8" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.19" functionalUseCaseMaps="//@coreModel/@useCaseMaps.18"> + <familyElement name="General Add Condition Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.0"/> + <familyElement name="General Add Condition Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <familyElement name="General Add Condition Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <familyElement name="General Add Condition Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Add Condition Notify to Responsibilities Family" associatedResponsibilities="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.11 //@coreModel/@useCaseMaps.18/@paths.1/@nodes.13" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.18"> + <familyElement name="Add Condition Notify to Responsibilities Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Add Condition Notify to Responsibilities Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.18/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="General Insert Responsibility Node Action Family" associatedResponsibilities="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.4 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.3 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.17" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.19" functionalUseCaseMaps="//@coreModel/@useCaseMaps.16"> + <familyElement name="General Insert Responsibility Node Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.0"/> + <familyElement name="General Insert Responsibility Node Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <familyElement name="General Insert Responsibility Node Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <familyElement name="General Insert Responsibility Node Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="General Add Responsibility Action Family" associatedResponsibilities="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.3 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.5 //@coreModel/@useCaseMaps.11/@paths.1/@nodes.16 //@coreModel/@useCaseMaps.11/@paths.0/@nodes.4" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.19" functionalUseCaseMaps="//@coreModel/@useCaseMaps.11"> + <familyElement name="General Add Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.0"/> + <familyElement name="General Add Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <familyElement name="General Add Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <familyElement name="General Add Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.11/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="General Assing Responsibility Action Family" associatedResponsibilities="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.2 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.8 //@coreModel/@useCaseMaps.15/@paths.1/@nodes.16" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.19" functionalUseCaseMaps="//@coreModel/@useCaseMaps.15"> + <familyElement name="General Assing Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.0"/> + <familyElement name="General Assing Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.1"/> + <familyElement name="General Assing Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.2"/> + <familyElement name="General Assing Responsibility Action Family" useCaseMap="//@coreModel/@useCaseMaps.19" functionalComponent="//@coreModel/@useCaseMaps.15/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.19/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + </families> + <families name="Add Source Path Connection Family" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.17"> + <familyElement name="Add Source Path Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.18" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Add Source Path Connection Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.17/@componentRoles.16" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <families name="Insert ResponsibilityNode UCM Diagram Add Family" associatedResponsibilities="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.14 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.28 //@coreModel/@useCaseMaps.16/@paths.1/@nodes.30" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0 //@coreModel/@useCaseMaps.4" functionalUseCaseMaps="//@coreModel/@useCaseMaps.16"> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.12" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.0"/> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.1"/> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.2"/> + <familyElement name="Insert ResponsibilityNode UCM Diagram Add Family" useCaseMap="//@coreModel/@useCaseMaps.4" functionalComponent="//@coreModel/@useCaseMaps.16/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.4/@componentRoles.3"/> + <events key="//@coreModel/@events.0" value="//@coreModel/@events.0"/> + <events key="//@coreModel/@events.1" value="//@coreModel/@events.1"/> + </families> + <events name="none" associatedConditions="//@coreModel/@responsibilities.11/@preconditions.0 //@coreModel/@responsibilities.9/@preconditions.0 //@coreModel/@responsibilities.10/@preconditions.0 //@coreModel/@responsibilities.16/@preconditions.0 //@coreModel/@responsibilities.17/@preconditions.0 //@coreModel/@responsibilities.22/@preconditions.0 //@coreModel/@responsibilities.23/@preconditions.0 //@coreModel/@responsibilities.25/@preconditions.0 //@coreModel/@responsibilities.27/@preconditions.0 //@coreModel/@responsibilities.29/@preconditions.0 //@coreModel/@responsibilities.35/@preconditions.0 //@coreModel/@responsibilities.31/@preconditions.0 //@coreModel/@responsibilities.39/@preconditions.0 //@coreModel/@responsibilities.37/@preconditions.0 //@coreModel/@responsibilities.38/@preconditions.0 //@coreModel/@responsibilities.40/@preconditions.0 //@coreModel/@responsibilities.41/@preconditions.0 //@coreModel/@responsibilities.42/@preconditions.0 //@coreModel/@responsibilities.43/@preconditions.0 //@coreModel/@responsibilities.45/@preconditions.0 //@coreModel/@responsibilities.47/@preconditions.0 //@coreModel/@responsibilities.48/@preconditions.0 //@coreModel/@responsibilities.21/@preconditions.0 //@coreModel/@responsibilities.20/@preconditions.0 //@coreModel/@responsibilities.39/@preconditions.1 //@coreModel/@responsibilities.33/@preconditions.0 //@coreModel/@responsibilities.49/@preconditions.0 //@coreModel/@responsibilities.53/@preconditions.0 //@coreModel/@responsibilities.55/@preconditions.0 //@coreModel/@responsibilities.54/@preconditions.0 //@coreModel/@responsibilities.56/@preconditions.0 //@coreModel/@responsibilities.58/@preconditions.0 //@coreModel/@responsibilities.59/@preconditions.0 //@coreModel/@responsibilities.62/@preconditions.0 //@coreModel/@responsibilities.63/@preconditions.0 //@coreModel/@responsibilities.66/@preconditions.0 //@coreModel/@responsibilities.65/@preconditions.0 //@coreModel/@responsibilities.64/@preconditions.0 //@coreModel/@responsibilities.76/@preconditions.0 //@coreModel/@responsibilities.78/@preconditions.0 //@coreModel/@responsibilities.79/@preconditions.0 //@coreModel/@responsibilities.91/@preconditions.0 //@coreModel/@responsibilities.89/@preconditions.0 //@coreModel/@responsibilities.90/@preconditions.0 //@coreModel/@responsibilities.97/@preconditions.0 //@coreModel/@responsibilities.94/@preconditions.0 //@coreModel/@responsibilities.92/@preconditions.0 //@coreModel/@responsibilities.93/@preconditions.0 //@coreModel/@responsibilities.118/@preconditions.0 //@coreModel/@responsibilities.117/@preconditions.0 //@coreModel/@responsibilities.116/@preconditions.0 //@coreModel/@responsibilities.125/@preconditions.0 //@coreModel/@responsibilities.124/@preconditions.0 //@coreModel/@responsibilities.134/@preconditions.0 //@coreModel/@responsibilities.132/@preconditions.0 //@coreModel/@responsibilities.133/@preconditions.0 //@coreModel/@responsibilities.140/@preconditions.0 //@coreModel/@responsibilities.141/@preconditions.0 //@coreModel/@responsibilities.137/@preconditions.0 //@coreModel/@responsibilities.138/@preconditions.0 //@coreModel/@responsibilities.145/@preconditions.0 //@coreModel/@responsibilities.146/@preconditions.0 //@coreModel/@responsibilities.83/@preconditions.0 //@coreModel/@responsibilities.84/@preconditions.0 //@coreModel/@responsibilities.86/@preconditions.0 //@coreModel/@responsibilities.87/@preconditions.0 //@coreModel/@responsibilities.88/@preconditions.0 //@coreModel/@responsibilities.34/@preconditions.0 //@coreModel/@responsibilities.123/@preconditions.0 //@coreModel/@responsibilities.100/@preconditions.0 //@coreModel/@responsibilities.99/@preconditions.0 //@coreModel/@responsibilities.115/@preconditions.0 //@coreModel/@responsibilities.98/@preconditions.0 //@coreModel/@responsibilities.105/@preconditions.0 //@coreModel/@responsibilities.101/@preconditions.0 //@coreModel/@responsibilities.102/@preconditions.0 //@coreModel/@responsibilities.101/@preconditions.1 //@coreModel/@responsibilities.113/@preconditions.0 //@coreModel/@responsibilities.119/@preconditions.0 //@coreModel/@responsibilities.44/@preconditions.0 //@coreModel/@responsibilities.156/@preconditions.0 //@coreModel/@responsibilities.155/@preconditions.0 //@coreModel/@responsibilities.158/@preconditions.0 //@coreModel/@responsibilities.157/@preconditions.0 //@coreModel/@responsibilities.144/@preconditions.0 //@coreModel/@responsibilities.143/@preconditions.0 //@coreModel/@responsibilities.142/@preconditions.0 //@coreModel/@responsibilities.151/@preconditions.0 //@coreModel/@responsibilities.152/@preconditions.0 //@coreModel/@responsibilities.153/@preconditions.0 //@coreModel/@responsibilities.129/@preconditions.0 //@coreModel/@responsibilities.128/@preconditions.0 //@coreModel/@responsibilities.127/@preconditions.0 //@coreModel/@responsibilities.159/@preconditions.0 //@coreModel/@responsibilities.52/@preconditions.0 //@coreModel/@responsibilities.82/@preconditions.0 //@coreModel/@responsibilities.81/@preconditions.0 //@coreModel/@responsibilities.160/@preconditions.0 //@coreModel/@responsibilities.80/@preconditions.0 //@coreModel/@responsibilities.112/@preconditions.0 //@coreModel/@responsibilities.110/@preconditions.0 //@coreModel/@responsibilities.111/@preconditions.0 //@coreModel/@responsibilities.161/@preconditions.0 //@coreModel/@responsibilities.114/@preconditions.0 //@coreModel/@responsibilities.146/@preconditions.1 //@coreModel/@responsibilities.145/@preconditions.1 //@coreModel/@responsibilities.85/@preconditions.0 //@coreModel/@responsibilities.95/@preconditions.0 //@coreModel/@responsibilities.135/@preconditions.0 //@coreModel/@responsibilities.162/@preconditions.0 //@coreModel/@responsibilities.170/@preconditions.0 //@coreModel/@responsibilities.163/@preconditions.0 //@coreModel/@responsibilities.171/@preconditions.0 //@coreModel/@responsibilities.67/@preconditions.0 //@coreModel/@responsibilities.68/@preconditions.0 //@coreModel/@responsibilities.175/@preconditions.0 //@coreModel/@responsibilities.174/@preconditions.0 //@coreModel/@responsibilities.167/@preconditions.0 //@coreModel/@responsibilities.166/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="registerAdapter" conditionEvent="eventPreFilter(registerAdapter). eventPreFilterAccepts(registerAdapter, Tag) :- preScope(PreScope), argument(Tag, Argument), scopeAcceptsSnapshot(PreScope, Argument)." description="adapter registration" associatedConditions="//@coreModel/@responsibilities.2/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + </coreModel> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="EMF Notification Component" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.0" detailLevel="2"> + <location x="109" y="80"/> + <size width="258" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.1" detailLevel="2"> + <location x="341" y="104"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="EMF Notification" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.0" map="//@coreModel/@useCaseMaps.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.6" targetConnections="//@diagrams.1/@children.5/@sourceConnections.0"> + <location x="47" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="331" y="340"/> + <size width="139" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" targetConnections="//@diagrams.1/@children.1/@children.4/@sourceConnections.0"> + <location x="116" y="88"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2" targetConnections="//@diagrams.1/@children.6/@sourceConnections.0"> + <location x="19" y="70"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.1/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3" targetConnections="//@diagrams.1/@children.1/@children.3/@sourceConnections.0"> + <location x="27" y="135"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4" targetConnections="//@diagrams.1/@children.1/@children.1/@sourceConnections.0"> + <location x="41" y="107"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2" targetConnections="//@diagrams.1/@children.2/@sourceConnections.0"> + <location x="182" y="84"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="258" y="110"/> + <size width="212" height="167"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0"> + <location x="556" y="177"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.1/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1" targetConnections="//@diagrams.1/@children.4/@sourceConnections.0"> + <location x="210" y="452"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5" targetConnections="//@diagrams.1/@children.0/@children.0/@sourceConnections.0"> + <location x="283" y="424"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" targetConnections="//@diagrams.1/@children.1/@children.0/@sourceConnections.0"> + <location x="335" y="290"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0"> + <location x="180" y="169"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1" targetConnections="//@diagrams.1/@children.1/@children.2/@sourceConnections.0"> + <location x="209" y="326"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Functional Component Diagram" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.2" detailLevel="2"> + <location x="26" y="173"/> + <size width="376" height="194"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.3" detailLevel="2"> + <location x="32" y="10"/> + <size width="323" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8" detailLevel="2"> + <location x="25" y="371"/> + <size width="379" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9" detailLevel="2"> + <location x="358" y="170"/> + <size width="309" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10" detailLevel="2"> + <location x="361" y="17"/> + <size width="313" height="107"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.15" detailLevel="2"> + <location x="389" y="281"/> + <size width="355" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.16" detailLevel="2"> + <location x="423" y="425"/> + <size width="312" height="121"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.17" detailLevel="2"> + <location x="425" y="551"/> + <size width="314" height="209"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.18" detailLevel="2"> + <location x="48" y="485"/> + <size width="350" height="209"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.19" detailLevel="2"> + <location x="25" y="711"/> + <size width="294" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.20" detailLevel="2"> + <location x="684" y="727"/> + <size width="345" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.21" detailLevel="2"> + <location x="51" y="891"/> + <size width="304" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.22" detailLevel="2"> + <location x="31" y="1029"/> + <size width="346" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.23" detailLevel="2"> + <location x="698" y="362"/> + <size width="363" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.24" detailLevel="2" targetConnections="//@diagrams.2/@children.32/@sourceConnections.0"> + <location x="696" y="592"/> + <size width="285" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.25" detailLevel="2"> + <location x="373" y="945"/> + <size width="353" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.26" detailLevel="2"> + <location x="15" y="1183"/> + <size width="362" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.27" detailLevel="2"> + <location x="705" y="939"/> + <size width="352" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.28" detailLevel="2"> + <location x="813" y="836"/> + <size width="289" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.29" detailLevel="2"> + <location x="994" y="551"/> + <size width="294" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.30" detailLevel="2"> + <location x="1040" y="710"/> + <size width="388" height="224"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.31" detailLevel="2"> + <location x="1110" y="390"/> + <size width="258" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.32" detailLevel="2"> + <location x="1395" y="838"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.33" detailLevel="2"> + <location x="1370" y="680"/> + <size width="258" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.34" detailLevel="2"> + <location x="991" y="133"/> + <size width="301" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.35" detailLevel="2"> + <location x="729" y="139"/> + <size width="303" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.38" detailLevel="2"> + <location x="741" y="250"/> + <size width="273" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.39" detailLevel="2"> + <location x="1133" y="287"/> + <size width="338" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.40" detailLevel="2"> + <location x="1266" y="549"/> + <size width="294" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.41" detailLevel="2"> + <location x="1269" y="105"/> + <size width="308" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.42" detailLevel="2"> + <location x="336" y="787"/> + <size width="329" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.43" detailLevel="2"> + <location x="352" y="1116"/> + <size width="371" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.49"> + <location x="822" y="468"/> + <size width="275" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@relationships.2" target="//@diagrams.2/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.52" detailLevel="2"> + <location x="1103" y="957"/> + <size width="330" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.69"> + <location x="368" y="1270"/> + <size width="317" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.77" detailLevel="2"> + <location x="736" y="1095"/> + <size width="288" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.78" detailLevel="2"> + <location x="722" y="1238"/> + <size width="306" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Modify Name Component" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.4"> + <location x="380" y="283"/> + <size width="348" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.3"> + <location x="51" y="284"/> + <size width="315" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2" targetConnections="//@diagrams.3/@children.5/@sourceConnections.0"> + <location x="40" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" targetConnections="//@diagrams.3/@children.2/@children.0/@sourceConnections.0"> + <location x="128" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="212" y="182"/> + <size width="400" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.8" targetConnections="//@diagrams.3/@children.3/@children.1/@sourceConnections.0"> + <location x="65" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.6" targetConnections="//@diagrams.3/@children.4/@children.0/@sourceConnections.0"> + <location x="228" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="92" y="40"/> + <size width="314" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" targetConnections="//@diagrams.3/@children.7/@sourceConnections.0"> + <location x="102" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="434" y="54"/> + <size width="284" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0"> + <location x="146" y="202"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1" targetConnections="//@diagrams.3/@children.8/@sourceConnections.0"> + <location x="15" y="51"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" targetConnections="//@diagrams.3/@children.2/@children.1/@sourceConnections.0"> + <location x="483" y="173"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.7" targetConnections="//@diagrams.3/@children.3/@children.0/@sourceConnections.0"> + <location x="71" y="53"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="GEF Components" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4" detailLevel="2" targetConnections="//@diagrams.4/@children.5/@sourceConnections.0 //@diagrams.4/@children.6/@sourceConnections.0"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.4/@children.3/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="218" y="19"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="25" y="121"/> + <size width="258" height="209"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5" detailLevel="2"> + <location x="586" y="1"/> + <size width="258" height="209"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6" detailLevel="2"> + <location x="471" y="491"/> + <size width="285" height="164"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7" detailLevel="2"> + <children semanticModel="//@coreModel/@components.7/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.0" target="//@diagrams.4/@children.0/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location y="20"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="373" y="119"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11" detailLevel="2"> + <location x="227" y="5"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.12" detailLevel="2"> + <location x="18" y="372"/> + <size width="258" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@relationships.0" target="//@diagrams.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.13" detailLevel="2"> + <location x="232" y="369"/> + <size width="258" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@relationships.1" target="//@diagrams.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.14" detailLevel="2"> + <location x="27" y="517"/> + <size width="258" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.36" detailLevel="2"> + <location x="447" y="326"/> + <size width="297" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.37" detailLevel="2"> + <location x="706" y="369"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.71" detailLevel="2"> + <location x="910" y="188"/> + <size width="258" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.72" detailLevel="2"> + <location x="822" y="62"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF Modify" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" map="//@coreModel/@useCaseMaps.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.8" targetConnections="//@diagrams.5/@children.9/@sourceConnections.0"> + <location x="53" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="232" y="235"/> + <size width="165" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.11" targetConnections="//@diagrams.5/@children.14/@sourceConnections.0"> + <location x="57" y="70"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.2/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.4" targetConnections="//@diagrams.5/@children.10/@sourceConnections.0"> + <location x="127" y="86"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.1" target="//@diagrams.5/@children.2/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.2" targetConnections="//@diagrams.5/@children.12/@sourceConnections.0"> + <location x="221" y="104"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.2" target="//@diagrams.5/@children.2/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="109" y="559"/> + <size width="274" height="146"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.10" targetConnections="//@diagrams.5/@children.5/@sourceConnections.0"> + <location x="45" y="33"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.13" targetConnections="//@diagrams.5/@children.2/@children.8/@sourceConnections.0" rotation="Right"> + <location x="98" y="76"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.5/@children.2/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.5/@children.2/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.15" targetConnections="//@diagrams.5/@children.2/@children.1/@sourceConnections.0"> + <location x="152" y="73"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.2/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.16" targetConnections="//@diagrams.5/@children.2/@children.2/@sourceConnections.0"> + <location x="220" y="72"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.14" targetConnections="//@diagrams.5/@children.2/@children.1/@sourceConnections.1"> + <location x="148" y="126"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.2" targetConnections="//@diagrams.5/@children.1/@children.1/@sourceConnections.0"> + <location x="96" y="163"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.1" target="//@diagrams.5/@children.2/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.3" targetConnections="//@diagrams.5/@children.2/@children.5/@sourceConnections.0"> + <location x="234" y="143"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.1" target="//@diagrams.5/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.3" targetConnections="//@diagrams.5/@children.1/@children.2/@sourceConnections.0"> + <location x="207" y="205"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.2" target="//@diagrams.5/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.12" targetConnections="//@diagrams.5/@children.1/@children.0/@sourceConnections.0"> + <location x="25" y="149"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.5/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="202" y="322"/> + <size width="279" height="226"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.3" targetConnections="//@diagrams.5/@children.7/@sourceConnections.0" rotation="Left"> + <location x="185" y="69"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.5/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.5/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.1" targetConnections="//@diagrams.5/@children.3/@children.0/@sourceConnections.0"> + <location x="106" y="56"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" targetTerminal="Terminal.Left1" target="//@diagrams.5/@children.3/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.5" targetConnections="//@diagrams.5/@children.3/@children.1/@sourceConnections.0 //@diagrams.5/@children.6/@sourceConnections.0" rotation="Right"> + <location x="20" y="68"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" sourceTerminal="Terminal.Right" target="//@diagrams.5/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="181" y="98"/> + <size width="249" height="109"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.0"> + <location x="515" y="127"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.9" targetConnections="//@diagrams.5/@children.3/@children.2/@sourceConnections.0"> + <location x="153" y="216"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.4" targetConnections="//@diagrams.5/@children.0/@children.0/@sourceConnections.0"> + <location x="239" y="213"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" targetTerminal="Terminal.Left2" target="//@diagrams.5/@children.3/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.2" targetConnections="//@diagrams.5/@children.4/@sourceConnections.0"> + <location x="459" y="167"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.5/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.6" targetConnections="//@diagrams.5/@children.2/@children.3/@sourceConnections.0"> + <location x="495" y="405"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.7" targetConnections="//@diagrams.5/@children.3/@children.0/@sourceConnections.1"> + <location x="328" y="215"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.0"> + <location x="247" y="718"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.1" target="//@diagrams.5/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.1/@nodes.1" targetConnections="//@diagrams.5/@children.2/@children.6/@sourceConnections.0"> + <location x="598" y="488"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.0"> + <location x="339" y="721"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.2" target="//@diagrams.5/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.2/@nodes.1" targetConnections="//@diagrams.5/@children.2/@children.7/@sourceConnections.0"> + <location x="535" y="535"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.2/@paths.0/@nodes.17" targetConnections="//@diagrams.5/@children.2/@children.0/@sourceConnections.0"> + <location x="158" y="466"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.2/@paths.0" target="//@diagrams.5/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF EditPart Refresh Children" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" map="//@coreModel/@useCaseMaps.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.3" targetConnections="//@diagrams.6/@children.8/@sourceConnections.0"> + <location x="35" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="79" y="254"/> + <size width="241" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.5" targetConnections="//@diagrams.6/@children.6/@sourceConnections.0"> + <location x="45" y="65"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.12" targetConnections="//@diagrams.6/@children.1/@children.2/@sourceConnections.0"> + <location x="84" y="74"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.13" targetConnections="//@diagrams.6/@children.9/@sourceConnections.0"> + <location x="72" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.17" targetConnections="//@diagrams.6/@children.1/@children.4/@sourceConnections.0"> + <location x="217" y="28"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.18" targetConnections="//@diagrams.6/@children.11/@sourceConnections.0"> + <location x="176" y="12"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.1/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="346" y="284"/> + <size width="232" height="122"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.7" targetConnections="//@diagrams.6/@children.7/@sourceConnections.0"> + <location x="43" y="90"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.9" targetConnections="//@diagrams.6/@children.5/@sourceConnections.0" rotation="Down"> + <location y="14"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.6/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.6/@children.2/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.14" targetConnections="//@diagrams.6/@children.2/@children.1/@sourceConnections.1"> + <location x="76" y="49"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.2/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.15" targetConnections="//@diagrams.6/@children.2/@children.2/@sourceConnections.0"> + <location x="156" y="86"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="223" y="82"/> + <size width="231" height="121"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.0"> + <location x="154" y="40"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.1" targetConnections="//@diagrams.6/@children.1/@children.1/@sourceConnections.0"> + <location x="446" y="411"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.2" targetConnections="//@diagrams.6/@children.3/@sourceConnections.0"> + <location x="202" y="41"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.6/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.4" targetConnections="//@diagrams.6/@children.0/@children.0/@sourceConnections.0"> + <location x="280" y="352"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.6" targetConnections="//@diagrams.6/@children.1/@children.0/@sourceConnections.0"> + <location x="280" y="226"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.8" targetConnections="//@diagrams.6/@children.2/@children.1/@sourceConnections.0"> + <location x="162" y="180"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.11" targetConnections="//@diagrams.6/@children.2/@children.0/@sourceConnections.0"> + <location x="365" y="231"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.10" targetConnections="//@diagrams.6/@children.1/@children.3/@sourceConnections.0"> + <location x="636" y="331"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.3/@paths.0/@nodes.16" targetConnections="//@diagrams.6/@children.2/@children.3/@sourceConnections.0"> + <location x="443" y="238"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.3/@paths.0" target="//@diagrams.6/@children.1/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF Create GraphicalEditPart" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" map="//@coreModel/@useCaseMaps.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@componentRoles.3"> + <location x="243" y="492"/> + <size width="340" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.7" targetConnections="//@diagrams.7/@children.8/@sourceConnections.0"> + <location x="47" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="377" y="357"/> + <size width="134" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.5" targetConnections="//@diagrams.7/@children.7/@sourceConnections.0"> + <location x="97" y="13"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="102" y="355"/> + <size width="232" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.3" targetConnections="//@diagrams.7/@children.6/@sourceConnections.0"> + <location x="105" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="124" y="112"/> + <size width="266" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.0"> + <location x="39" y="213"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.1" targetConnections="//@diagrams.7/@children.1/@children.0/@sourceConnections.0"> + <location x="469" y="264"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.2" targetConnections="//@diagrams.7/@children.4/@sourceConnections.0"> + <location x="99" y="147"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.4" targetConnections="//@diagrams.7/@children.3/@children.0/@sourceConnections.0"> + <location x="171" y="273"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.4/@paths.0/@nodes.6" targetConnections="//@diagrams.7/@children.2/@children.0/@sourceConnections.0"> + <location x="351" y="421"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.4/@paths.0" target="//@diagrams.7/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF Create TreeEditPart" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" snapToGeometryEnabled="true" map="//@coreModel/@useCaseMaps.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@componentRoles.2"> + <location x="454" y="227"/> + <size width="263" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.3" targetConnections="//@diagrams.8/@children.2/@children.0/@sourceConnections.0"> + <location x="44" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.0" target="//@diagrams.8/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.3" targetConnections="//@diagrams.8/@children.2/@children.1/@sourceConnections.0"> + <location x="158" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.1" target="//@diagrams.8/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="174" y="311"/> + <size width="239" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.2" targetConnections="//@diagrams.8/@children.3/@sourceConnections.0"> + <location x="20" y="13"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.0" target="//@diagrams.8/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.2" targetConnections="//@diagrams.8/@children.5/@sourceConnections.0"> + <location x="160" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.1" target="//@diagrams.8/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="192" y="100"/> + <size width="245" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.0"> + <location x="115" y="45"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.0" target="//@diagrams.8/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.0/@nodes.1" targetConnections="//@diagrams.8/@children.1/@children.0/@sourceConnections.0"> + <location x="184" y="440"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.0"> + <location x="445" y="32"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.5/@paths.1" target="//@diagrams.8/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.5/@paths.1/@nodes.1" targetConnections="//@diagrams.8/@children.1/@children.1/@sourceConnections.0"> + <location x="356" y="432"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Component" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.10"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.10" targetConnections="//@diagrams.9/@children.15/@sourceConnections.0"> + <location x="87" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="517" y="413"/> + <size width="286" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.9"> + <location x="840" y="381"/> + <size width="340" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.5" targetConnections="//@diagrams.9/@children.22/@sourceConnections.0"> + <location x="156" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="102" y="455"/> + <size width="370" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.7"> + <location x="129" y="277"/> + <size width="289" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.6"> + <location x="574" y="-103"/> + <size width="356" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.5"> + <location x="22" y="-93"/> + <size width="358" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.2" targetConnections="//@diagrams.9/@children.6/@children.4/@sourceConnections.0" rotation="Down"> + <location x="219" y="92"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.9/@children.6/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" sourceTerminal="Terminal.Left2" targetTerminal="Terminal.Left1" target="//@diagrams.9/@children.6/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.2" targetConnections="//@diagrams.9/@children.16/@sourceConnections.0"> + <location x="86" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.1" target="//@diagrams.9/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.12" targetConnections="//@diagrams.9/@children.6/@children.0/@sourceConnections.0"> + <location x="146" y="113"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.13" targetConnections="//@diagrams.9/@children.6/@children.0/@sourceConnections.1"> + <location x="320" y="108"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.14" targetConnections="//@diagrams.9/@children.6/@children.5/@sourceConnections.0"> + <location x="230" y="64"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.9/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.15" targetConnections="//@diagrams.9/@children.19/@sourceConnections.0 //@diagrams.9/@children.6/@children.6/@sourceConnections.0" rotation="Up"> + <location x="219" y="31"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" sourceTerminal="Terminal.Right" target="//@diagrams.9/@children.6/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.17" targetConnections="//@diagrams.9/@children.18/@sourceConnections.0"> + <location x="407" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" targetTerminal="Terminal.Left2" target="//@diagrams.9/@children.6/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="222" y="39"/> + <size width="514" height="140"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.3"> + <location x="835" y="459"/> + <size width="324" height="63"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.11" targetConnections="//@diagrams.9/@children.6/@children.2/@sourceConnections.0"> + <location x="89" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.21"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="216" y="193"/> + <size width="213" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.6" targetConnections="//@diagrams.9/@children.6/@children.3/@sourceConnections.0"> + <location x="122" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="499" y="187"/> + <size width="444" height="66"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.8" targetConnections="//@diagrams.9/@children.14/@sourceConnections.0"> + <location x="143" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="491" y="286"/> + <size width="437" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.0"> + <location x="434" y="-28"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.1" targetConnections="//@diagrams.9/@children.23/@sourceConnections.0"> + <location x="248" y="596"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.3" targetConnections="//@diagrams.9/@children.0/@children.0/@sourceConnections.0"> + <location x="636" y="505"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.7" targetConnections="//@diagrams.9/@children.9/@children.0/@sourceConnections.0"> + <location x="619" y="264"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.9" targetConnections="//@diagrams.9/@children.10/@children.0/@sourceConnections.0"> + <location x="632" y="394"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.0"> + <location x="385" y="-8"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.1" target="//@diagrams.9/@children.6/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.1/@nodes.1" targetConnections="//@diagrams.9/@children.6/@children.1/@sourceConnections.0"> + <location x="167" y="84"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.16"> + <location x="637" y="-4"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.6/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.18" targetConnections="//@diagrams.9/@children.11/@sourceConnections.0"> + <location x="431" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" targetTerminal="Terminal.Left1" target="//@diagrams.9/@children.6/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@componentRoles.11"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.4" targetConnections="//@diagrams.9/@children.21/@sourceConnections.0"> + <location x="146" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.22"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="102" y="346"/> + <size width="352" height="81"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.19" targetConnections="//@diagrams.9/@children.8/@children.0/@sourceConnections.0"> + <location x="273" y="290"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.20/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.20" targetConnections="//@diagrams.9/@children.20/@children.0/@sourceConnections.0"> + <location x="262" y="424"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.6/@paths.0/@nodes.21" targetConnections="//@diagrams.9/@children.2/@children.0/@sourceConnections.0"> + <location x="260" y="540"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.6/@paths.0" target="//@diagrams.9/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Remove Component From Outline" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.11"> + <location x="564" y="603"/> + <size width="393" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.10"> + <location x="68" y="629"/> + <size width="334" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.3" targetConnections="//@diagrams.10/@children.3/@children.0/@sourceConnections.0"> + <location x="112" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.1" targetConnections="//@diagrams.10/@children.2/@children.2/@sourceConnections.0"> + <location x="277" y="57"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.7" targetConnections="//@diagrams.10/@children.8/@children.3/@sourceConnections.0"> + <location x="164" y="60"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" target="//@diagrams.10/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.14" targetConnections="//@diagrams.10/@children.8/@children.9/@sourceConnections.0"> + <location x="217" y="132"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.2/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.8" targetConnections="//@diagrams.10/@children.2/@children.3/@sourceConnections.0"> + <location x="335" y="129"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="538" y="75"/> + <size width="435" height="171"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.2" targetConnections="//@diagrams.10/@children.4/@children.0/@sourceConnections.0"> + <location x="189" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="312" y="-34"/> + <size width="354" height="61"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.5" targetConnections="//@diagrams.10/@children.13/@sourceConnections.0"> + <location x="43" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="477" y="518"/> + <size width="321" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.6" targetConnections="//@diagrams.10/@children.6/@children.0/@sourceConnections.0"> + <location x="129" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.5/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.7" targetConnections="//@diagrams.10/@children.5/@children.0/@sourceConnections.0"> + <location x="267" y="61"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="542" y="421"/> + <size width="428" height="82"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.4" targetConnections="//@diagrams.10/@children.2/@children.0/@sourceConnections.0"> + <location x="113" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" target="//@diagrams.10/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="547" y="312"/> + <size width="398" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.2" targetConnections="//@diagrams.10/@children.8/@children.10/@sourceConnections.0"> + <location x="66" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.16/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="108" y="290"/> + <size width="193" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.4" targetConnections="//@diagrams.10/@children.9/@sourceConnections.0"> + <location x="112" y="67"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.10/@children.8/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.3" targetConnections="//@diagrams.10/@children.8/@children.4/@sourceConnections.0"> + <location x="292" y="94"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" targetTerminal="Terminal.Right" target="//@diagrams.10/@children.8/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.4" targetConnections="//@diagrams.10/@children.8/@children.1/@sourceConnections.0" rotation="Right"> + <location x="368" y="77"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" sourceTerminal="Terminal.Left1" target="//@diagrams.10/@children.8/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" sourceTerminal="Terminal.Left2" target="//@diagrams.10/@children.8/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.2" targetConnections="//@diagrams.10/@children.8/@children.2/@sourceConnections.0"> + <location x="449" y="78"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" target="//@diagrams.10/@children.2/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.0"> + <location x="240" y="100"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" target="//@diagrams.10/@children.8/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.5" targetConnections="//@diagrams.10/@children.8/@children.2/@sourceConnections.1"> + <location x="434" y="109"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.2" target="//@diagrams.10/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.7" targetConnections="//@diagrams.10/@children.8/@children.0/@sourceConnections.0" rotation="Down"> + <location x="133" y="137"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.10/@children.8/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.10/@children.8/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.9" targetConnections="//@diagrams.10/@children.8/@children.6/@sourceConnections.1"> + <location x="182" y="187"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.10/@children.8/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.10" targetConnections="//@diagrams.10/@children.8/@children.7/@sourceConnections.0" rotation="Right"> + <location x="291" y="181"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.10/@children.8/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.10/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.13" targetConnections="//@diagrams.10/@children.8/@children.8/@sourceConnections.0"> + <location x="431" y="155"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.2/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.6" targetConnections="//@diagrams.10/@children.8/@children.6/@sourceConnections.0"> + <location x="127" y="205"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="14" y="45"/> + <size width="465" height="221"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.0"> + <location x="108" y="10"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.1" targetConnections="//@diagrams.10/@children.14/@children.0/@sourceConnections.0"> + <location x="276" y="639"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.1" targetConnections="//@diagrams.10/@children.5/@children.1/@sourceConnections.0"> + <location x="889" y="526"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.8"> + <location x="6" y="359"/> + <size width="363" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.1/@nodes.0" detailLevel="2"> + <location x="446" y="594"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.10/@children.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.5" targetConnections="//@diagrams.10/@children.16/@children.0/@sourceConnections.0"> + <location x="172" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="30" y="530"/> + <size width="359" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.2/@nodes.6" targetConnections="//@diagrams.10/@children.8/@children.5/@sourceConnections.0"> + <location x="506" y="156"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.3" targetConnections="//@diagrams.10/@children.7/@children.0/@sourceConnections.0"> + <location x="86" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.14/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="44" y="429"/> + <size width="354" height="94"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.11" targetConnections="//@diagrams.10/@children.8/@children.8/@sourceConnections.1"> + <location x="381" y="305"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.7/@paths.0" target="//@diagrams.10/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.7/@paths.0/@nodes.12" targetConnections="//@diagrams.10/@children.17/@sourceConnections.0"> + <location x="479" y="313"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Port" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.11"> + <location x="791" y="584"/> + <size width="220" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.10"> + <location x="736" y="417"/> + <size width="332" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.17" targetConnections="//@diagrams.11/@children.8/@children.0/@sourceConnections.0"> + <location x="75" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="594" y="583"/> + <size width="167" height="69"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.14" targetConnections="//@diagrams.11/@children.6/@children.0/@sourceConnections.0"> + <location x="94" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="215" y="613"/> + <size width="249" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.7"> + <location x="52" y="453"/> + <size width="385" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.15" targetConnections="//@diagrams.11/@children.16/@sourceConnections.0"> + <location x="123" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="559" y="350"/> + <size width="333" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.13" targetConnections="//@diagrams.11/@children.7/@children.0/@sourceConnections.0"> + <location x="120" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="155" y="521"/> + <size width="341" height="74"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.12" targetConnections="//@diagrams.11/@children.17/@sourceConnections.0"> + <location x="116" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="194" y="374"/> + <size width="253" height="73"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.16" targetConnections="//@diagrams.11/@children.5/@children.0/@sourceConnections.0"> + <location x="130" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="544" y="484"/> + <size width="320" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.2" targetConnections="//@diagrams.11/@children.12/@sourceConnections.0"> + <location x="48" y="23"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.0" target="//@diagrams.11/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.2" targetConnections="//@diagrams.11/@children.14/@sourceConnections.0"> + <location x="232" y="9"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.11/@children.9/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.3" targetConnections="//@diagrams.11/@children.9/@children.1/@sourceConnections.0 //@diagrams.11/@children.9/@children.3/@sourceConnections.0" rotation="Up"> + <location x="238" y="67"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.11/@children.9/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.5" targetConnections="//@diagrams.11/@children.9/@children.4/@sourceConnections.0"> + <location x="323" y="51"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.11/@children.9/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.6" targetConnections="//@diagrams.11/@children.15/@sourceConnections.0"> + <location x="331" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.9/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.7" targetConnections="//@diagrams.11/@children.9/@children.2/@sourceConnections.0"> + <location x="235" y="102"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.11/@children.9/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.9" targetConnections="//@diagrams.11/@children.9/@children.5/@sourceConnections.0" rotation="Down"> + <location x="213" y="141"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.11/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.11/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="231" y="144"/> + <size width="444" height="185"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.1"> + <location x="40" y="21"/> + <size width="353" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@componentRoles.0"> + <location x="398" y="19"/> + <size width="386" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.0"> + <location x="384" y="101"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.0" target="//@diagrams.11/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.0/@nodes.1" targetConnections="//@diagrams.11/@children.9/@children.0/@sourceConnections.0"> + <location x="144" y="186"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.0"> + <location x="487" y="111"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.9/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.4"> + <location x="553" y="101"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.9/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.10" targetConnections="//@diagrams.11/@children.9/@children.6/@sourceConnections.1"> + <location x="505" y="347"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.8" targetConnections="//@diagrams.11/@children.9/@children.6/@sourceConnections.0"> + <location x="418" y="346"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.8/@paths.1" target="//@diagrams.11/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.1" targetConnections="//@diagrams.11/@children.3/@children.0/@sourceConnections.0"> + <location x="310" y="723"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.8/@paths.1/@nodes.11" targetConnections="//@diagrams.11/@children.2/@children.0/@sourceConnections.0"> + <location x="636" y="697"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Component Relationship" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.14"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.25" targetConnections="//@diagrams.12/@children.2/@children.0/@sourceConnections.0"> + <location x="154" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-57" y="581"/> + <size width="387" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.13"> + <location x="-95" y="406"/> + <size width="362" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.12"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.24" targetConnections="//@diagrams.12/@children.3/@children.0/@sourceConnections.0"> + <location x="147" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-39" y="489"/> + <size width="348" height="74"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.11"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.23" targetConnections="//@diagrams.12/@children.18/@sourceConnections.0"> + <location x="61" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="26" y="321"/> + <size width="167" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.10"> + <location x="337" y="648"/> + <size width="397" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.9"> + <location x="746" y="647"/> + <size width="369" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.22" targetConnections="//@diagrams.12/@children.8/@children.0/@sourceConnections.0"> + <location x="78" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="479" y="575"/> + <size width="269" height="64"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.20" targetConnections="//@diagrams.12/@children.7/@children.1/@sourceConnections.0"> + <location x="140" y="59"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.22"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.21" targetConnections="//@diagrams.12/@children.9/@children.0/@sourceConnections.0"> + <location x="141" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="666" y="453"/> + <size width="338" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.19" targetConnections="//@diagrams.12/@children.10/@children.0/@sourceConnections.0"> + <location x="157" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="318" y="453"/> + <size width="342" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.11" targetConnections="//@diagrams.12/@children.20/@sourceConnections.0"> + <location x="113" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.7/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="664" y="344"/> + <size width="326" height="61"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.18" targetConnections="//@diagrams.12/@children.21/@sourceConnections.0"> + <location x="152" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="319" y="344"/> + <size width="330" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.3"> + <location x="587" y="169"/> + <size width="344" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.2"> + <location x="-111" y="27"/> + <size width="294" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.1"> + <location x="548" y="81"/> + <size width="375" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.2" targetConnections="//@diagrams.12/@children.19/@sourceConnections.0"> + <location x="22" y="63"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.0" target="//@diagrams.12/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.2" targetConnections="//@diagrams.12/@children.16/@sourceConnections.0"> + <location x="127" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.14/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.3" targetConnections="//@diagrams.12/@children.14/@children.1/@sourceConnections.0"> + <location x="119" y="46"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.12/@children.14/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.4" targetConnections="//@diagrams.12/@children.14/@children.2/@sourceConnections.0 //@diagrams.12/@children.14/@children.4/@sourceConnections.0" rotation="Up"> + <location x="120" y="83"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.12/@children.14/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.5" targetConnections="//@diagrams.12/@children.17/@sourceConnections.0"> + <location x="187" y="50"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.12/@children.14/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.7" targetConnections="//@diagrams.12/@children.14/@children.7/@sourceConnections.0"> + <location x="80" y="109"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.12/@children.14/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.9" targetConnections="//@diagrams.12/@children.14/@children.5/@sourceConnections.0" rotation="Down"> + <location x="59" y="143"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.12/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.12/@children.14/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.12" targetConnections="//@diagrams.12/@children.14/@children.3/@sourceConnections.0"> + <location x="114" y="112"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.14/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.13" targetConnections="//@diagrams.12/@children.14/@children.6/@sourceConnections.1"> + <location x="96" y="175"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.12/@children.14/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.15" targetConnections="//@diagrams.12/@children.14/@children.8/@sourceConnections.0" rotation="Right"> + <location x="161" y="166"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.12/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.12/@children.21"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="208" y="89"/> + <size width="263" height="206"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.1" targetConnections="//@diagrams.12/@children.14/@children.0/@sourceConnections.0"> + <location x="103" y="150"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.0"> + <location x="351" y="33"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.14/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.6"> + <location x="481" y="138"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.14/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.8" targetConnections="//@diagrams.12/@children.14/@children.6/@sourceConnections.0"> + <location x="257" y="297"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.0/@nodes.0"> + <location x="264" y="33"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.0" target="//@diagrams.12/@children.14/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.14" targetConnections="//@diagrams.12/@children.14/@children.9/@sourceConnections.0"> + <location x="563" y="269"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.16" targetConnections="//@diagrams.12/@children.14/@children.9/@sourceConnections.1"> + <location x="436" y="299"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.9/@paths.1" target="//@diagrams.12/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.10" targetConnections="//@diagrams.12/@children.7/@children.0/@sourceConnections.0"> + <location x="806" y="561"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.17" targetConnections="//@diagrams.12/@children.6/@children.0/@sourceConnections.0"> + <location x="622" y="662"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.9/@paths.1/@nodes.1" targetConnections="//@diagrams.12/@children.0/@children.0/@sourceConnections.0"> + <location x="118" y="668"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF EditPart Refresh Connections" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" map="//@coreModel/@useCaseMaps.10"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.11" targetConnections="//@diagrams.13/@children.3/@children.7/@sourceConnections.0"> + <location x="112" y="4"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.11" targetConnections="//@diagrams.13/@children.3/@children.8/@sourceConnections.0"> + <location x="56" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="203" y="326"/> + <size width="184" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.3" targetConnections="//@diagrams.13/@children.2/@children.0/@sourceConnections.0"> + <location x="58" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.3" targetConnections="//@diagrams.13/@children.2/@children.1/@sourceConnections.0"> + <location x="282" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="92" y="494"/> + <size width="380" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.4" targetConnections="//@diagrams.13/@children.7/@sourceConnections.0"> + <location x="26" y="11"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.4" targetConnections="//@diagrams.13/@children.3/@children.6/@sourceConnections.0"> + <location x="338" y="33"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="91" y="413"/> + <size width="380" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.6" targetConnections="//@diagrams.13/@children.5/@sourceConnections.0" rotation="Down"> + <location x="23" y="22"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.13/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.13/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.7" targetConnections="//@diagrams.13/@children.3/@children.0/@sourceConnections.1"> + <location x="59" y="78"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" targetTerminal="Terminal.Left1" target="//@diagrams.13/@children.3/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.1" targetConnections="//@diagrams.13/@children.6/@sourceConnections.0 //@diagrams.13/@children.3/@children.1/@sourceConnections.0" rotation="Left"> + <location x="81" y="114"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" sourceTerminal="Terminal.Right" target="//@diagrams.13/@children.3/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.6" targetConnections="//@diagrams.13/@children.9/@sourceConnections.0" rotation="Down"> + <location x="259" y="22"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.13/@children.3/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.13/@children.3/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.1" targetConnections="//@diagrams.13/@children.10/@sourceConnections.0 //@diagrams.13/@children.3/@children.5/@sourceConnections.0" rotation="Right"> + <location x="199" y="99"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.13/@children.3/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.7" targetConnections="//@diagrams.13/@children.3/@children.3/@sourceConnections.0"> + <location x="227" y="71"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.13/@children.3/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.5" targetConnections="//@diagrams.13/@children.3/@children.3/@sourceConnections.1"> + <location x="292" y="83"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.10" targetConnections="//@diagrams.13/@children.3/@children.4/@sourceConnections.0"> + <location x="161" y="132"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.10" targetConnections="//@diagrams.13/@children.3/@children.2/@sourceConnections.0"> + <location x="118" y="139"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="136" y="145"/> + <size width="319" height="154"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.9"> + <location x="109" y="55"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.8" targetConnections="//@diagrams.13/@children.4/@sourceConnections.0"> + <location x="175" y="106"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.13/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.2" targetConnections="//@diagrams.13/@children.1/@children.0/@sourceConnections.0"> + <location x="198" y="394"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" targetTerminal="Terminal.Left2" target="//@diagrams.13/@children.3/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.5" targetConnections="//@diagrams.13/@children.3/@children.0/@sourceConnections.0"> + <location x="123" y="226"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.0" target="//@diagrams.13/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.9"> + <location x="431" y="43"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" target="//@diagrams.13/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.8" targetConnections="//@diagrams.13/@children.8/@sourceConnections.0"> + <location x="434" y="102"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.13/@children.3/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.2" targetConnections="//@diagrams.13/@children.1/@children.1/@sourceConnections.0"> + <location x="371" y="388"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.10/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.13/@children.3/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.1/@nodes.0" targetConnections="//@diagrams.13/@children.0/@children.0/@sourceConnections.0"> + <location x="325" y="392"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.10/@paths.0/@nodes.0" targetConnections="//@diagrams.13/@children.0/@children.1/@sourceConnections.0"> + <location x="252" y="390"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Responsibility" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.11"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.16" targetConnections="//@diagrams.14/@children.18/@sourceConnections.0"> + <location x="78" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="313" y="-44"/> + <size width="267" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.8"> + <location x="-235" y="224"/> + <size width="342" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.7"> + <location x="498" y="278"/> + <size width="382" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.6"> + <location x="-213" y="301"/> + <size width="294" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.17" targetConnections="//@diagrams.14/@children.17/@sourceConnections.0"> + <location x="155" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="93" y="468"/> + <size width="405" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.4"> + <location x="529" y="454"/> + <size width="313" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.3"> + <location x="545" y="370"/> + <size width="298" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.12" targetConnections="//@diagrams.14/@children.16/@sourceConnections.0"> + <location x="139" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="85" y="366"/> + <size width="369" height="73"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.9" targetConnections="//@diagrams.14/@children.15/@sourceConnections.0"> + <location x="87" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.8/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.8" targetConnections="//@diagrams.14/@children.8/@children.0/@sourceConnections.0"> + <location x="18" y="42"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="152" y="257"/> + <size width="215" height="86"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.4" targetConnections="//@diagrams.14/@children.9/@children.6/@sourceConnections.0"> + <location x="89" y="80"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.0" target="//@diagrams.14/@children.9/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.3" targetConnections="//@diagrams.14/@children.19/@sourceConnections.0"> + <location x="190" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.9/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.4" targetConnections="//@diagrams.14/@children.9/@children.1/@sourceConnections.0"> + <location x="199" y="79"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.14/@children.9/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.5" targetConnections="//@diagrams.14/@children.9/@children.2/@sourceConnections.0 //@diagrams.14/@children.9/@children.4/@sourceConnections.0" rotation="Up"> + <location x="231" y="126"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" sourceTerminal="Terminal.Right" targetTerminal="Terminal.Left1" target="//@diagrams.14/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.6" targetConnections="//@diagrams.14/@children.13/@sourceConnections.0"> + <location x="316" y="64"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.14/@children.9/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.3" targetConnections="//@diagrams.14/@children.9/@children.0/@sourceConnections.0"> + <location x="26" y="101"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.0" target="//@diagrams.14/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.2" targetConnections="//@diagrams.14/@children.10/@sourceConnections.0"> + <location x="77" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.0" target="//@diagrams.14/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="159" y="67"/> + <size width="363" height="171"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.0"> + <location x="190" y="45"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.0" target="//@diagrams.14/@children.9/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.0/@nodes.1" targetConnections="//@diagrams.14/@children.9/@children.5/@sourceConnections.0"> + <location x="129" y="164"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.0"> + <location x="481" y="-93"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.7"> + <location x="469" y="43"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.9/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.1" targetConnections="//@diagrams.14/@children.20/@sourceConnections.0"> + <location x="315" y="557"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.2" targetConnections="//@diagrams.14/@children.9/@children.3/@sourceConnections.0"> + <location x="377" y="271"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.10" targetConnections="//@diagrams.14/@children.8/@children.1/@sourceConnections.0"> + <location x="200" y="345"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.11" targetConnections="//@diagrams.14/@children.7/@children.0/@sourceConnections.0"> + <location x="223" y="444"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.14" targetConnections="//@diagrams.14/@children.12/@sourceConnections.0"> + <location x="442" y="-72"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.15" targetConnections="//@diagrams.14/@children.0/@children.0/@sourceConnections.0"> + <location x="374" y="35"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.9/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.11/@paths.1/@nodes.13" targetConnections="//@diagrams.14/@children.4/@children.0/@sourceConnections.0"> + <location x="293" y="529"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.11/@paths.1" target="//@diagrams.14/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Remove Responsibility" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.12"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.14"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.11" targetConnections="//@diagrams.15/@children.8/@children.0/@sourceConnections.0"> + <location x="145" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.35"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="711" y="253"/> + <size width="333" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.13"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.13" targetConnections="//@diagrams.15/@children.35/@sourceConnections.0"> + <location x="161" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.36"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="747" y="347"/> + <size width="373" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.12"> + <location x="1026" y="544"/> + <size width="365" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.11"> + <location x="-439" y="432"/> + <size width="293" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.10"> + <location x="-447" y="340"/> + <size width="292" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.26" targetConnections="//@diagrams.15/@children.32/@sourceConnections.0"> + <location x="118" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.5/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.25" targetConnections="//@diagrams.15/@children.5/@children.0/@sourceConnections.0"> + <location x="134" y="53"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="352" y="249"/> + <size width="330" height="69"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.23" targetConnections="//@diagrams.15/@children.7/@children.1/@sourceConnections.0"> + <location x="77" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="390" y="425"/> + <size width="288" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.21" targetConnections="//@diagrams.15/@children.5/@children.1/@sourceConnections.0"> + <location x="134" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.7/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.22" targetConnections="//@diagrams.15/@children.7/@children.0/@sourceConnections.0"> + <location x="124" y="60"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="369" y="325"/> + <size width="303" height="82"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.7" targetConnections="//@diagrams.15/@children.8/@children.1/@sourceConnections.0"> + <location x="334" y="76"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.8" targetConnections="//@diagrams.15/@children.9/@children.1/@sourceConnections.0"> + <location x="412" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.14" targetConnections="//@diagrams.15/@children.8/@children.3/@sourceConnections.0"> + <location x="182" y="84"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.22"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.20" targetConnections="//@diagrams.15/@children.28/@sourceConnections.0"> + <location x="127" y="72"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.8/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.6" targetConnections="//@diagrams.15/@children.34/@sourceConnections.0"> + <location x="135" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.33"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="498" y="101"/> + <size width="643" height="103"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.2" targetConnections="//@diagrams.15/@children.31/@sourceConnections.0"> + <location x="151" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.9/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.6" targetConnections="//@diagrams.15/@children.9/@children.0/@sourceConnections.0"> + <location x="23" y="41"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.8/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="817" y="13"/> + <size width="356" height="72"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.5" targetConnections="//@diagrams.15/@children.29/@sourceConnections.0"> + <location x="174" y="23"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.30"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="543" y="543"/> + <size width="426" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.10" targetConnections="//@diagrams.15/@children.18/@sourceConnections.0"> + <location x="191" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-196" y="508"/> + <size width="414" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.7" targetConnections="//@diagrams.15/@children.13/@children.0/@sourceConnections.0"> + <location x="137" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-128" y="384"/> + <size width="357" height="74"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.12" targetConnections="//@diagrams.15/@children.13/@children.1/@sourceConnections.0"> + <location x="85" y="62"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.12/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.13" targetConnections="//@diagrams.15/@children.20/@sourceConnections.0"> + <location x="98" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.13/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-62" y="275"/> + <size width="215" height="86"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.3" targetConnections="//@diagrams.15/@children.16/@sourceConnections.0"> + <location x="119" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.14/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.4" targetConnections="//@diagrams.15/@children.14/@children.0/@sourceConnections.0"> + <location x="119" y="52"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.15/@children.14/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.5" targetConnections="//@diagrams.15/@children.14/@children.1/@sourceConnections.0" rotation="Down"> + <location x="115" y="90"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.15/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.15/@children.14/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.15" targetConnections="//@diagrams.15/@children.14/@children.2/@sourceConnections.1"> + <location x="161" y="130"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.15/@children.14/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.16" targetConnections="//@diagrams.15/@children.14/@children.3/@sourceConnections.0" rotation="Right"> + <location x="279" y="125"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.15/@children.28"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.15/@children.32"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.2" targetConnections="//@diagrams.15/@children.26/@sourceConnections.0"> + <location x="264" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.14/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.3" targetConnections="//@diagrams.15/@children.14/@children.5/@sourceConnections.0"> + <location x="302" y="67"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.34"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-12" y="58"/> + <size width="422" height="177"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.0"> + <location x="185" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.2" targetConnections="//@diagrams.15/@children.15/@sourceConnections.0"> + <location x="136" y="38"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.14/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.1" targetConnections="//@diagrams.15/@children.19/@sourceConnections.0"> + <location x="271" y="595"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.8" targetConnections="//@diagrams.15/@children.12/@children.0/@sourceConnections.0"> + <location x="-4" y="473"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.11/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.9" targetConnections="//@diagrams.15/@children.11/@children.0/@sourceConnections.0"> + <location x="85" y="585"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.11" targetConnections="//@diagrams.15/@children.14/@children.2/@sourceConnections.0"> + <location x="57" y="238"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.13/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.0"> + <location x="356" y="560"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.29"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.6" targetConnections="//@diagrams.15/@children.8/@children.2/@sourceConnections.0"> + <location x="609" y="220"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.18" targetConnections="//@diagrams.15/@children.6/@children.0/@sourceConnections.0"> + <location x="512" y="494"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.17" targetConnections="//@diagrams.15/@children.23/@sourceConnections.0"> + <location x="598" y="502"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.1" targetConnections="//@diagrams.15/@children.36/@sourceConnections.0"> + <location x="862" y="460"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.0"> + <location x="317" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.14/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.1" targetConnections="//@diagrams.15/@children.33/@sourceConnections.0"> + <location x="756" y="50"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.19" targetConnections="//@diagrams.15/@children.14/@children.4/@sourceConnections.0"> + <location x="469" y="172"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.8/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.3" targetConnections="//@diagrams.15/@children.21/@sourceConnections.0"> + <location x="442" y="567"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.4" targetConnections="//@diagrams.15/@children.10/@children.0/@sourceConnections.0"> + <location x="1004" y="532"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.31"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.10" targetConnections="//@diagrams.15/@children.30/@sourceConnections.0"> + <location x="1070" y="243"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.0/@nodes.24" targetConnections="//@diagrams.15/@children.14/@children.4/@sourceConnections.1"> + <location x="353" y="250"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.0" target="//@diagrams.15/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.5" targetConnections="//@diagrams.15/@children.8/@children.4/@sourceConnections.0"> + <location x="661" y="61"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.27"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.2/@nodes.4" targetConnections="//@diagrams.15/@children.14/@children.6/@sourceConnections.0"> + <location x="435" y="125"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.2" target="//@diagrams.15/@children.8/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.12" targetConnections="//@diagrams.15/@children.0/@children.0/@sourceConnections.0"> + <location x="887" y="323"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.12/@paths.1/@nodes.9" targetConnections="//@diagrams.15/@children.1/@children.0/@sourceConnections.0"> + <location x="888" y="413"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.12/@paths.1" target="//@diagrams.15/@children.25"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Component Role" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1" map="//@coreModel/@useCaseMaps.13"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.11"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.14" targetConnections="//@diagrams.16/@children.16/@sourceConnections.0"> + <location x="115" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-76" y="360"/> + <size width="273" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.10"> + <location x="651" y="530"/> + <size width="377" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.9"> + <location x="674" y="326"/> + <size width="294" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.8"> + <location x="673" y="419"/> + <size width="311" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.7"> + <location x="-306" y="270"/> + <size width="288" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.6"> + <location x="-323" y="180"/> + <size width="332" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.24" targetConnections="//@diagrams.16/@children.23/@sourceConnections.0"> + <location x="130" y="13"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.25"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="290" y="527"/> + <size width="346" height="65"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.17" targetConnections="//@diagrams.16/@children.20/@sourceConnections.0"> + <location x="172" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-123" y="571"/> + <size width="399" height="64"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.15" targetConnections="//@diagrams.16/@children.24/@sourceConnections.0"> + <location x="100" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-67" y="468"/> + <size width="266" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.21" targetConnections="//@diagrams.16/@children.22/@sourceConnections.0"> + <location x="150" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="273" y="422"/> + <size width="330" height="76"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.19" targetConnections="//@diagrams.16/@children.18/@sourceConnections.0"> + <location x="127" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.22"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="295" y="335"/> + <size width="300" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.4" targetConnections="//@diagrams.16/@children.14/@sourceConnections.0"> + <location x="94" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.0" target="//@diagrams.16/@children.11/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.2" targetConnections="//@diagrams.16/@children.11/@children.0/@sourceConnections.0"> + <location x="28" y="62"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.0" target="//@diagrams.16/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.2" targetConnections="//@diagrams.16/@children.15/@sourceConnections.0"> + <location x="180" y="67"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.16/@children.11/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.3" targetConnections="//@diagrams.16/@children.11/@children.2/@sourceConnections.0 //@diagrams.16/@children.11/@children.5/@sourceConnections.0" rotation="Up"> + <location x="182" y="124"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.16/@children.11/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.5" targetConnections="//@diagrams.16/@children.17/@sourceConnections.0"> + <location x="347" y="30"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.11/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.6" targetConnections="//@diagrams.16/@children.11/@children.6/@sourceConnections.0"> + <location x="270" y="96"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.16/@children.11/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.7" targetConnections="//@diagrams.16/@children.11/@children.4/@sourceConnections.0"> + <location x="304" y="83"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.11/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.8" targetConnections="//@diagrams.16/@children.11/@children.3/@sourceConnections.0"> + <location x="197" y="149"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.16/@children.11/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.9" targetConnections="//@diagrams.16/@children.11/@children.9/@sourceConnections.0"> + <location x="145" y="210"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.10" targetConnections="//@diagrams.16/@children.11/@children.7/@sourceConnections.0" rotation="Down"> + <location x="182" y="175"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.16/@children.11/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.16/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="56" y="58"/> + <size width="431" height="225"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.0"> + <location x="80" y="-8"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.0" target="//@diagrams.16/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.1" targetConnections="//@diagrams.16/@children.11/@children.1/@sourceConnections.0"> + <location x="17" y="119"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.0/@nodes.3" targetConnections="//@diagrams.16/@children.12/@sourceConnections.0"> + <location x="145" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.0" target="//@diagrams.16/@children.11/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.0"> + <location x="258" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.11/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.12" targetConnections="//@diagrams.16/@children.11/@children.8/@sourceConnections.0"> + <location x="130" y="297"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.4"> + <location x="372" y="7"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.11/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.18" targetConnections="//@diagrams.16/@children.11/@children.9/@sourceConnections.1"> + <location x="341" y="297"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.1" targetConnections="//@diagrams.16/@children.7/@children.0/@sourceConnections.0"> + <location x="47" y="658"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.16" targetConnections="//@diagrams.16/@children.8/@children.0/@sourceConnections.0"> + <location x="34" y="552"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.11" targetConnections="//@diagrams.16/@children.25/@sourceConnections.0"> + <location x="425" y="624"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.20" targetConnections="//@diagrams.16/@children.10/@children.0/@sourceConnections.0"> + <location x="425" y="404"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.22" targetConnections="//@diagrams.16/@children.9/@children.0/@sourceConnections.0"> + <location x="421" y="501"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.13" targetConnections="//@diagrams.16/@children.0/@children.0/@sourceConnections.0"> + <location x="26" y="434"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.13/@paths.1/@nodes.23" targetConnections="//@diagrams.16/@children.6/@children.0/@sourceConnections.0"> + <location x="426" y="594"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.13/@paths.1" target="//@diagrams.16/@children.21"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Remove Component Role" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1" map="//@coreModel/@useCaseMaps.14"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.8"> + <location x="352" y="369"/> + <size width="304" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.2" targetConnections="//@diagrams.17/@children.16/@sourceConnections.0"> + <location x="119" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-30" y="282"/> + <size width="273" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.6"> + <location x="-499" y="444"/> + <size width="421" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.5"> + <location x="344" y="472"/> + <size width="314" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.4"> + <location x="-393" y="524"/> + <size width="295" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.3" targetConnections="//@diagrams.17/@children.5/@children.1/@sourceConnections.0"> + <location x="285" y="28"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.4" targetConnections="//@diagrams.17/@children.6/@children.0/@sourceConnections.0"> + <location x="172" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-57" y="580"/> + <size width="402" height="64"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.6" targetConnections="//@diagrams.17/@children.6/@children.1/@sourceConnections.0"> + <location x="99" y="60"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.5/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.7" targetConnections="//@diagrams.17/@children.7/@children.0/@sourceConnections.0"> + <location x="100" y="23"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-17" y="488"/> + <size width="282" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.5" targetConnections="//@diagrams.17/@children.17/@sourceConnections.0"> + <location x="128" y="63"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.6/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-57" y="386"/> + <size width="372" height="81"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.3" targetConnections="//@diagrams.17/@children.11/@sourceConnections.0"> + <location x="407" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.0" target="//@diagrams.17/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.9" targetConnections="//@diagrams.17/@children.14/@sourceConnections.0"> + <location x="114" y="62"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.8/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.10" targetConnections="//@diagrams.17/@children.8/@children.1/@sourceConnections.0"> + <location x="123" y="101"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.17/@children.8/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.11" targetConnections="//@diagrams.17/@children.8/@children.2/@sourceConnections.0 //@diagrams.17/@children.8/@children.5/@sourceConnections.0" rotation="Up"> + <location x="184" y="136"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" sourceTerminal="Terminal.Right" targetTerminal="Terminal.Right" target="//@diagrams.17/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.16" targetConnections="//@diagrams.17/@children.19/@sourceConnections.0"> + <location x="305" y="52"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.8/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.17" targetConnections="//@diagrams.17/@children.8/@children.6/@sourceConnections.0"> + <location x="245" y="130"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.17/@children.8/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.18" targetConnections="//@diagrams.17/@children.8/@children.4/@sourceConnections.0"> + <location x="314" y="96"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.8/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-31" y="86"/> + <size width="549" height="164"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.0"> + <location x="427" y="23"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.0" target="//@diagrams.17/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.1" targetConnections="//@diagrams.17/@children.18/@sourceConnections.0"> + <location x="524" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.2" targetConnections="//@diagrams.17/@children.9/@sourceConnections.0"> + <location x="395" y="52"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.0" target="//@diagrams.17/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.1"> + <location x="180" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.0" targetConnections="//@diagrams.17/@children.5/@children.0/@sourceConnections.0"> + <location x="360" y="572"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.8" targetConnections="//@diagrams.17/@children.12/@sourceConnections.0"> + <location x="88" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.8/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.12"> + <location x="239" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.13" targetConnections="//@diagrams.17/@children.8/@children.3/@sourceConnections.0"> + <location x="161" y="259"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.14" targetConnections="//@diagrams.17/@children.1/@children.0/@sourceConnections.0"> + <location x="59" y="361"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.0/@nodes.4" targetConnections="//@diagrams.17/@children.8/@children.0/@sourceConnections.0"> + <location x="523" y="105"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.0" target="//@diagrams.17/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.14/@paths.1/@nodes.15" targetConnections="//@diagrams.17/@children.15/@sourceConnections.0"> + <location x="249" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.14/@paths.1" target="//@diagrams.17/@children.8/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Functional UCM Diagram" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.44" detailLevel="2"> + <location x="-79" y="30"/> + <size width="338" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.45" detailLevel="2"> + <location x="-100" y="194"/> + <size width="382" height="179"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.46" detailLevel="2"> + <location x="261" y="162"/> + <size width="321" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.47" detailLevel="2"> + <location x="-116" y="404"/> + <size width="319" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.48" detailLevel="2"> + <location x="271" y="26"/> + <size width="326" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.49" detailLevel="2"> + <location x="279" y="313"/> + <size width="275" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.50" detailLevel="2"> + <location x="535" y="186"/> + <size width="402" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.51" detailLevel="2"> + <location x="545" y="38"/> + <size width="404" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.53" detailLevel="2"> + <location x="-19" y="-121"/> + <size width="351" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.54" detailLevel="2"> + <location x="328" y="-116"/> + <size width="381" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.55" detailLevel="2"> + <location x="667" y="-123"/> + <size width="411" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.56" detailLevel="2"> + <location x="536" y="329"/> + <size width="361" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.57" detailLevel="2"> + <location x="896" y="213"/> + <size width="329" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.58" detailLevel="2"> + <location x="877" y="376"/> + <size width="363" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.59" detailLevel="2"> + <location x="933" y="53"/> + <size width="269" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.60" detailLevel="2"> + <location x="1137" y="-122"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.61" targetConnections="//@diagrams.18/@children.17/@sourceConnections.0"> + <location x="1190" y="266"/> + <size width="298" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.62"> + <location x="1174" y="142"/> + <size width="258" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@relationships.3" target="//@diagrams.18/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.63" detailLevel="2"> + <location x="1159" y="8"/> + <size width="258" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.64" detailLevel="2"> + <location x="1220" y="428"/> + <size width="314" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.65"> + <location x="265" y="445"/> + <size width="319" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.66" detailLevel="2"> + <location x="-120" y="578"/> + <size width="301" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.67" detailLevel="2"> + <location x="287" y="548"/> + <size width="282" height="134"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.68" detailLevel="2"> + <location x="-101" y="682"/> + <size width="328" height="89"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.70" detailLevel="2"> + <location x="576" y="484"/> + <size width="286" height="104"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.74" detailLevel="2"> + <location x="563" y="616"/> + <size width="322" height="119"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.75"> + <location x="894" y="514"/> + <size width="294" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.76"> + <location x="860" y="612"/> + <size width="337" height="64"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.79"> + <location x="1229" y="635"/> + <size width="318" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Assign Responsibility to Component" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.0" map="//@coreModel/@useCaseMaps.15"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.15" targetConnections="//@diagrams.19/@children.0/@children.1/@sourceConnections.0"> + <location x="33" y="60"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.7/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.16" targetConnections="//@diagrams.19/@children.19/@sourceConnections.0"> + <location x="88" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="361" y="-40"/> + <size width="287" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.8"> + <location x="-302" y="319"/> + <size width="303" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.7"> + <location x="-303" y="221"/> + <size width="358" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.22" targetConnections="//@diagrams.19/@children.3/@children.1/@sourceConnections.0"> + <location x="134" y="57"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.21" targetConnections="//@diagrams.19/@children.18/@sourceConnections.0"> + <location x="149" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="415" y="417"/> + <size width="407" height="72"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.5"> + <location x="-282" y="408"/> + <size width="349" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.19" targetConnections="//@diagrams.19/@children.15/@sourceConnections.0"> + <location x="144" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="396" y="324"/> + <size width="376" height="73"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.13" targetConnections="//@diagrams.19/@children.6/@children.2/@sourceConnections.0"> + <location x="100" y="65"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.17" targetConnections="//@diagrams.19/@children.6/@children.2/@sourceConnections.1"> + <location x="211" y="56"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.24" targetConnections="//@diagrams.19/@children.16/@sourceConnections.0" rotation="Down"> + <location x="96" y="19"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.19/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.19/@children.6/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="108" y="216"/> + <size width="297" height="90"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.2" targetConnections="//@diagrams.19/@children.10/@sourceConnections.0"> + <location x="106" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.0" target="//@diagrams.19/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.2" targetConnections="//@diagrams.19/@children.0/@children.0/@sourceConnections.0"> + <location x="291" y="64"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.7/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.7" targetConnections="//@diagrams.19/@children.7/@children.1/@sourceConnections.0"> + <location x="269" y="92"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.19/@children.7/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.8" targetConnections="//@diagrams.19/@children.7/@children.2/@sourceConnections.0 //@diagrams.19/@children.7/@children.4/@sourceConnections.0" rotation="Right"> + <location x="169" y="94"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.19/@children.7/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.9" targetConnections="//@diagrams.19/@children.14/@sourceConnections.0"> + <location x="340" y="116"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.19/@children.7/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.11" targetConnections="//@diagrams.19/@children.7/@children.3/@sourceConnections.0"> + <location x="137" y="119"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="65" y="44"/> + <size width="401" height="142"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.6" targetConnections="//@diagrams.19/@children.9/@children.1/@sourceConnections.0"> + <location x="112" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="104" y="412"/> + <size width="276" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.3" targetConnections="//@diagrams.19/@children.6/@children.0/@sourceConnections.0"> + <location x="138" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.9/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.4" targetConnections="//@diagrams.19/@children.9/@children.0/@sourceConnections.0"> + <location x="136" y="64"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="74" y="313"/> + <size width="303" height="79"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.0"> + <location x="178"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.0" target="//@diagrams.19/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.0/@nodes.1" targetConnections="//@diagrams.19/@children.7/@children.0/@sourceConnections.0"> + <location x="38" y="82"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.0"> + <location x="496" y="-73"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.1" targetConnections="//@diagrams.19/@children.20/@sourceConnections.0"> + <location x="315" y="502"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.10"> + <location x="495" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.7/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.18" targetConnections="//@diagrams.19/@children.6/@children.1/@sourceConnections.0"> + <location x="443" y="274"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.12" targetConnections="//@diagrams.19/@children.7/@children.5/@sourceConnections.0"> + <location x="201" y="196"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.19/@children.6/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.23" targetConnections="//@diagrams.19/@children.3/@children.0/@sourceConnections.0"> + <location x="495" y="521"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.20" targetConnections="//@diagrams.19/@children.5/@children.0/@sourceConnections.0"> + <location x="571" y="399"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.14" targetConnections="//@diagrams.19/@children.12/@sourceConnections.0"> + <location x="444" y="-59"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.15/@paths.1/@nodes.5" targetConnections="//@diagrams.19/@children.8/@children.0/@sourceConnections.0"> + <location x="259" y="482"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.15/@paths.1" target="//@diagrams.19/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Insert Responsibility Node" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1" map="//@coreModel/@useCaseMaps.16"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.14"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.31" targetConnections="//@diagrams.20/@children.19/@sourceConnections.0"> + <location x="226" y="96"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.32" targetConnections="//@diagrams.20/@children.0/@children.0/@sourceConnections.0"> + <location x="154" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.0/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.34" targetConnections="//@diagrams.20/@children.0/@children.1/@sourceConnections.0"> + <location x="120" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.28"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-270" y="342"/> + <size width="352" height="122"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.13"> + <location x="682" y="-8"/> + <size width="336" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.12"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.29" targetConnections="//@diagrams.20/@children.2/@children.1/@sourceConnections.0"> + <location x="156" y="58"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.11/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.30" targetConnections="//@diagrams.20/@children.27/@sourceConnections.0"> + <location x="159" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="684" y="157"/> + <size width="372" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.11"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.28" targetConnections="//@diagrams.20/@children.14/@children.5/@sourceConnections.0"> + <location x="145" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.27"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="534" y="71"/> + <size width="333" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.10"> + <location x="1089" y="334"/> + <size width="317" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.9"> + <location x="1076" y="199"/> + <size width="321" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.18" targetConnections="//@diagrams.20/@children.30/@sourceConnections.0"> + <location x="132" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.25"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="298" y="456"/> + <size width="333" height="68"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.19" targetConnections="//@diagrams.20/@children.7/@children.1/@sourceConnections.0"> + <location x="149" y="52"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.20" targetConnections="//@diagrams.20/@children.13/@children.0/@sourceConnections.0"> + <location x="140" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.7/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="671" y="457"/> + <size width="311" height="67"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.6"> + <location x="-312" y="97"/> + <size width="294" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.5"> + <location x="-330" y="16"/> + <size width="339" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.17" targetConnections="//@diagrams.20/@children.22/@sourceConnections.0"> + <location x="143" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="125" y="-31"/> + <size width="312" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.14" targetConnections="//@diagrams.20/@children.2/@children.0/@sourceConnections.0"> + <location x="152" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="655" y="244"/> + <size width="390" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.36" targetConnections="//@diagrams.20/@children.14/@children.6/@sourceConnections.0"> + <location x="87" y="11"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.30"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="313" y="355"/> + <size width="330" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.37" targetConnections="//@diagrams.20/@children.13/@children.1/@sourceConnections.0"> + <location x="122" y="46"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.7/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.38" targetConnections="//@diagrams.20/@children.14/@children.7/@sourceConnections.0"> + <location x="42" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.13/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="668" y="362"/> + <size width="326" height="61"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.4" targetConnections="//@diagrams.20/@children.17/@sourceConnections.0"> + <location x="109" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.0" target="//@diagrams.20/@children.14/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.2" targetConnections="//@diagrams.20/@children.23/@sourceConnections.0"> + <location x="123" y="75"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.14/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.3" targetConnections="//@diagrams.20/@children.14/@children.9/@sourceConnections.0" rotation="Down"> + <location x="142" y="158"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.20/@children.29"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.20/@children.14/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.5" targetConnections="//@diagrams.20/@children.14/@children.2/@sourceConnections.1"> + <location x="261" y="149"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.20/@children.14/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.3" targetConnections="//@diagrams.20/@children.14/@children.0/@sourceConnections.0"> + <location x="46" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.0" target="//@diagrams.20/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.6" targetConnections="//@diagrams.20/@children.14/@children.3/@sourceConnections.0"> + <location x="407" y="95"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.9" targetConnections="//@diagrams.20/@children.20/@sourceConnections.0" rotation="Down"> + <location x="323" y="185"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.20/@children.12/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.20/@children.14/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.10" targetConnections="//@diagrams.20/@children.14/@children.6/@sourceConnections.1"> + <location x="428" y="210"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.13/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.21" targetConnections="//@diagrams.20/@children.14/@children.1/@sourceConnections.0"> + <location x="90" y="102"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.20/@children.14/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.22" targetConnections="//@diagrams.20/@children.14/@children.10/@sourceConnections.0"> + <location x="176" y="127"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.20/@children.14/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.23" targetConnections="//@diagrams.20/@children.14/@children.8/@sourceConnections.0 //@diagrams.20/@children.14/@children.12/@sourceConnections.0" rotation="Up"> + <location x="175" y="105"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.20/@children.14/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.25" targetConnections="//@diagrams.20/@children.26/@sourceConnections.0"> + <location x="382" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.14/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.26" targetConnections="//@diagrams.20/@children.14/@children.13/@sourceConnections.0"> + <location x="264" y="103"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.20/@children.14/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.27" targetConnections="//@diagrams.20/@children.14/@children.11/@sourceConnections.0"> + <location x="337" y="65"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.14/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="49" y="88"/> + <size width="463" height="234"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.0"> + <location x="110" y="37"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.0" target="//@diagrams.20/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.1" targetConnections="//@diagrams.20/@children.14/@children.4/@sourceConnections.0"> + <location x="-3" y="106"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.0/@nodes.2" targetConnections="//@diagrams.20/@children.15/@sourceConnections.0"> + <location x="153" y="61"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.0" target="//@diagrams.20/@children.14/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.0"> + <location x="409" y="-51"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.22"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.12" targetConnections="//@diagrams.20/@children.29/@sourceConnections.0"> + <location x="129" y="437"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.8" targetConnections="//@diagrams.20/@children.11/@children.0/@sourceConnections.0"> + <location x="513" y="232"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.20/@children.14/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.1" targetConnections="//@diagrams.20/@children.28/@sourceConnections.0"> + <location x="-296" y="281"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.15" targetConnections="//@diagrams.20/@children.18/@sourceConnections.0"> + <location x="362" y="-37"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.16" targetConnections="//@diagrams.20/@children.10/@children.0/@sourceConnections.0"> + <location x="272" y="62"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.14/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.11" targetConnections="//@diagrams.20/@children.7/@children.0/@sourceConnections.0"> + <location x="819" y="548"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.4" targetConnections="//@diagrams.20/@children.6/@children.0/@sourceConnections.0"> + <location x="491" y="543"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.24"> + <location x="440" y="43"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.14/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.13" targetConnections="//@diagrams.20/@children.3/@children.0/@sourceConnections.0"> + <location x="803" y="92"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.33" targetConnections="//@diagrams.20/@children.0/@children.2/@sourceConnections.0"> + <location x="-306" y="381"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.21"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.7" targetConnections="//@diagrams.20/@children.14/@children.2/@sourceConnections.0"> + <location x="163" y="366"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.19"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.16/@paths.1/@nodes.35" targetConnections="//@diagrams.20/@children.12/@children.0/@sourceConnections.0"> + <location x="419" y="426"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.16/@paths.1" target="//@diagrams.20/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Specify Path" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1" map="//@coreModel/@useCaseMaps.17"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.18"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.59" targetConnections="//@diagrams.21/@children.0/@children.1/@sourceConnections.0"> + <location x="152" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.41"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.58" targetConnections="//@diagrams.21/@children.18/@children.16/@sourceConnections.1"> + <location x="34" y="11"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="634" y="436"/> + <size width="311" height="61"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.17"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.56" targetConnections="//@diagrams.21/@children.18/@children.16/@sourceConnections.0"> + <location y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.57" targetConnections="//@diagrams.21/@children.1/@children.0/@sourceConnections.0"> + <location x="165" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.43"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="738" y="299"/> + <size width="359" height="61"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.16"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.60" targetConnections="//@diagrams.21/@children.2/@children.1/@sourceConnections.0"> + <location x="164" y="49"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.42"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.61" targetConnections="//@diagrams.21/@children.41/@sourceConnections.0"> + <location x="146" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="851" y="515"/> + <size width="326" height="67"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.15"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.63" targetConnections="//@diagrams.21/@children.3/@children.1/@sourceConnections.0"> + <location x="168" y="41"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.33"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.64" targetConnections="//@diagrams.21/@children.43/@sourceConnections.0"> + <location x="133" y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="942" y="383"/> + <size width="332" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.14"> + <location x="694" y="690"/> + <size width="289" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.13"> + <location x="-247" y="10"/> + <size width="299" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.12"> + <location x="895" y="77"/> + <size width="305" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.11"> + <location x="904" y="2"/> + <size width="315" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.10"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.47" targetConnections="//@diagrams.21/@children.23/@sourceConnections.0"> + <location x="129" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-221" y="238"/> + <size width="273" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.9"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.22" targetConnections="//@diagrams.21/@children.9/@children.1/@sourceConnections.0"> + <location x="92" y="51"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.21/@children.18/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.46" targetConnections="//@diagrams.21/@children.18/@children.14/@sourceConnections.0"> + <location x="64" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.9/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="399" y="-33"/> + <size width="165" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.41" targetConnections="//@diagrams.21/@children.10/@children.1/@sourceConnections.0"> + <location x="151" y="12"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.29"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.42" targetConnections="//@diagrams.21/@children.40/@sourceConnections.0"> + <location x="80" y="21"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.10/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="654" y="28"/> + <size width="215" height="78"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.44" targetConnections="//@diagrams.21/@children.11/@children.1/@sourceConnections.0"> + <location x="153" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.30"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.45" targetConnections="//@diagrams.21/@children.18/@children.17/@sourceConnections.0"> + <location x="87" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.11/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="739" y="163"/> + <size width="194" height="80"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.49" targetConnections="//@diagrams.21/@children.12/@children.1/@sourceConnections.0"> + <location x="122" y="60"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.25"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.50" targetConnections="//@diagrams.21/@children.16/@children.0/@sourceConnections.0"> + <location x="111" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.12/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-166" y="618"/> + <size width="269" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.37" targetConnections="//@diagrams.21/@children.35/@sourceConnections.0"> + <location x="62" y="26"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.36"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.39" targetConnections="//@diagrams.21/@children.37/@sourceConnections.0"> + <location x="204" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.27"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="236" y="686"/> + <size width="310" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.32" targetConnections="//@diagrams.21/@children.38/@sourceConnections.0"> + <location x="94" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.35"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.34" targetConnections="//@diagrams.21/@children.39/@sourceConnections.0"> + <location x="243" y="31"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.37"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="198" y="573"/> + <size width="384" height="76"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.29" targetConnections="//@diagrams.21/@children.44/@sourceConnections.0"> + <location x="119" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.38"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.30" targetConnections="//@diagrams.21/@children.26/@sourceConnections.0"> + <location x="282" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.39"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="134" y="441"/> + <size width="435" height="99"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.48" targetConnections="//@diagrams.21/@children.17/@children.0/@sourceConnections.0"> + <location x="114" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.12/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-153" y="530"/> + <size width="267" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.51" targetConnections="//@diagrams.21/@children.17/@children.1/@sourceConnections.0"> + <location x="60" y="75"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.16/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.52" targetConnections="//@diagrams.21/@children.18/@children.6/@sourceConnections.0"> + <location x="72" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.17/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-127" y="394"/> + <size width="184" height="90"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.3" targetConnections="//@diagrams.21/@children.18/@children.1/@sourceConnections.0"> + <location y="26"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.0" target="//@diagrams.21/@children.20"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.4" targetConnections="//@diagrams.21/@children.21/@sourceConnections.0"> + <location x="86" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.0" target="//@diagrams.21/@children.18/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.19" targetConnections="//@diagrams.21/@children.22/@sourceConnections.0"> + <location x="188" y="26"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.18" targetConnections="//@diagrams.21/@children.18/@children.2/@sourceConnections.0"> + <location x="153" y="80"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.17" targetConnections="//@diagrams.21/@children.18/@children.3/@sourceConnections.0"> + <location x="68" y="85"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.21/@children.18/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.8" targetConnections="//@diagrams.21/@children.18/@children.4/@sourceConnections.0" rotation="Right"> + <location x="60" y="129"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.21/@children.18/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.21/@children.18/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.5" targetConnections="//@diagrams.21/@children.24/@sourceConnections.0"> + <location x="23" y="281"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.17/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.7" targetConnections="//@diagrams.21/@children.18/@children.5/@sourceConnections.1"> + <location x="87" y="194"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.21/@children.18/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.2" targetConnections="//@diagrams.21/@children.18/@children.7/@sourceConnections.0" rotation="Down"> + <location x="61" y="244"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.21/@children.34"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.21/@children.44"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.9" targetConnections="//@diagrams.21/@children.18/@children.5/@sourceConnections.0"> + <location x="197" y="127"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.21/@children.18/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.11" targetConnections="//@diagrams.21/@children.18/@children.11/@sourceConnections.0"> + <location x="282" y="132"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.10" targetConnections="//@diagrams.21/@children.18/@children.9/@sourceConnections.0" rotation="Right"> + <location x="251" y="166"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.21/@children.18/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.21/@children.18/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.13" targetConnections="//@diagrams.21/@children.18/@children.11/@sourceConnections.1"> + <location x="286" y="208"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.14" targetConnections="//@diagrams.21/@children.18/@children.12/@sourceConnections.0"> + <location x="298" y="256"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.21/@children.26"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.21" targetConnections="//@diagrams.21/@children.18/@children.10/@sourceConnections.0"> + <location x="310" y="52"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.9/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.23" targetConnections="//@diagrams.21/@children.9/@children.0/@sourceConnections.0" rotation="Right"> + <location x="406" y="56"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.21/@children.40"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.21/@children.18/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.53" targetConnections="//@diagrams.21/@children.32/@sourceConnections.0" rotation="Right"> + <location x="446" y="233"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left1" target="//@diagrams.21/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" sourceTerminal="Terminal.Left2" target="//@diagrams.21/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.43" targetConnections="//@diagrams.21/@children.18/@children.15/@sourceConnections.1"> + <location x="493" y="94"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.11/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="91" y="88"/> + <size width="541" height="309"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.0"> + <location x="133" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.0" target="//@diagrams.21/@children.21"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.1" targetConnections="//@diagrams.21/@children.18/@children.0/@sourceConnections.0"> + <location x="31" y="78"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.0/@nodes.2" targetConnections="//@diagrams.21/@children.19/@sourceConnections.0"> + <location x="186" y="38"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.0" target="//@diagrams.21/@children.18/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.20"> + <location x="280" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.3" targetConnections="//@diagrams.21/@children.34/@sourceConnections.0"> + <location x="35" y="184"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.8/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.4" targetConnections="//@diagrams.21/@children.8/@children.0/@sourceConnections.0"> + <location x="4" y="314"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.18/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.6" targetConnections="//@diagrams.21/@children.12/@children.0/@sourceConnections.0"> + <location x="-48" y="723"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.15" targetConnections="//@diagrams.21/@children.18/@children.13/@sourceConnections.0"> + <location x="396" y="418"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.15/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.25" targetConnections="//@diagrams.21/@children.13/@children.1/@sourceConnections.0"> + <location x="474" y="770"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.31"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.0" targetConnections="//@diagrams.21/@children.36/@sourceConnections.0"> + <location x="278" y="794"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.12" targetConnections="//@diagrams.21/@children.10/@children.0/@sourceConnections.0"> + <location x="846" y="-5"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.24" targetConnections="//@diagrams.21/@children.11/@children.0/@sourceConnections.0"> + <location x="975" y="184"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.26" targetConnections="//@diagrams.21/@children.27/@sourceConnections.0"> + <location x="588" y="703"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.32"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.27" targetConnections="//@diagrams.21/@children.31/@sourceConnections.0"> + <location x="550" y="430"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" targetTerminal="Terminal.Right" target="//@diagrams.21/@children.18/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.16" targetConnections="//@diagrams.21/@children.3/@children.0/@sourceConnections.0"> + <location x="1118" y="464"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.28" targetConnections="//@diagrams.21/@children.18/@children.8/@sourceConnections.0"> + <location x="76" y="287"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.23"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.35" targetConnections="//@diagrams.21/@children.14/@children.0/@sourceConnections.0"> + <location x="291" y="665"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.13/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.36" targetConnections="//@diagrams.21/@children.13/@children.0/@sourceConnections.0"> + <location x="299" y="766"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.28"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.38" targetConnections="//@diagrams.21/@children.14/@children.1/@sourceConnections.0"> + <location x="434" y="668"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.13/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.31" targetConnections="//@diagrams.21/@children.15/@children.0/@sourceConnections.0"> + <location x="268" y="553"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.14/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.33" targetConnections="//@diagrams.21/@children.15/@children.1/@sourceConnections.0"> + <location x="441" y="550"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.14/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.40" targetConnections="//@diagrams.21/@children.18/@children.15/@sourceConnections.0"> + <location x="570" y="87"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.10/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.55" targetConnections="//@diagrams.21/@children.0/@children.0/@sourceConnections.0"> + <location x="806" y="511"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.54" targetConnections="//@diagrams.21/@children.2/@children.0/@sourceConnections.0"> + <location x="981" y="602"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.62" targetConnections="//@diagrams.21/@children.1/@children.1/@sourceConnections.0"> + <location x="907" y="388"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.17/@paths.1/@nodes.1" targetConnections="//@diagrams.21/@children.18/@children.8/@sourceConnections.1"> + <location x="232" y="409"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.17/@paths.1" target="//@diagrams.21/@children.15/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="Add Condition" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.1/@folders.1" map="//@coreModel/@useCaseMaps.18"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.5"> + <location x="-272" y="115"/> + <size width="301" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.4"> + <location x="-289" y="29"/> + <size width="333" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.8" targetConnections="//@diagrams.22/@children.12/@sourceConnections.0"> + <location x="103" y="23"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="176" y="-92"/> + <size width="324" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.11" targetConnections="//@diagrams.22/@children.11/@sourceConnections.0"> + <location x="130" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="71" y="250"/> + <size width="372" height="76"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.13" targetConnections="//@diagrams.22/@children.14/@sourceConnections.0"> + <location x="146" y="66"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.16"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-62" y="347"/> + <size width="431" height="96"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.2" targetConnections="//@diagrams.22/@children.13/@sourceConnections.0"> + <location x="118" y="73"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" targetTerminal="Terminal.Left1" target="//@diagrams.22/@children.5/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.4" targetConnections="//@diagrams.22/@children.9/@sourceConnections.0"> + <location x="47" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.0" target="//@diagrams.22/@children.17"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.3" targetConnections="//@diagrams.22/@children.18/@sourceConnections.0 //@diagrams.22/@children.5/@children.0/@sourceConnections.0" rotation="Up"> + <location x="127" y="125"/> + <size width="40" height="20"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" sourceTerminal="Terminal.Right" target="//@diagrams.22/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="119" y="19"/> + <size width="281" height="173"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.0"> + <location x="94" y="-16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.0" target="//@diagrams.22/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.1" targetConnections="//@diagrams.22/@children.17/@sourceConnections.0"> + <location x="66" y="25"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.0"> + <location x="375" y="-138"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.2" targetConnections="//@diagrams.22/@children.6/@sourceConnections.0"> + <location x="158" y="-17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.0" target="//@diagrams.22/@children.5/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.5"> + <location x="437" y="44"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.18"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.9" targetConnections="//@diagrams.22/@children.5/@children.2/@sourceConnections.0"> + <location x="261" y="223"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.6" targetConnections="//@diagrams.22/@children.8/@sourceConnections.0"> + <location x="320" y="-116"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.7" targetConnections="//@diagrams.22/@children.2/@children.0/@sourceConnections.0"> + <location x="249" y="-5"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.5/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.10" targetConnections="//@diagrams.22/@children.3/@children.0/@sourceConnections.0"> + <location x="141" y="329"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.4/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.1" targetConnections="//@diagrams.22/@children.16/@sourceConnections.0"> + <location x="176" y="474"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.12" targetConnections="//@diagrams.22/@children.4/@children.0/@sourceConnections.0"> + <location x="113" y="473"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" target="//@diagrams.22/@children.15"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.0/@nodes.3" targetConnections="//@diagrams.22/@children.5/@children.1/@sourceConnections.0"> + <location x="106" y="68"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.0" target="//@diagrams.22/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.18/@paths.1/@nodes.4" targetConnections="//@diagrams.22/@children.10/@sourceConnections.0"> + <location x="413" y="127"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.18/@paths.1" targetTerminal="Terminal.Left2" target="//@diagrams.22/@children.5/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="GEF Modify UCM With Action" coreModel="//@coreModel" folder="//@folder/@folders.0/@folders.2" map="//@coreModel/@useCaseMaps.19"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.19" targetConnections="//@diagrams.23/@children.0/@children.1/@sourceConnections.0"> + <location x="190" y="57"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.20" targetConnections="//@diagrams.23/@children.14/@sourceConnections.0"> + <location x="98" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-178" y="89"/> + <size width="300" height="76"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.8" targetConnections="//@diagrams.23/@children.0/@children.0/@sourceConnections.0"> + <location x="49" y="28"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.12" targetConnections="//@diagrams.23/@children.13/@sourceConnections.0" rotation="Right"> + <location x="52" y="108"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.23/@children.1/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.23/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.13" targetConnections="//@diagrams.23/@children.1/@children.1/@sourceConnections.1"> + <location x="123" y="139"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.1/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.14" targetConnections="//@diagrams.23/@children.1/@children.2/@sourceConnections.0"> + <location x="174" y="132"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.15" targetConnections="//@diagrams.23/@children.1/@children.1/@sourceConnections.0"> + <location x="90" y="85"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.1/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.16" targetConnections="//@diagrams.23/@children.1/@children.6/@sourceConnections.0"> + <location x="227" y="62"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.17" targetConnections="//@diagrams.23/@children.1/@children.4/@sourceConnections.0"> + <location x="172" y="67"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.1/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.3" targetConnections="//@diagrams.23/@children.2/@children.1/@sourceConnections.0"> + <location x="65" y="216"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.1/@children.8"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.4" targetConnections="//@diagrams.23/@children.1/@children.7/@sourceConnections.0"> + <location x="109" y="181"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.1/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.5" targetConnections="//@diagrams.23/@children.1/@children.8/@sourceConnections.0"> + <location x="177" y="164"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.1/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.7" targetConnections="//@diagrams.23/@children.1/@children.9/@sourceConnections.0"> + <location x="234" y="159"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.2" targetConnections="//@diagrams.23/@children.1/@children.12/@sourceConnections.0"> + <location x="264" y="204"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.2" target="//@diagrams.23/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.3" targetConnections="//@diagrams.23/@children.2/@children.2/@sourceConnections.0"> + <location x="199" y="204"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.2" target="//@diagrams.23/@children.1/@children.11"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="65" y="169"/> + <size width="293" height="231"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.10" targetConnections="//@diagrams.23/@children.6/@sourceConnections.0"> + <location x="30" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.13"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.2" targetConnections="//@diagrams.23/@children.8/@sourceConnections.0"> + <location x="156" y="76"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.1/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.4" targetConnections="//@diagrams.23/@children.2/@children.3/@sourceConnections.0"> + <location x="276" y="18"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.2" target="//@diagrams.23/@children.1/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.5" targetConnections="//@diagrams.23/@children.11/@sourceConnections.0"> + <location x="226" y="112"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.2" target="//@diagrams.23/@children.2/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="-106" y="424"/> + <size width="332" height="169"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.2" targetConnections="//@diagrams.23/@children.4/@sourceConnections.0"> + <location x="154" y="12"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.23/@children.3/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.3" targetConnections="//@diagrams.23/@children.3/@children.2/@sourceConnections.0"> + <location x="22" y="36"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.5"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.4" targetConnections="//@diagrams.23/@children.3/@children.0/@sourceConnections.0" rotation="Left"> + <location x="130" y="67"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" sourceTerminal="Terminal.Left1" target="//@diagrams.23/@children.3/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" sourceTerminal="Terminal.Left2" target="//@diagrams.23/@children.3/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.6" targetConnections="//@diagrams.23/@children.3/@children.2/@sourceConnections.1"> + <location x="61" y="93"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.3/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.7" targetConnections="//@diagrams.23/@children.3/@children.3/@sourceConnections.0"> + <location x="17" y="91"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.14"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="150" y="9"/> + <size width="239" height="114"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.0"> + <location x="341" y="-8"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.3/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.1" targetConnections="//@diagrams.23/@children.3/@children.1/@sourceConnections.0"> + <location x="107" y="43"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.9" targetConnections="//@diagrams.23/@children.1/@children.0/@sourceConnections.0"> + <location x="-19" y="295"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.5" targetConnections="//@diagrams.23/@children.1/@children.5/@sourceConnections.0"> + <location x="356" y="222"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.0"> + <location x="73" y="603"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.1" targetConnections="//@diagrams.23/@children.10/@sourceConnections.0"> + <location x="414" y="342"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.1/@nodes.6" targetConnections="//@diagrams.23/@children.1/@children.10/@sourceConnections.0"> + <location x="371" y="318"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.1" target="//@diagrams.23/@children.9"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.0"> + <location x="137" y="594"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.2" target="//@diagrams.23/@children.2/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.2/@nodes.1" targetConnections="//@diagrams.23/@children.1/@children.11/@sourceConnections.0"> + <location x="379" y="400"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.11" targetConnections="//@diagrams.23/@children.2/@children.0/@sourceConnections.0"> + <location x="26" y="353"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" targetTerminal="Terminal.Right" target="//@diagrams.23/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.19/@paths.0/@nodes.18" targetConnections="//@diagrams.23/@children.3/@children.4/@sourceConnections.0"> + <location x="29" y="72"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.19/@paths.0" target="//@diagrams.23/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <folder name="Diagrams" fileModel="/"> + <folders name="root" fileModel="/"> + <folders name="EMF" diagrams="//@diagrams.1 //@diagrams.0" fileModel="/"/> + <folders name="functional scenarios" fileModel="/"> + <folders name="Component Editor" diagrams="//@diagrams.12 //@diagrams.11 //@diagrams.10 //@diagrams.9 //@diagrams.3 //@diagrams.2 //@diagrams.14 //@diagrams.15 //@diagrams.19" fileModel="/"/> + <folders name="UCM Editor" diagrams="//@diagrams.16 //@diagrams.17 //@diagrams.18 //@diagrams.20 //@diagrams.21 //@diagrams.22" fileModel="/"/> + </folders> + <folders name="GEF" diagrams="//@diagrams.4 //@diagrams.5 //@diagrams.6 //@diagrams.7 //@diagrams.8 //@diagrams.13 //@diagrams.23" fileModel="/"/> + </folders> + </folder> +</org.isistan.flabot.edit.editormodel:FlabotFileModel> diff --git a/org.isistan.flabot.executionstatemapping/resource/examples/market-executioncondition.flabot b/org.isistan.flabot.executionstatemapping/resource/examples/market-executioncondition.flabot new file mode 100755 index 0000000..4e6a188 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/resource/examples/market-executioncondition.flabot @@ -0,0 +1,3941 @@ +<?xml version="1.0" encoding="ISO-8859-15"?> +<org.isistan.flabot.edit.editormodel:FlabotFileModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:filtermodel.ecore="http:///org/isistan/flabot/launcher/filter/filtermodel.ecore" xmlns:org.isistan.flabot.coremodel="http:///org/isistan/flabot/coremodel.ecore" xmlns:org.isistan.flabot.edit.componentmodel="http:///org/isistan/flabot/edit/componentmodel.ecore" xmlns:org.isistan.flabot.edit.editormodel="http:///org/isistan/flabot/edit/editormodel.ecore" xmlns:org.isistan.flabot.edit.ucmmodel="http:///org/isistan/flabot/edit/ucmmodel.ecore" xmlns:org.isistan.flabot.engine.executionstate="http:///org/isistan/flabot/engine/executionstate.ecore" xmlns:org.isistan.flabot.engine.executionstate.javalogtrace="http:///org/isistan/flabot/engine/executionstate/javalogtrace.ecore" xmlns:org.isistan.flabot.executionstatemapping.model.model="http:///org/isistan/flabot/executionstatemapping/model.ecore" xmlns:org.isistan.flabot.executionstatemapping.model.semantic="http:///org/isistan/flabot/executionstatemapping/model.ecore#//semantic" xmlns:org.isistan.flabot.executionstatemapping.model.strategymodel="http:///org/isistan/flabot/executionstatemapping/strategymodel.ecore" xmlns:org.isistan.flabot.mapping.mappingmodel="http:///org/isistan/flabot/mapping/mappingmodel.ecore" openDiagrams="//@diagrams.0 //@diagrams.1 //@diagrams.2 //@diagrams.3 //@diagrams.4 //@diagrams.5 //@diagrams.6 //@diagrams.7 //@diagrams.8"> + <extendedData key="org.isistan.flabot.executionstatemapping|executionStateMappingFileModel"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.model:ExecutionStateMappingFileModel"> + <stateContainersTree name="State Diagrams" type="FOLDER_STATE_DIAGRAM_TYPE"/> + <methodExecutionConditionsTree name="Method Execution Conditions"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:MappedTreeStructuredElement" name="Market" type="PROJECT_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:MappedTreeStructuredElement" type="PACKAGE_ROOT_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs4" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="4" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs8" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="8" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs2AndReturnValueTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="2" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs2" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="2" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs4AndReturnValueTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="4" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs4" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="4" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#entry\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs1AndReturnValueTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="1" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs1" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="1" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs6AndReturnValueTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="6" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs6" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="6" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs3AndReturnValueTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="3" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs7" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="7" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs3" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="3" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs8" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="8" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs8" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL"> + <fieldEvaluationConditions value="8" fieldName="type"/> + </parameters> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="ReturnValueIsTrue" type="EXECUTION_CONDITION_TYPE"> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="ReturnValueIsTrue" type="EXECUTION_CONDITION_TYPE"> + <returnedValue value="true"/> + <patternMapping packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </persistentList> + </persistentList> + </persistentList> + </methodExecutionConditionsTree> + <generalExecutionConditionsTree name="General Execution Conditions" type="FOLDER_GENERAL_EXECUTION_CONDITION_TYPE"> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="PreScopeArgument" type="EXECUTION_CONDITION_TYPE"> + <scope value="ARGUMENTS_SCOPE"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="ReturnValueIsTrue" type="EXECUTION_CONDITION_TYPE"> + <returnedValue value="true"/> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="InternalEventTypeIs1" type="EXECUTION_CONDITION_TYPE"> + <internalMethodCalls name="TypeIs1" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="1" fieldName="type"/> + </parameters> + </internalMethodCalls> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs1" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="1" fieldName="type"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="InternalEventTypeIs3" type="EXECUTION_CONDITION_TYPE"> + <internalMethodCalls name="TypeIs3" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="3" fieldName="type"/> + </parameters> + </internalMethodCalls> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs3" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="3" fieldName="type"/> + </parameters> + </persistentList> + <persistentList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:ExecutionCondition" name="TypeIs2ReturnValueIsTrue" type="EXECUTION_CONDITION_TYPE"> + <parameters value="" condition="NOT_NULL" parameterPosition="-1"> + <fieldEvaluationConditions value="2" fieldName="type"/> + </parameters> + <returnedValue value="true"/> + </persistentList> + </generalExecutionConditionsTree> + </value> + </extendedData> + <coreModel architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <components name="Agent" features="//@coreModel/@responsibilities.0 //@coreModel/@responsibilities.2 //@coreModel/@responsibilities.3 //@coreModel/@responsibilities.7 //@coreModel/@responsibilities.9 //@coreModel/@responsibilities.41"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="" classPattern="@bubble\.core\.Agent|@bubble\.core\.AbstractAgent" javaFilePattern="bubble\.core\.Agent|bubble\.core\.AbstractAgent"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.0/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.0/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.0/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.0/@ownedPorts.1"/> + </ownedPorts> + </components> + <components name="AgentContainer" features="//@coreModel/@responsibilities.10 //@coreModel/@responsibilities.11 //@coreModel/@responsibilities.12 //@coreModel/@responsibilities.13 //@coreModel/@responsibilities.42 //@coreModel/@responsibilities.44"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="" classPattern="@bubble\.core\.ContainerAgent|@bubble\.core\.Agent" javaFilePattern="bubble\.core\.ContainerAgent|bubble\.core\.Agent"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.1/@ownedPorts.0"/> + <provideds name="NonameInterface" port="//@coreModel/@components.1/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="Sensor" features="//@coreModel/@responsibilities.8 //@coreModel/@responsibilities.1 //@coreModel/@responsibilities.37"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="" classPattern="@bubble\.core\.Sensor" javaFilePattern="bubble\.core\.Sensor"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.2/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.2/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.2/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.2/@ownedPorts.1"/> + </ownedPorts> + </components> + <components name="Task" features="//@coreModel/@responsibilities.4 //@coreModel/@responsibilities.5 //@coreModel/@responsibilities.6 //@coreModel/@responsibilities.39 //@coreModel/@responsibilities.43"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="" classPattern="@bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.3/@ownedPorts.0"/> + <provideds name="NonameInterface" port="//@coreModel/@components.3/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.3/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.3/@ownedPorts.1"/> + </ownedPorts> + </components> + <components name="Dealer" features="//@coreModel/@responsibilities.16 //@coreModel/@responsibilities.17 //@coreModel/@responsibilities.19 //@coreModel/@responsibilities.38"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.ProcessOrderTask|@bubble\.examples\.market\.Dealer|@bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder|bubble\.examples\.market\.Dealer|bubble\.examples\.market\.SellTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.3"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.4"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.5"/> + <requireds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.5"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.4/@ownedPorts.6"/> + </ownedPorts> + </components> + <components name="Customer" features="//@coreModel/@responsibilities.18 //@coreModel/@responsibilities.20 //@coreModel/@responsibilities.21 //@coreModel/@responsibilities.22 //@coreModel/@responsibilities.23"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.Customer|@bubble\.examples\.market\.RequestTask|@bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.Customer|bubble\.examples\.market\.RequestTask|bubble\.examples\.market\.BuyTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.3"/> + <requireds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.3"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.4"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.5"/> + <requireds name="NonameInterface" port="//@coreModel/@components.5/@ownedPorts.5"/> + </ownedPorts> + </components> + <components name="Clock" features="//@coreModel/@responsibilities.24 //@coreModel/@responsibilities.25 //@coreModel/@responsibilities.45"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.Timer|@bubble\.examples\.market\.InitializeTimerTask|@bubble\.examples\.market\.TimerTask" javaFilePattern="bubble\.examples\.market\.Timer|bubble\.examples\.market\.InitializeTimerTask|bubble\.examples\.market\.TimerTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.6/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.6/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.6/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.6/@ownedPorts.3"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.6/@ownedPorts.4"/> + </ownedPorts> + </components> + <components name="Bid" features="//@coreModel/@responsibilities.26"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.BidTask" javaFilePattern="bubble\.examples\.market\.BidTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.7/@ownedPorts.3"/> + </ownedPorts> + </components> + <components name="Buy" features="//@coreModel/@responsibilities.34 //@coreModel/@responsibilities.35 //@coreModel/@responsibilities.36"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.1"/> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.2"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.3"/> + <provideds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.3"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.3"/> + <requireds name="NonameInterface" port="//@coreModel/@components.8/@ownedPorts.3"/> + </ownedPorts> + </components> + <components name="ProcessOrder" features="//@coreModel/@responsibilities.27 //@coreModel/@responsibilities.28 //@coreModel/@responsibilities.14"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.2"/> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.3"/> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.3"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.9/@ownedPorts.4"/> + </ownedPorts> + </components> + <components name="Request" features="//@coreModel/@responsibilities.32 //@coreModel/@responsibilities.33"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.2"/> + <requireds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.3"/> + <requireds name="NonameInterface" port="//@coreModel/@components.10/@ownedPorts.3"/> + </ownedPorts> + </components> + <components name="Sell" features="//@coreModel/@responsibilities.29 //@coreModel/@responsibilities.30 //@coreModel/@responsibilities.31 //@coreModel/@responsibilities.40"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.0"/> + <requireds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.0"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.1"/> + <requireds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.1"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.2"/> + <requireds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.2"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.3"/> + </ownedPorts> + <ownedPorts name="NonamePort"> + <provideds name="NonameInterface" port="//@coreModel/@components.11/@ownedPorts.4"/> + </ownedPorts> + </components> + <components name="Market" features="//@coreModel/@responsibilities.15"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.Market" javaFilePattern="bubble\.examples\.market\.Market"/> + </extendedData> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.12/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="DealerSensor"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.DealerSensor" javaFilePattern="bubble\.examples\.market\.DealerSensor"/> + </extendedData> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.13/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="CustomerSensor"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.CustomerSensor" javaFilePattern="bubble\.examples\.market\.CustomerSensor"/> + </extendedData> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.14/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="ClockSensor"> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="" classPattern="@bubble\.examples\.market\.TimerSensor" javaFilePattern="bubble\.examples\.market\.TimerSensor"/> + </extendedData> + <ownedPorts name="NonamePort"> + <requireds name="NonameInterface" port="//@coreModel/@components.15/@ownedPorts.0"/> + </ownedPorts> + </components> + <components name="NonameComponent"/> + <responsibilities name="acceptEvent" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.0"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#addAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + <preconditions name="add" value="precondition( add, publishEvent, UCM Bubble, addEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.8" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.3"/> + <preconditions name="previousEvent" value="previousEvent( previousEvent, filterEvents, UCM Bubble, acceptEventfilterEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.19" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11" type="previousEvent" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.9"/> + </responsibilities> + <responsibilities name="initializeSensor" components="//@coreModel/@components.2"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:ManualStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.1"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Sensor#setAgent\(bubble\.core\.AbstractAgent\):void" classPattern="bubble\.core\.Sensor" javaFilePattern="bubble\.core\.Sensor"/> + </extendedData> + </responsibilities> + <responsibilities name="evaluateTasks" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.2"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#selectTasks\(\):java\.util\.Enumeration" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + <preconditions name="eventInput" value="precondition( eventInput, acceptEvent, UCM Bubble, acceptEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.6" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11"/> + </responsibilities> + <responsibilities name="addTask" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.3"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#addTask\(java\.lang\.String,bubble\.core\.Task\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="active" components="//@coreModel/@components.3"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.4"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Task#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + <preconditions name="precondition" value="precondition( precondition, addTask, UCM Bubble, addTask )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.5" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3"/> + <preconditions name="enabled" value="precondition( enabled, enabled, UCM Bubble, isEnabled )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.12" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.2"/> + <preconditions name="previousEvent" value="previousEvent( previousEvent, evaluateTasks, UCM Bubble, activeEvaluateTask )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.21" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" type="previousEvent" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3"/> + </responsibilities> + <responsibilities name="runTask" components="//@coreModel/@components.3"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.5"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Task#run\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + </responsibilities> + <responsibilities name="initializeTask" components="//@coreModel/@components.3"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.6"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Task#<init>\(bubble\.core\.AbstractAgent\)" classPattern="bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + </responsibilities> + <responsibilities name="runAgent" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.7"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#runTasks\(\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="filterEvents" components="//@coreModel/@components.2"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.8"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Sensor#isAgentEventFiltered\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.core\.Sensor" javaFilePattern="bubble\.core\.Sensor"/> + </extendedData> + <preconditions name="previousEvent" value="previousEvent( previousEvent, acceptEventToFilter, UCM Bubble, filterEventsacceptEventToFilter )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.20" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.9" type="previousEvent" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.8"/> + </responsibilities> + <responsibilities name="configureSensor" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.9"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#addSensor\(bubble\.core\.Sensor\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="registerSensor" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.10"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.ContainerAgent#addRegistry\(bubble\.core\.Sensor\):void" classPattern="bubble\.core\.ContainerAgent" javaFilePattern="bubble\.core\.ContainerAgent"/> + </extendedData> + </responsibilities> + <responsibilities name="publishEvent" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.11"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.ContainerAgent#handleAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.ContainerAgent" javaFilePattern="bubble\.core\.ContainerAgent"/> + </extendedData> + </responsibilities> + <responsibilities name="addEvent" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.12"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#updateAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="dispatchEvent" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.13"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.ContainerAgent#dispatchAllEvents\(\):void" classPattern="bubble\.core\.ContainerAgent" javaFilePattern="bubble\.core\.ContainerAgent"/> + </extendedData> + </responsibilities> + <responsibilities name="forkcontainer" components="//@coreModel/@components.9"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.14"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </extendedData> + </responsibilities> + <responsibilities name="startAuction" components="//@coreModel/@components.12"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.15"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.Market#run\(\):void" classPattern="bubble\.examples\.market\.Market" javaFilePattern="bubble\.examples\.market\.Market"/> + </extendedData> + </responsibilities> + <responsibilities name="storeRequest" components="//@coreModel/@components.4"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:ManualStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.16"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </extendedData> + </responsibilities> + <responsibilities name="initializeTransaction" components="//@coreModel/@components.4"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.17"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Executed'). "/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"/> + </responsibilities> + <responsibilities name="updateStock" components="//@coreModel/@components.5"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.18"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.12" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + </responsibilities> + <responsibilities name="cancelOrder" components="//@coreModel/@components.4"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.19"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + </responsibilities> + <responsibilities name="checkPreferences" components="//@coreModel/@components.5"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.20"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#checkPreferences\(\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </extendedData> + </responsibilities> + <responsibilities name="initializeRequest" components="//@coreModel/@components.5"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.21"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration executionConditionNotVerifiedState="NotExecuted" exceptionState="Faulty" useCustomConfiguration="true"> + <simpleExpressionExecutionConditions name="TypeIs1" executionState="Executed"> + <expression xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.7"/> + </simpleExpressionExecutionConditions> + </simpleExecutionConditionConfiguration> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </extendedData> + <preconditions name="order precondition" value="precondition( order precondition, checkPreferences, UCM Market, order )." useCaseMap="//@coreModel/@useCaseMaps.1" event="//@coreModel/@events.3" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2" dependencyResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5"/> + <preconditions name="mapping" value="mapping( mapping, publishEvent, UCM Bubble, publishEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.9" family="//@coreModel/@families.1" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.3"/> + </responsibilities> + <responsibilities name="evaluateTransaction" components="//@coreModel/@components.5"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.22"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode=" executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed'):- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#evaluateTransaction\(\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + </responsibilities> + <responsibilities name="decideOnTransaction" components="//@coreModel/@components.5"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.23"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + <preconditions name="decide precondition" value="precondition( decide precondition, evaluateTransaction, UCM Market, decide )." useCaseMap="//@coreModel/@useCaseMaps.1" event="//@coreModel/@events.4" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.2" dependencyResponsibility="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.6"/> + </responsibilities> + <responsibilities name="activateOrderTimeout" components="//@coreModel/@components.6"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.24"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.11" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#body\(bubble\.core\.AgentEvent\):boolean|bubble\.examples\.market\.InitializeTimerTask#addTaskForTimeout\(bubble\.examples\.market\.TimerTask\):void" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </extendedData> + <preconditions name="run " value="mapping( run , runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.5" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="sendTimeoutNotification" components="//@coreModel/@components.6"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.25"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty'):- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(_). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.TimerTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.TimerTask" javaFilePattern="bubble\.examples\.market\.TimerTask"/> + </extendedData> + </responsibilities> + <responsibilities name="offerProduct" components="//@coreModel/@components.7"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.26"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy" prologCode="executionState('Faulty') :- executionTag(T), isExitError(T). executionState('Executed') :- executionTag(T). executionState('NotExecuted')."/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BidTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BidTask" javaFilePattern="bubble\.examples\.market\.BidTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, runTask, UCM Bubble, run )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.10" family="//@coreModel/@families.0" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="acceptRequest" components="//@coreModel/@components.9"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.27"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration executionConditionNotVerifiedState="NotExecuted" exceptionState="Faulty" useCustomConfiguration="true"> + <simpleExpressionExecutionConditions name="TypeIs2AndReturnValueTrue" executionState="Executed"> + <expression xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.2"/> + </simpleExpressionExecutionConditions> + </simpleExecutionConditionConfiguration> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, active, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.2" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="sendContract" components="//@coreModel/@components.9"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.28"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.3" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.ProcessOrderTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.ProcessOrderTask" javaFilePattern="bubble\.examples\.market\.ProcessOrder"/> + </extendedData> + <preconditions name="transaction" value="precondition( transaction, acceptRequest, UCM Market, acceptRequest )." useCaseMap="//@coreModel/@useCaseMaps.1" event="//@coreModel/@events.13" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" dependencyResponsibility="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.4"/> + <preconditions name="run task" value="mapping( run task, runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.2" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="performTransaction" components="//@coreModel/@components.11"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.29"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.4" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, active, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="confirmTransaction" components="//@coreModel/@components.11"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.30"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.7" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="undoTransaction" components="//@coreModel/@components.11"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.31"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.1" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.4" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.2" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="listenToBids" components="//@coreModel/@components.10"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.32"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration executionConditionNotVerifiedState="NotExecuted" exceptionState="Faulty" useCustomConfiguration="true"> + <simpleExpressionExecutionConditions name="TypeIs1AndReturnValueTrue" executionState="Executed"> + <expression xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.6"/> + </simpleExpressionExecutionConditions> + </simpleExecutionConditionConfiguration> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </extendedData> + <preconditions name="active" value="mapping( active, active, UCM Bubble, bidEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.18" family="//@coreModel/@families.1" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="placeOrder" components="//@coreModel/@components.10"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.33"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration executionConditionNotVerifiedState="NotExecuted" exceptionState="Faulty" useCustomConfiguration="true"> + <simpleExpressionExecutionConditions name="TypeIs1" executionState="Executed"> + <expression xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.7"/> + </simpleExpressionExecutionConditions> + </simpleExecutionConditionConfiguration> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.RequestTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.RequestTask" javaFilePattern="bubble\.examples\.market\.RequestTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.1" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="receiveContract" components="//@coreModel/@components.8"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.34"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.8" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, active, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.3" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.5" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="sendResponse" components="//@coreModel/@components.8"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.35"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.9" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + <preconditions name="mapping" value="mapping( mapping, runTask, UCM Bubble, none )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.11" family="//@coreModel/@families.3" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.3" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + </responsibilities> + <responsibilities name="acceptOrder" components="//@coreModel/@components.8"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.36"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.10" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.BuyTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.BuyTask" javaFilePattern="bubble\.examples\.market\.BuyTask"/> + </extendedData> + <preconditions name="active" value="mapping( active, active, UCM Bubble, saleEvent )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.16" family="//@coreModel/@families.6" sourceResponsibility="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.8" type="mapping" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4"/> + </responsibilities> + <responsibilities name="acceptEventToFilter" components="//@coreModel/@components.2"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.37"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Sensor#updateAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.Sensor" javaFilePattern="bubble\.core\.Sensor"/> + </extendedData> + <preconditions name="register" value="precondition( register, registerSensor, UCM Bubble, registerSensor )." useCaseMap="//@coreModel/@useCaseMaps.0" event="//@coreModel/@events.7" sourceResponsibility="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.8" dependencyResponsibility="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.4"/> + </responsibilities> + <responsibilities name="updateStore" components="//@coreModel/@components.4"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.38"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.0" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#body\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + </responsibilities> + <responsibilities name="sendEvent" components="//@coreModel/@components.3" description="sendEvent"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.39"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Task#sendAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + </responsibilities> + <responsibilities name="forkSell" components="//@coreModel/@components.11"> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.40"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.5" useDefaultConfiguration="true"/> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.SellTask#entry\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.SellTask" javaFilePattern="bubble\.examples\.market\.SellTask"/> + </extendedData> + </responsibilities> + <responsibilities name="initializeAgent" components="//@coreModel/@components.0"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.41"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#initialize\(\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="forkcontainer" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.42"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.ContainerAgent#handleAgentEvent\(bubble\.core\.AgentEvent\):void" classPattern="bubble\.core\.ContainerAgent" javaFilePattern="bubble\.core\.ContainerAgent"/> + </extendedData> + </responsibilities> + <responsibilities name="enabled" components="//@coreModel/@components.3"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.43"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Task#setEnabled\(boolean\):void" classPattern="bubble\.core\.Task" javaFilePattern="bubble\.core\.Task"/> + </extendedData> + </responsibilities> + <responsibilities name="initializeAgents" components="//@coreModel/@components.1"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.44"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.engine.executionstate.javalogtrace:JavalogTraceInferenceStrategy"/> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.core" behaviorPattern="bubble\.core\.Agent#initialize\(\):void" classPattern="bubble\.core\.Agent" javaFilePattern="bubble\.core\.Agent"/> + </extendedData> + </responsibilities> + <responsibilities name="removeTimer" components="//@coreModel/@components.6"> + <extendedData key="org.isistan.flabot.engine|stateDeterminationStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:TraceBasedStateDeterminationStrategy" responsibility="//@coreModel/@responsibilities.45"> + <traceInferenceStrategy xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration executionConditionNotVerifiedState="NotExecuted" exceptionState="Faulty" preFilters="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.13 //@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.14" useCustomConfiguration="true"> + <simpleExpressionExecutionConditions name="ReturnValueIsTrue" executionState="Executed"> + <expression xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:OrExpression"> + <expressionList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" parentExpression="//@coreModel/@responsibilities.45/@extendedData.0/@value/@traceInferenceStrategy/@simpleExecutionConditionConfiguration/@simpleExpressionExecutionConditions.0/@expression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.15"/> + <expressionList xsi:type="org.isistan.flabot.executionstatemapping.model.semantic:SingleExpression" parentExpression="//@coreModel/@responsibilities.45/@extendedData.0/@value/@traceInferenceStrategy/@simpleExecutionConditionConfiguration/@simpleExpressionExecutionConditions.0/@expression" executionCondition="//@extendedData.0/@value/@methodExecutionConditionsTree/@persistentList.0/@persistentList.0/@persistentList.16"/> + </expression> + </simpleExpressionExecutionConditions> + </simpleExecutionConditionConfiguration> + </traceInferenceStrategy> + </value> + </extendedData> + <extendedData key="org.isistan.flabot.launcher|logFilter"> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + <value xsi:type="filtermodel.ecore:LogFilter" gaugeTypes="7"/> + </extendedData> + <extendedData key="org.isistan.flabot.mapping|mapping"> + <value xsi:type="org.isistan.flabot.mapping.mappingmodel:PatternMapping" packagePattern="bubble\.examples\.market" behaviorPattern="bubble\.examples\.market\.InitializeTimerTask#body\(bubble\.core\.AgentEvent\):boolean|bubble\.examples\.market\.InitializeTimerTask#active\(bubble\.core\.AgentEvent\):boolean" classPattern="bubble\.examples\.market\.InitializeTimerTask" javaFilePattern="bubble\.examples\.market\.InitializeTimerTask"/> + </extendedData> + </responsibilities> + <useCaseMaps name="UCM Bubble" description="enable task" levelInfo="Architectural"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2" name="running tasks"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.7" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.2" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.4" role="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.5" role="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4" name="configurating agent tasks"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.6" role="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.3" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.41" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.5" name="initializing agents"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.6" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.3" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.9" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.2" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.4" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.1" role="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.1" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.10" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.7" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.5" next="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.6" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.44" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.1 //@coreModel/@useCaseMaps.0/@paths.3/@nodes.6" startNodes="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.4" name="managing flows of events"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.5" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.1" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.12" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.4" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.5" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.11" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.3" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.39" role="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.3" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.7 //@coreModel/@useCaseMaps.0/@paths.3/@nodes.2" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.42" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.5" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.8" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.13" role="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.7" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.9" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.37" role="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.8" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.8" role="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.9" next="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.10" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.0" role="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.1" startNodes="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.0" next="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.1" map="//@coreModel/@useCaseMaps.0" responsibility="//@coreModel/@responsibilities.43" role="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + </paths> + <componentRoles name="anAgent" component="//@coreModel/@components.0" abstractInfo="RedefinedComponent"/> + <componentRoles name="aSensor" component="//@coreModel/@components.2" abstractInfo="RedefinedComponent"/> + <componentRoles name="aTask" component="//@coreModel/@components.3" abstractInfo="RedefinedComponent"/> + <componentRoles name="anAgentContainer" component="//@coreModel/@components.1"/> + </useCaseMaps> + <useCaseMaps name="UCM Market"> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1" startNodes="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2" name="bidding"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.15" role="//@coreModel/@useCaseMaps.1/@componentRoles.8"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.26" role="//@coreModel/@useCaseMaps.1/@componentRoles.2"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.32" role="//@coreModel/@useCaseMaps.1/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.20" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.1" startNodes="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2" name="requesting"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.3" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.21" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.4" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.33" role="//@coreModel/@useCaseMaps.1/@componentRoles.5"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.5" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.27" role="//@coreModel/@useCaseMaps.1/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.1" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.16" role="//@coreModel/@useCaseMaps.1/@componentRoles.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.1 //@coreModel/@useCaseMaps.1/@paths.2/@nodes.4" startNodes="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.2" name="issuing contract"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.17" role="//@coreModel/@useCaseMaps.1/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.5 //@coreModel/@useCaseMaps.1/@paths.2/@nodes.7" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.28" role="//@coreModel/@useCaseMaps.1/@componentRoles.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.6" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.34" role="//@coreModel/@useCaseMaps.1/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.5" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.1" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.22" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.4" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.24" role="//@coreModel/@useCaseMaps.1/@componentRoles.7"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.1 //@coreModel/@useCaseMaps.1/@paths.3/@nodes.6" startNodes="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.2" name="buying"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.10"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.3" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.23" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.4" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.35" role="//@coreModel/@useCaseMaps.1/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.3" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.5" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.29" role="//@coreModel/@useCaseMaps.1/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.7 //@coreModel/@useCaseMaps.1/@paths.3/@nodes.10" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.40" role="//@coreModel/@useCaseMaps.1/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.9"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.5" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.8" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.30" role="//@coreModel/@useCaseMaps.1/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.7" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.9" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.36" role="//@coreModel/@useCaseMaps.1/@componentRoles.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.8" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.6" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.18" role="//@coreModel/@useCaseMaps.1/@componentRoles.0"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.5" next="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.1" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.38" role="//@coreModel/@useCaseMaps.1/@componentRoles.1"/> + </paths> + <paths name="NonamePath" endNodes="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.1 //@coreModel/@useCaseMaps.1/@paths.4/@nodes.5" startNodes="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.0"> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" next="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.4" name="cancelling order"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.3"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.3" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.31" role="//@coreModel/@useCaseMaps.1/@componentRoles.4"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.2" next="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.1" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.19" role="//@coreModel/@useCaseMaps.1/@componentRoles.1"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ForkNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.0" next="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.2 //@coreModel/@useCaseMaps.1/@paths.4/@nodes.6" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.25" role="//@coreModel/@useCaseMaps.1/@componentRoles.7"/> + <nodes xsi:type="org.isistan.flabot.coremodel:SimplePathNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.6"/> + <nodes xsi:type="org.isistan.flabot.coremodel:ResponsibilityNode" previous="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.4" next="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.5" map="//@coreModel/@useCaseMaps.1" responsibility="//@coreModel/@responsibilities.45" role="//@coreModel/@useCaseMaps.1/@componentRoles.7"/> + </paths> + <componentRoles name="aCustomer" component="//@coreModel/@components.5"/> + <componentRoles name="aDealer" component="//@coreModel/@components.4"/> + <componentRoles name="aBid" component="//@coreModel/@components.7"/> + <componentRoles name="aProcessOrder" component="//@coreModel/@components.9"/> + <componentRoles name="aSell" component="//@coreModel/@components.11"/> + <componentRoles name="aRequest" component="//@coreModel/@components.10"/> + <componentRoles name="aBuy" component="//@coreModel/@components.8"/> + <componentRoles name="aSystemClock" component="//@coreModel/@components.6"/> + <componentRoles name="aMarket" component="//@coreModel/@components.12"/> + <componentRoles name="aCustomerSensor" component="//@coreModel/@components.14"/> + <componentRoles name="aDealerSensor" component="//@coreModel/@components.13"/> + <componentRoles name="aClockSensor" component="//@coreModel/@components.15"/> + </useCaseMaps> + <interfaceLinks source="//@coreModel/@components.7/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.10/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.7/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.10/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.10/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.5/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.9/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.10/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.9/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.9/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.2/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.6/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.9/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.8/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.9/@ownedPorts.1/@requireds.1"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.8/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.11/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.11/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.6/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.11/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.8/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.4/@provideds.0" target="//@coreModel/@components.11/@ownedPorts.1/@requireds.1"/> + <interfaceLinks source="//@coreModel/@components.8/@ownedPorts.1/@provideds.1" target="//@coreModel/@components.11/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.8/@ownedPorts.1/@requireds.1"/> + <interfaceLinks source="//@coreModel/@components.8/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.5/@ownedPorts.3/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.0/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.3/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.3/@ownedPorts.0/@provideds.1" target="//@coreModel/@components.0/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.1/@ownedPorts.0/@provideds.0" target="//@coreModel/@components.2/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.1/@ownedPorts.0/@provideds.1" target="//@coreModel/@components.3/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.5/@provideds.0" target="//@coreModel/@components.11/@ownedPorts.2/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.5/@provideds.0" target="//@coreModel/@components.7/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.5/@provideds.0" target="//@coreModel/@components.9/@ownedPorts.2/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.7/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.5/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.11/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.5/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.9/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.4/@ownedPorts.5/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.0/@ownedPorts.1/@provideds.0" target="//@coreModel/@components.2/@ownedPorts.1/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.4/@ownedPorts.6/@provideds.0" target="//@coreModel/@components.13/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.4/@provideds.0" target="//@coreModel/@components.14/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.5/@provideds.0" target="//@coreModel/@components.10/@ownedPorts.2/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.5/@ownedPorts.5/@provideds.0" target="//@coreModel/@components.8/@ownedPorts.2/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.10/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.5/@ownedPorts.5/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.8/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.5/@ownedPorts.5/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.7/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.12/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.10/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.7/@ownedPorts.3/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.9/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.10/@ownedPorts.3/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.8/@ownedPorts.3/@provideds.1" target="//@coreModel/@components.9/@ownedPorts.3/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.11/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.8/@ownedPorts.3/@requireds.1"/> + <interfaceLinks source="//@coreModel/@components.6/@ownedPorts.2/@provideds.0" target="//@coreModel/@components.15/@ownedPorts.0/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.6/@ownedPorts.3/@provideds.0" target="//@coreModel/@components.9/@ownedPorts.4/@requireds.0"/> + <interfaceLinks source="//@coreModel/@components.11/@ownedPorts.4/@provideds.0" target="//@coreModel/@components.6/@ownedPorts.4/@requireds.0"/> + <families name="family StartAuction - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="family StartAuction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family StartAuction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family StartAuction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.2" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family StartAuction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <events key="//@coreModel/@events.5" value="//@coreModel/@events.5"/> + <events key="//@coreModel/@events.6" value="//@coreModel/@events.14"/> + <events key="//@coreModel/@events.7" value="//@coreModel/@events.7"/> + <events key="//@coreModel/@events.8" value="//@coreModel/@events.8"/> + <events key="//@coreModel/@events.12" value="//@coreModel/@events.12"/> + </families> + <families name="family InitializeRequest - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2 //@coreModel/@useCaseMaps.1/@paths.1/@nodes.3 //@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="family InitializeRequest - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family InitializeRequest - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family InitializeRequest - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.5" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family InitializeRequest - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <events key="//@coreModel/@events.5" value="//@coreModel/@events.5"/> + <events key="//@coreModel/@events.6" value="//@coreModel/@events.6"/> + <events key="//@coreModel/@events.7" value="//@coreModel/@events.7"/> + <events key="//@coreModel/@events.8" value="//@coreModel/@events.8"/> + <events key="//@coreModel/@events.12" value="//@coreModel/@events.12"/> + <events key="//@coreModel/@events.19" value="//@coreModel/@events.18"/> + <events key="//@coreModel/@events.20" value="//@coreModel/@events.18"/> + <events key="//@coreModel/@events.21" value="//@coreModel/@events.22"/> + </families> + <families name="family InitializeTransaction - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3 //@coreModel/@useCaseMaps.1/@paths.1/@nodes.4" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1 //@coreModel/@useCaseMaps.0"> + <familyElement name="family InitializeTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family InitializeTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family InitializeTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.3" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family InitializeTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + </families> + <families name="family DecideOnTransaction - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.5 //@coreModel/@useCaseMaps.1/@paths.3/@nodes.3" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="family DecideOnTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family DecideOnTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family DecideOnTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family DecideOnTransaction - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + </families> + <families name="family UpdateStore - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.4 //@coreModel/@useCaseMaps.1/@paths.3/@nodes.7 //@coreModel/@useCaseMaps.1/@paths.4/@nodes.2" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1 //@coreModel/@useCaseMaps.0"> + <familyElement name="family UpdateStore - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.1" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family UpdateStore - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.10" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family UpdateStore - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family UpdateStore - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + </families> + <families name="family SendTimeoutNotification - Publish" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.7" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="family SendTimeoutNotification - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.7" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family SendTimeoutNotification - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.11" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family SendTimeoutNotification - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.4" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family SendTimeoutNotification - Publish" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + </families> + <families name="family update stock" associatedResponsibilities="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.8" architecturalUseCaseMaps="//@coreModel/@useCaseMaps.0" functionalUseCaseMaps="//@coreModel/@useCaseMaps.1"> + <familyElement name="family update stock" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.0" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.0"/> + <familyElement name="family update stock" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.9" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.1"/> + <familyElement name="family update stock" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.6" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.2"/> + <familyElement name="family update stock" useCaseMap="//@coreModel/@useCaseMaps.0" functionalComponent="//@coreModel/@useCaseMaps.1/@componentRoles.8" architecturalComponent="//@coreModel/@useCaseMaps.0/@componentRoles.3"/> + <events key="//@coreModel/@events.5" value="//@coreModel/@events.5"/> + <events key="//@coreModel/@events.6" value="//@coreModel/@events.16"/> + <events key="//@coreModel/@events.7" value="//@coreModel/@events.7"/> + <events key="//@coreModel/@events.8" value="//@coreModel/@events.16"/> + <events key="//@coreModel/@events.12" value="//@coreModel/@events.12"/> + <events key="//@coreModel/@events.16" value="//@coreModel/@events.16"/> + <events key="//@coreModel/@events.19" value="//@coreModel/@events.16"/> + <events key="//@coreModel/@events.20" value="//@coreModel/@events.16"/> + <events key="//@coreModel/@events.21" value="//@coreModel/@events.17"/> + </families> + <events name="transaction" description="UCM Market"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="orderCancelled" description="UCM Market"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="sendTimeout" conditionEvent="eventPreFilter(sendTimeout). eventPreFilterAccepts(sendTimeout, Tag) :- preScope(PreScope), argument(Tag, Argument), scopeAcceptsSnapshot(PreScope, Argument). " description="UCM Market"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0"/> + </value> + </extendedData> + </events> + <events name="order" conditionEvent="eventPreFilter(order). eventPreFilterAccepts(order, Tag) :- returnValue(Tag, ReturnValue), snapshotToString(ReturnValue, ReturnString), stringsEqual(ReturnString, 'true'). " description="UCM Market" associatedConditions="//@coreModel/@responsibilities.21/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1"/> + </value> + </extendedData> + </events> + <events name="decide" conditionEvent="eventPreFilter(decide). eventPreFilterAccepts(decide, Tag) :- returnValue(Tag, ReturnValue), snapshotToString(ReturnValue, ReturnValueString), stringsEqual(ReturnValueString, 'true')." description="UCM Market" associatedConditions="//@coreModel/@responsibilities.23/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.1"/> + </value> + </extendedData> + </events> + <events name="addTask" conditionEvent="eventPreFilter(addTask). eventPreFilterAccepts(addTask, Tag) :- preScope(PreScope), argument(Tag, Argument), scopeAcceptsSnapshot(PreScope, Argument)." description="UCM Bubble" associatedConditions="//@coreModel/@responsibilities.4/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0"/> + </value> + </extendedData> + </events> + <events name="acceptEvent" description="UCM Bubble" associatedConditions="//@coreModel/@responsibilities.2/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="registerSensor" conditionEvent="eventPreFilter(registerSensor). eventPreFilterAccepts(registerSensor, Tag) :- preScope(PreScope), argument(Tag, Argument), scopeAcceptsSnapshot(PreScope, Argument). " description="UCM Bubble" associatedConditions="//@coreModel/@responsibilities.37/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0"/> + </value> + </extendedData> + </events> + <events name="addEvent" conditionEvent="eventPreFilter(addEvent). eventPreFilterAccepts(addEvent, Tag) :- preScope(PreScope), argument(Tag, Argument), scopeAcceptsSnapshot(PreScope, Argument)." description="UCM Bubble" associatedConditions="//@coreModel/@responsibilities.0/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.0"/> + </value> + </extendedData> + </events> + <events name="publishEvent" description="Mapping to Bubble" associatedConditions="//@coreModel/@responsibilities.21/@preconditions.1"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="run" description="Mapping to Bubble" associatedConditions="//@coreModel/@responsibilities.26/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="none" associatedConditions="//@coreModel/@responsibilities.24/@preconditions.0 //@coreModel/@responsibilities.28/@preconditions.1 //@coreModel/@responsibilities.33/@preconditions.0 //@coreModel/@responsibilities.27/@preconditions.0 //@coreModel/@responsibilities.34/@preconditions.0 //@coreModel/@responsibilities.35/@preconditions.0 //@coreModel/@responsibilities.29/@preconditions.0 //@coreModel/@responsibilities.30/@preconditions.0 //@coreModel/@responsibilities.31/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="isEnabled" conditionEvent=" eventPreFilterAccepts(isEnabled, Tag) :- argument(Tag, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringEquals(ArgumentFieldFieldName, 'b'), stringEquals(ArgumentFieldFieldValue, 'false'). eventState(isEnabled, 'Faulty'):- executionTag(_). eventState(isEnabled, 'Executed'). " associatedConditions="//@coreModel/@responsibilities.4/@preconditions.1"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="acceptRequest" conditionEvent="eventPreFilter(acceptRequest). eventPreFilterAccepts(acceptRequest, Tag) :- returnValue(Tag, ReturnValue), snapshotToString(ReturnValue, ReturnValueString), stringsEqual(ReturnValueString, 'true'), argument(Tag, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type:int'), stringsEqual(ArgumentFieldFieldValue, '2')." associatedConditions="//@coreModel/@responsibilities.28/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.6"/> + </value> + </extendedData> + </events> + <events name="alwaysexecuted" conditionEvent="eventState(alwaysexecuted, 'Executed')."> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="okSaleEvent" conditionEvent="eventPreFilter(okSaleEvent). eventPreFilterAccepts(okSaleEvent, Tag) :- argument(Tag, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type'), stringsEqual(ArgumentFieldFieldValue, '3')."> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.5"/> + </value> + </extendedData> + </events> + <events name="saleEvent" conditionEvent="eventPreFilter(saleEvent). eventPreFilterAccepts(saleEvent, Tag) :- argument(Tag, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type'), stringsEqual(ArgumentFieldFieldValue, '3')." associatedConditions="//@coreModel/@responsibilities.36/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.5"/> + </value> + </extendedData> + </events> + <events name="saleInEvaluateTasks" conditionEvent="eventPreFilter(saleInEvaluateTasks). eventPreFilterAccepts(saleInEvaluateTasks, Tag) :- internalEvent(Tag, Internal), argument(Internal, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type'), stringsEqual(ArgumentFieldFieldValue, '3')."> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.4"/> + </value> + </extendedData> + </events> + <events name="bidEvent" conditionEvent="eventPreFilter(bidEvent). eventPreFilterAccepts(bidEvent, Tag) :- argument(Tag, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type'), stringsEqual(ArgumentFieldFieldValue, '1')." associatedConditions="//@coreModel/@responsibilities.32/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.3"/> + </value> + </extendedData> + </events> + <events name="acceptEventfilterEvent" associatedConditions="//@coreModel/@responsibilities.0/@preconditions.1"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="filterEventsacceptEventToFilter" associatedConditions="//@coreModel/@responsibilities.8/@preconditions.0"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="activeEvaluateTask" associatedConditions="//@coreModel/@responsibilities.4/@preconditions.2"> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.engine.executionstate:SimplePrologProviderStrategy"/> + </extendedData> + </events> + <events name="bidInEvaluateTasks" conditionEvent="eventPreFilter(bidInEvaluateTasks). eventPreFilterAccepts(bidInEvaluateTasks, Tag) :- internalEvent(Tag, Internal), argument(Internal, ArgumentField), snapshotField(ArgumentField, field(ArgumentFieldFieldName, ArgumentFieldFieldValue)), stringContains(ArgumentFieldFieldName, '#type'), stringsEqual(ArgumentFieldFieldValue, '1')."> + <extendedData key="org.isistan.flabot.engine|prologProviderStrategy"> + <value xsi:type="org.isistan.flabot.executionstatemapping.model.strategymodel:SimpleExecutionConditionTraceInferenceStrategy"> + <simpleExecutionConditionConfiguration preFilters="//@extendedData.0/@value/@generalExecutionConditionsTree/@persistentList.2"/> + </value> + </extendedData> + </events> + </coreModel> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Component Diagram Bubble" coreModel="//@coreModel"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.0" detailLevel="2"> + <children semanticModel="//@coreModel/@components.0/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.0/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.0/@children.3/@children.0/@children.1/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.0/@ownedPorts.0/@provideds.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.17" target="//@diagrams.0/@children.3/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="35" height="-2"/> + <secondRelativeDimension width="39" height="-86"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="34" height="83"/> + <secondRelativeDimension width="38" height="-1"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="134"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.0/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.0/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.27" target="//@diagrams.0/@children.2/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="1" height="-37"/> + <secondRelativeDimension width="-286" height="-1"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="61"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="-18" y="14"/> + <size width="258" height="224"/> + <backgroundColor red="197" green="226" blue="226"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.1" detailLevel="2"> + <children semanticModel="//@coreModel/@components.1/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.1/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.19" target="//@diagrams.0/@children.2/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension height="-26"/> + <secondRelativeDimension width="74" height="85"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-106" height="-27"/> + <secondRelativeDimension width="-32" height="84"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-106" height="-61"/> + <secondRelativeDimension width="-32" height="50"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-105" height="-113"/> + <secondRelativeDimension width="-31" height="-2"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.1/@ownedPorts.0/@provideds.1"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.20" target="//@diagrams.0/@children.3/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-1" height="177"/> + <secondRelativeDimension width="364" height="100"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-259" height="178"/> + <secondRelativeDimension width="106" height="101"/> + </bendpoints> + </sourceConnections> + </children> + <location x="237" y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="324" y="205"/> + <size width="277" height="195"/> + <backgroundColor red="255" green="223" blue="191"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.2" detailLevel="2"> + <children semanticModel="//@coreModel/@components.2/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.2/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.0/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="71"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.2/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.2/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.0/@children.0/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="11"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="512" y="28"/> + <size width="258" height="149"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.3" detailLevel="2"> + <children semanticModel="//@coreModel/@components.3/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.3/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.0/@children.0/@children.0/@children.1/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.3/@ownedPorts.0/@provideds.1"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.18" target="//@diagrams.0/@children.0/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="72"/> + <secondRelativeDimension width="68" height="134"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="74" height="-90"/> + <secondRelativeDimension width="67" height="78"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="74" height="-136"/> + <secondRelativeDimension width="70" height="-2"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.3/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.3/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.0/@children.1/@children.0/@children.1/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="218" y="60"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="-22" y="252"/> + <size width="258" height="166"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="UCM Bubble" coreModel="//@coreModel" map="//@coreModel/@useCaseMaps.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.4" detailLevel="2" targetConnections="//@diagrams.1/@children.2/@children.1/@sourceConnections.0"> + <location x="13" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.0/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.4/@preconditions.0" lineStyle="2" lineWidth="2" target="//@diagrams.1/@children.2/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="255"/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.4/@preconditions.1" lineStyle="2" lineWidth="2" target="//@diagrams.1/@children.0/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="255"/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.4/@preconditions.2" lineWidth="2" target="//@diagrams.1/@children.2/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.5" detailLevel="2" targetConnections="//@diagrams.1/@children.0/@children.0/@sourceConnections.0"> + <location x="52" y="102"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.9"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.2" detailLevel="2" targetConnections="//@diagrams.1/@children.2/@children.5/@sourceConnections.0"> + <location x="203" y="48"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.2/@children.2"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.4" detailLevel="2" targetConnections="//@diagrams.1/@children.7/@sourceConnections.0"> + <location x="187" y="127"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.6/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.2" detailLevel="2" targetConnections="//@diagrams.1/@children.11/@sourceConnections.0 //@diagrams.1/@children.0/@children.0/@sourceConnections.2"> + <location x="129" y="119"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.4" target="//@diagrams.1/@children.12"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="128" y="284"/> + <size width="257" height="167"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.3" detailLevel="2" targetConnections="//@diagrams.1/@children.2/@children.3/@sourceConnections.0"> + <location x="30" y="80"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.6/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.8" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.4/@sourceConnections.0 //@diagrams.1/@children.1/@children.2/@sourceConnections.1"> + <location x="101" y="118"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.37/@preconditions.0" lineStyle="2" lineWidth="2" target="//@diagrams.1/@children.6/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="255"/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.9" detailLevel="2" targetConnections="//@diagrams.1/@children.1/@children.1/@sourceConnections.0 //@diagrams.1/@children.2/@children.7/@sourceConnections.2"> + <location x="78" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.2/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.8/@preconditions.0" lineWidth="2" target="//@diagrams.1/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="458" y="42"/> + <size width="178" height="163"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.2" detailLevel="2" targetConnections="//@diagrams.1/@children.3/@sourceConnections.0"> + <location x="19" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.2/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.3" detailLevel="2" targetConnections="//@diagrams.1/@children.2/@children.0/@sourceConnections.0 //@diagrams.1/@children.0/@children.0/@sourceConnections.3"> + <location x="23" y="117"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.0/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.2/@preconditions.0" lineStyle="2" lineWidth="2" target="//@diagrams.1/@children.2/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="255"/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.3" detailLevel="2" targetConnections="//@diagrams.1/@children.0/@children.2/@sourceConnections.0 //@diagrams.1/@children.0/@children.0/@sourceConnections.1"> + <location x="115" y="116"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.2/@children.4"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.2" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.6/@sourceConnections.0"> + <location x="114" y="68"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.1/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.1" targetConnections="//@diagrams.1/@children.2/@children.2/@sourceConnections.0"> + <location x="71" y="130"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.4" detailLevel="2" targetConnections="//@diagrams.1/@children.4/@sourceConnections.0"> + <location x="153" y="172"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.0/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.10" targetConnections="//@diagrams.1/@children.2/@children.7/@sourceConnections.0"> + <location x="122" y="1"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.10"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.11" detailLevel="2" targetConnections="//@diagrams.1/@children.1/@children.2/@sourceConnections.0 //@diagrams.1/@children.2/@children.1/@sourceConnections.1"> + <location x="128" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.2/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.0/@preconditions.0" lineStyle="2" lineWidth="2" target="//@diagrams.1/@children.6/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="255"/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@responsibilities.0/@preconditions.1" lineWidth="2" target="//@diagrams.1/@children.1/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="197" y="57"/> + <size width="191" height="203"/> + <backgroundColor red="168" green="168" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.0"> + <location x="140" y="56"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.0" target="//@diagrams.1/@children.2/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.1/@nodes.0"> + <location x="410" y="314"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.1" target="//@diagrams.1/@children.2/@children.5"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.1" targetConnections="//@diagrams.1/@children.6/@children.0/@sourceConnections.0"> + <location x="629" y="182"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.4" detailLevel="2" targetConnections="//@diagrams.1/@children.1/@children.0/@sourceConnections.0 //@diagrams.1/@children.1/@children.1/@sourceConnections.1"> + <location x="75" y="16"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.5"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.2" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.3/@sourceConnections.0"> + <location x="144" y="61"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.8"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.3" detailLevel="2" targetConnections="//@diagrams.1/@children.0/@children.3/@sourceConnections.0 //@diagrams.1/@children.2/@children.7/@sourceConnections.1"> + <location x="27" y="129"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" targetTerminal="Terminal.Right" target="//@diagrams.1/@children.6/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.5" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.2/@sourceConnections.0" rotation="Right"> + <location x="99" y="74"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" sourceTerminal="Terminal.Left1" targetTerminal="Terminal.Right" target="//@diagrams.1/@children.6/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" sourceTerminal="Terminal.Left2" target="//@diagrams.1/@children.6/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.7" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.3/@sourceConnections.1"> + <location x="227" y="106"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.5" targetConnections="//@diagrams.1/@children.13/@sourceConnections.0"> + <location x="180" y="177"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.6/@children.7"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.6" targetConnections="//@diagrams.1/@children.6/@children.7/@sourceConnections.0"> + <location y="20"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.2/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.7" detailLevel="2" targetConnections="//@diagrams.1/@children.6/@children.5/@sourceConnections.0"> + <location x="188" y="155"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.6/@children.6"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="478" y="227"/> + <size width="275" height="192"/> + <backgroundColor red="255" green="203" blue="179"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.0"> + <location x="513" y="438"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.3" target="//@diagrams.1/@children.0/@children.3"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.1" targetConnections="//@diagrams.1/@children.6/@children.1/@sourceConnections.0"> + <location x="676" y="207"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.0/@nodes.1" targetConnections="//@diagrams.1/@children.0/@children.1/@sourceConnections.0"> + <location x="168" y="462"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.3/@nodes.6" targetConnections="//@diagrams.1/@children.2/@children.6/@sourceConnections.0"> + <location x="293" y="29"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255" green="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.0"> + <location x="225" y="481"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.4" target="//@diagrams.1/@children.0/@children.4"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.4/@nodes.1" targetConnections="//@diagrams.1/@children.0/@children.4/@sourceConnections.0"> + <location x="337" y="464"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.0/@paths.2/@nodes.0"> + <location x="680" y="479"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.0/@paths.2" target="//@diagrams.1/@children.6/@children.5"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Market " coreModel="//@coreModel"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4" detailLevel="2"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.5/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.21" target="//@diagrams.2/@children.7/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="70"/> + <secondRelativeDimension width="-23" height="-132"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="69" height="65"/> + <secondRelativeDimension width="-24" height="-67"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="70" height="107"/> + <secondRelativeDimension width="-23" height="-25"/> + </bendpoints> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.22" target="//@diagrams.2/@children.3/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="2" height="-26"/> + <secondRelativeDimension width="-91" height="-2"/> + </bendpoints> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.23" target="//@diagrams.2/@children.5/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="47" height="60"/> + <secondRelativeDimension width="28" height="-79"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="47" height="128"/> + <secondRelativeDimension width="28" height="-11"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.5/@requireds.0" targetConnections="//@diagrams.2/@children.3/@children.0/@children.0/@sourceConnections.0 //@diagrams.2/@children.7/@children.0/@children.0/@sourceConnections.0 //@diagrams.2/@children.5/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="218" y="114"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.6/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.28" target="//@diagrams.2/@children.9/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension height="-41"/> + <secondRelativeDimension width="-57" height="-2"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="18"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="-23" y="59"/> + <size width="258" height="204"/> + <backgroundColor red="255" green="255" blue="191"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5" detailLevel="2"> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.4/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.29" target="//@diagrams.2/@children.10/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-54" height="-1"/> + <secondRelativeDimension width="1" height="-74"/> + </bendpoints> + </sourceConnections> + </children> + <location y="45"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.5/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.30" target="//@diagrams.2/@children.6/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-27"/> + <secondRelativeDimension width="18" height="-140"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-35"/> + <secondRelativeDimension width="10" height="-140"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-32" height="142"/> + <secondRelativeDimension width="13" height="2"/> + </bendpoints> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.31" target="//@diagrams.2/@children.4/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="1" height="159"/> + <secondRelativeDimension width="-23"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.5/@requireds.0" targetConnections="//@diagrams.2/@children.6/@children.0/@children.0/@sourceConnections.0 //@diagrams.2/@children.4/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="119"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="853" y="23"/> + <size width="258" height="179"/> + <backgroundColor red="183" green="183" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6" detailLevel="2"> + <children semanticModel="//@coreModel/@components.6/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.39" target="//@diagrams.2/@children.11/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension height="-27"/> + <secondRelativeDimension width="-21" height="2"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="70"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.6/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6/@ownedPorts.3/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.40" target="//@diagrams.2/@children.5/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-587" height="-1"/> + <secondRelativeDimension width="1" height="55"/> + </bendpoints> + </sourceConnections> + </children> + <location y="70"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.6/@ownedPorts.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6/@ownedPorts.4/@requireds.0" targetConnections="//@diagrams.2/@children.7/@children.2/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="41"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="613" y="407"/> + <size width="258" height="136"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7" detailLevel="2"> + <children semanticModel="//@coreModel/@components.7/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.24" target="//@diagrams.2/@children.0/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-56" height="-1"/> + <secondRelativeDimension width="37" height="-75"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-73" height="46"/> + <secondRelativeDimension width="44" height="-16"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.2/@children.0/@children.0/@children.0/@sourceConnections.1"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.7/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.34" target="//@diagrams.2/@children.8/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-17" height="-29"/> + <secondRelativeDimension width="-2" height="24"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.7/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.3/@requireds.0" targetConnections="//@diagrams.2/@children.6/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="218" y="83"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="313" y="119"/> + <size width="258" height="118"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8" detailLevel="2"> + <children semanticModel="//@coreModel/@components.8/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.33" target="//@diagrams.2/@children.1/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-38" height="2"/> + <secondRelativeDimension width="-14" height="111"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-38" height="-69"/> + <secondRelativeDimension width="-14" height="76"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-40" height="-87"/> + <secondRelativeDimension width="-16" height="22"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.2/@requireds.0" targetConnections="//@diagrams.2/@children.1/@children.1/@children.0/@sourceConnections.1"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="37"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.8/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.3/@requireds.1" targetConnections="//@diagrams.2/@children.7/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.3/@provideds.1"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.37" target="//@diagrams.2/@children.5/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-271" height="-1"/> + <secondRelativeDimension width="367" height="-53"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-270" height="50"/> + <secondRelativeDimension width="368" height="-2"/> + </bendpoints> + </sourceConnections> + </children> + <location y="112"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="877" y="239"/> + <size width="258" height="172"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9" detailLevel="2"> + <children semanticModel="//@coreModel/@components.9/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.26" target="//@diagrams.2/@children.0/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-1" height="-67"/> + <secondRelativeDimension width="18" height="34"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.2/@requireds.0" targetConnections="//@diagrams.2/@children.0/@children.0/@children.0/@sourceConnections.2"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="189" y="12"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.9/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.3/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.36" target="//@diagrams.2/@children.6/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="45" height="42"/> + <secondRelativeDimension width="-281" height="169"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="326" height="40"/> + <secondRelativeDimension height="167"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.3/@requireds.0" targetConnections="//@diagrams.2/@children.4/@children.1/@children.1/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="189" y="116"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.9/@ownedPorts.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.4/@requireds.0" targetConnections="//@diagrams.2/@children.2/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="134"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="25" y="287"/> + <size width="229" height="183"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10" detailLevel="2"> + <children semanticModel="//@coreModel/@components.10/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.32" target="//@diagrams.2/@children.1/@children.1/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="1" height="-91"/> + <secondRelativeDimension width="-44" height="-1"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.2/@requireds.0" targetConnections="//@diagrams.2/@children.1/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="218" y="42"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.10/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.3/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.35" target="//@diagrams.2/@children.3/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="2" height="-50"/> + <secondRelativeDimension width="11" height="-1"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.3/@requireds.0" targetConnections="//@diagrams.2/@children.5/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="36"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="565" y="215"/> + <size width="258" height="122"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11" detailLevel="2"> + <children semanticModel="//@coreModel/@components.11/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.25" target="//@diagrams.2/@children.0/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-1" height="-81"/> + <secondRelativeDimension width="92" height="1"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.2/@requireds.0" targetConnections="//@diagrams.2/@children.0/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.11/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.3/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.38" target="//@diagrams.2/@children.4/@children.1/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension height="-32"/> + <secondRelativeDimension width="-321" height="-3"/> + </bendpoints> + </sourceConnections> + </children> + <location x="218" y="105"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children semanticModel="//@coreModel/@components.11/@ownedPorts.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.4/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.41" target="//@diagrams.2/@children.2/@children.2/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="1" height="81"/> + <secondRelativeDimension width="-299" height="12"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="236" height="81"/> + <secondRelativeDimension width="-64" height="12"/> + </bendpoints> + </sourceConnections> + </children> + <location y="104"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="313" y="275"/> + <size width="258" height="152"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.12" detailLevel="2"> + <children semanticModel="//@coreModel/@components.12/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.12/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.2/@children.3/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="60"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="541" y="11"/> + <size width="258" height="106"/> + <backgroundColor red="193" green="255" blue="193"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.13"> + <children semanticModel="//@coreModel/@components.13/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.13/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.2/@children.0/@children.1/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="27"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="277" y="11"/> + <size width="227" height="91"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.14"> + <children semanticModel="//@coreModel/@components.14/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.14/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.2/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="208" y="10"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="565" y="131"/> + <size width="248" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.15"> + <children semanticModel="//@coreModel/@components.15/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.15/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.2/@children.2/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="877" y="443"/> + <size width="268" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.ucmmodel:UCMDiagram" name="UCM Market" coreModel="//@coreModel" map="//@coreModel/@useCaseMaps.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.11"> + <location x="261" y="627"/> + <size width="233" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.10"> + <location x="499" y="627"/> + <size width="222" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.9"> + <location x="-10" y="627"/> + <size width="264" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.8"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.2" targetConnections="//@diagrams.3/@children.12/@sourceConnections.0"> + <location x="23" y="24"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.9/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="94" y="57"/> + <size width="127" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.7"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.7" targetConnections="//@diagrams.3/@children.8/@children.1/@sourceConnections.1"> + <location x="53" y="15"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" target="//@diagrams.3/@children.18"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.4" targetConnections="//@diagrams.3/@children.22/@sourceConnections.0" rotation="Left"> + <location x="85" y="69"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" sourceTerminal="Terminal.Left1" target="//@diagrams.3/@children.7/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" sourceTerminal="Terminal.Left2" target="//@diagrams.3/@children.4/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.6" targetConnections="//@diagrams.3/@children.4/@children.1/@sourceConnections.1"> + <location x="18" y="108"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" target="//@diagrams.3/@children.24"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="559" y="415"/> + <size width="207" height="130"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.6"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.5" targetConnections="//@diagrams.3/@children.8/@children.1/@sourceConnections.0"> + <location x="41" y="22"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" target="//@diagrams.3/@children.11/@children.2"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.3" targetConnections="//@diagrams.3/@children.11/@children.3/@sourceConnections.0"> + <location x="97" y="69"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.7/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.8" targetConnections="//@diagrams.3/@children.7/@children.1/@sourceConnections.0"> + <location x="42" y="107"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.11/@children.4"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="609" y="255"/> + <size width="180" height="145"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.5"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.4" targetConnections="//@diagrams.3/@children.9/@children.0/@sourceConnections.0"> + <location x="57" y="19"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.11/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.3" targetConnections="//@diagrams.3/@children.11/@children.1/@sourceConnections.0"> + <location x="82" y="86"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.1" target="//@diagrams.3/@children.8/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="596" y="116"/> + <size width="178" height="113"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.4" targetConnections="//@diagrams.3/@children.5/@children.1/@sourceConnections.0"> + <location x="143" y="14"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" targetTerminal="Terminal.Right" target="//@diagrams.3/@children.7/@children.3"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.7" targetConnections="//@diagrams.3/@children.7/@children.3/@sourceConnections.1"> + <location x="19" y="95"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.5/@children.2"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.2" targetConnections="//@diagrams.3/@children.4/@children.1/@sourceConnections.0"> + <location x="102" y="114"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" target="//@diagrams.3/@children.10/@children.2"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.5" targetConnections="//@diagrams.3/@children.7/@children.0/@sourceConnections.0" rotation="Left"> + <location x="34" y="16"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" sourceTerminal="Terminal.Left1" target="//@diagrams.3/@children.10/@children.3"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" sourceTerminal="Terminal.Left2" target="//@diagrams.3/@children.7/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="298" y="328"/> + <size width="209" height="139"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.4" targetConnections="//@diagrams.3/@children.6/@children.1/@sourceConnections.0"> + <location x="45" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.1" target="//@diagrams.3/@children.10/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.3" targetConnections="//@diagrams.3/@children.10/@children.1/@sourceConnections.0"> + <location x="171" y="74"/> + <size width="20" height="40"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128" blue="64"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" sourceTerminal="Terminal.Left1" target="//@diagrams.3/@children.5/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" sourceTerminal="Terminal.Left2" target="//@diagrams.3/@children.4/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="300" y="172"/> + <size width="229" height="128"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.3" targetConnections="//@diagrams.3/@children.3/@children.0/@sourceConnections.0"> + <location x="84" y="17"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.6/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="306" y="87"/> + <size width="211" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.5" targetConnections="//@diagrams.3/@children.8/@children.0/@sourceConnections.0"> + <location x="57" y="98"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.1" target="//@diagrams.3/@children.15"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.2" targetConnections="//@diagrams.3/@children.16/@sourceConnections.0"> + <location x="53" y="163"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" targetTerminal="Terminal.Right" target="//@diagrams.3/@children.8/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.3" targetConnections="//@diagrams.3/@children.7/@children.2/@sourceConnections.0"> + <location x="51" y="301"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" target="//@diagrams.3/@children.23"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.10" targetConnections="//@diagrams.3/@children.7/@children.3/@sourceConnections.0"> + <location x="51" y="220"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.20"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="119" y="157"/> + <size width="125" height="326"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@componentRoles.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.5" targetConnections="//@diagrams.3/@children.6/@children.0/@sourceConnections.0"> + <location x="82" y="68"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.13"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.2" targetConnections="//@diagrams.3/@children.14/@sourceConnections.0"> + <location x="84" y="123"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.1" target="//@diagrams.3/@children.6/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.6" targetConnections="//@diagrams.3/@children.5/@children.0/@sourceConnections.0"> + <location x="91" y="166"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" target="//@diagrams.3/@children.17"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.2" targetConnections="//@diagrams.3/@children.19/@sourceConnections.0"> + <location x="75" y="239"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.5/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.9" targetConnections="//@diagrams.3/@children.5/@children.2/@sourceConnections.0"> + <location x="46" y="280"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.21"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location x="816" y="116"/> + <size width="176" height="335"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.0"> + <location x="59" y="161"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.0" target="//@diagrams.3/@children.3/@children.0"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.0/@nodes.1" targetConnections="//@diagrams.3/@children.11/@children.0/@sourceConnections.0"> + <location x="1008" y="183"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.0"> + <location x="1029" y="267"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.1" target="//@diagrams.3/@children.11/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.1/@nodes.1" targetConnections="//@diagrams.3/@children.10/@children.0/@sourceConnections.0"> + <location x="55" y="232"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="255"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.0"> + <location x="56" y="280"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128" blue="64"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.2" target="//@diagrams.3/@children.10/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.1" targetConnections="//@diagrams.3/@children.11/@children.2/@sourceConnections.0"> + <location x="1027" y="288"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128" blue="64"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.2/@nodes.4" targetConnections="//@diagrams.3/@children.4/@children.0/@sourceConnections.0"> + <location x="764" y="436"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor green="128" blue="64"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.0"> + <location x="1022" y="336"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.3" target="//@diagrams.3/@children.11/@children.3"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.1" targetConnections="//@diagrams.3/@children.10/@children.3/@sourceConnections.0"> + <location x="87" y="355"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.3/@nodes.6" targetConnections="//@diagrams.3/@children.11/@children.4/@sourceConnections.0"> + <location x="961" y="476"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor red="128" green="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.0"> + <location x="824" y="505"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="128"/> + <sourceConnections semanticModel="//@coreModel/@useCaseMaps.1/@paths.4" targetTerminal="Terminal.Right" target="//@diagrams.3/@children.4/@children.1"> + <location/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.1" targetConnections="//@diagrams.3/@children.10/@children.2/@sourceConnections.0"> + <location x="75" y="462"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor blue="128"/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@useCaseMaps.1/@paths.4/@nodes.5" targetConnections="//@diagrams.3/@children.4/@children.2/@sourceConnections.0"> + <location x="670" y="579"/> + <size width="15" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Bid Product A" coreModel="//@coreModel" gridEnabled="true"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.4/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="160" y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="37" y="71"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7"> + <children semanticModel="//@coreModel/@components.7/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.0" target="//@diagrams.4/@children.0/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.7/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.4/@children.2/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="325" y="71"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10"> + <children semanticModel="//@coreModel/@components.10/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.1" target="//@diagrams.4/@children.1/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.4/@children.3/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="160" y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="37" y="167"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5"> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.2" target="//@diagrams.4/@children.2/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="325" y="167"/> + <size width="201" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Place Order for A" coreModel="//@coreModel" gridEnabled="true"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5"> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.5/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="161" y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="109" y="95"/> + <size width="201" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10"> + <children semanticModel="//@coreModel/@components.10/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.3" target="//@diagrams.5/@children.0/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.10/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.5/@children.2/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="397" y="95"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9"> + <children semanticModel="//@coreModel/@components.9/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.4" target="//@diagrams.5/@children.1/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.5/@children.3/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="190" y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="109" y="179"/> + <size width="230" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.5" target="//@diagrams.5/@children.2/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="397" y="179"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Send Contract" coreModel="//@coreModel" gridEnabled="true"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.2/@requireds.0" targetConnections="//@diagrams.6/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="160" y="10"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="-23" y="59"/> + <size width="200" height="65"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9"> + <children semanticModel="//@coreModel/@components.9/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.6" target="//@diagrams.6/@children.0/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.6/@children.4/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.9/@ownedPorts.1/@requireds.1" targetConnections="//@diagrams.6/@children.2/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="52"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="205" y="59"/> + <size width="230" height="90"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8"> + <children semanticModel="//@coreModel/@components.8/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.8" target="//@diagrams.6/@children.1/@children.0/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-2" height="-36"/> + <secondRelativeDimension width="202" height="-86"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-234" height="-38"/> + <secondRelativeDimension width="-30" height="-88"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-234" height="49"/> + <secondRelativeDimension width="-30" height="-1"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.6/@children.3/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="409" y="59"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5"> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.2"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.2/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.9" target="//@diagrams.6/@children.2/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-6" height="26"/> + <secondRelativeDimension width="186" height="1"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-5" height="57"/> + <secondRelativeDimension width="187" height="32"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-194" height="60"/> + <secondRelativeDimension width="-2" height="35"/> + </bendpoints> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="601" y="59"/> + <size width="201" height="65"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6"> + <children semanticModel="//@coreModel/@components.6/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6/@ownedPorts.0/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.7" target="//@diagrams.6/@children.1/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-117"/> + <secondRelativeDimension width="-21" height="83"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-117" height="-85"/> + <secondRelativeDimension width="-21" height="-2"/> + </bendpoints> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="301" y="167"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Timeout Notification" coreModel="//@coreModel" gridEnabled="true"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.3/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.10" target="//@diagrams.7/@children.1/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="1" height="-13"/> + <secondRelativeDimension width="-191" height="-13"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-1" height="-24"/> + <secondRelativeDimension width="-193" height="-24"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="192" height="-24"/> + <secondRelativeDimension height="-24"/> + </bendpoints> + </sourceConnections> + </children> + <location x="160" y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="73" y="107"/> + <size width="200" height="95"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11"> + <children semanticModel="//@coreModel/@components.11/@ownedPorts.0"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.0/@requireds.0" targetConnections="//@diagrams.7/@children.0/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.0/@provideds.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.11" target="//@diagrams.7/@children.2/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="55"/> + <secondRelativeDimension height="25"/> + </bendpoints> + </sourceConnections> + </children> + <location x="160" y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="265" y="107"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6"> + <children semanticModel="//@coreModel/@components.6/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.6/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.7/@children.1/@children.0/@children.1/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="505" y="107"/> + <size width="200" height="60"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <diagrams xsi:type="org.isistan.flabot.edit.componentmodel:ComponentDiagram" name="Contract Response" coreModel="//@coreModel" gridEnabled="true"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11"> + <children semanticModel="//@coreModel/@components.11/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.12" target="//@diagrams.8/@children.1/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-1" height="-26"/> + <secondRelativeDimension width="-229" height="-51"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="259" height="-24"/> + <secondRelativeDimension width="31" height="-49"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="258" height="25"/> + <secondRelativeDimension width="30"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.8/@children.1/@children.0/@children.2/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.11/@ownedPorts.1/@requireds.1" targetConnections="//@diagrams.8/@children.2/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="52"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="160" y="5"/> + <size width="40" height="75"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="37" y="83"/> + <size width="200" height="90"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8"> + <children semanticModel="//@coreModel/@components.8/@ownedPorts.1"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.1/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.16" target="//@diagrams.8/@children.3/@children.0/@children.0"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.1/@requireds.0" targetConnections="//@diagrams.8/@children.0/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.1/@provideds.1"> + <location x="2" y="52"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.14" target="//@diagrams.8/@children.0/@children.0/@children.1"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="15" height="1"/> + <secondRelativeDimension width="243" height="26"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="17" height="-65"/> + <secondRelativeDimension width="245" height="-40"/> + </bendpoints> + <bendpoints> + <firstRelativeDimension width="-86" height="-68"/> + <secondRelativeDimension width="142" height="-43"/> + </bendpoints> + </sourceConnections> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.8/@ownedPorts.1/@requireds.1" targetConnections="//@diagrams.8/@children.3/@children.0/@children.1/@sourceConnections.0"> + <location x="2" y="77"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="160" y="5"/> + <size width="40" height="100"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="265" y="83"/> + <size width="200" height="115"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4"> + <children semanticModel="//@coreModel/@components.4/@ownedPorts.4"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.4/@ownedPorts.4/@provideds.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.13" target="//@diagrams.8/@children.0/@children.0/@children.2"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension width="-43"/> + <secondRelativeDimension height="82"/> + </bendpoints> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="25"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="265" y="215"/> + <size width="200" height="125"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5"> + <children semanticModel="//@coreModel/@components.5/@ownedPorts.3"> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.3/@requireds.0" targetConnections="//@diagrams.8/@children.1/@children.0/@children.0/@sourceConnections.0"> + <location x="2" y="2"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <children xsi:type="org.isistan.flabot.edit.editormodel:NodeVisualModel" semanticModel="//@coreModel/@components.5/@ownedPorts.3/@provideds.0"> + <location x="2" y="27"/> + <size width="40" height="15"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <sourceConnections semanticModel="//@coreModel/@interfaceLinks.15" target="//@diagrams.8/@children.1/@children.0/@children.3"> + <location/> + <size width="-1" height="-1"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + <bendpoints> + <firstRelativeDimension height="51"/> + <secondRelativeDimension width="55" height="1"/> + </bendpoints> + </sourceConnections> + </children> + <location y="5"/> + <size width="40" height="50"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + <location x="505" y="83"/> + <size width="201" height="95"/> + <backgroundColor red="255" green="255" blue="255"/> + <foregroundColor/> + </children> + </diagrams> + <folder name="Diagrams" fileModel="/"/> + <mappingManager><responsibilityRegistry><responsibilityBasedRegistry><value xsi:type="org.isistan.flabot.coremodel:PatternMapping" packagePattern="bubble\.core" pattern="bubble\.core\.Agent#addAgentEvent\(bubble\.core\.AgentEvent\):void"/></responsibilityBasedRegistry><responsibilityBasedRegistry><value xsi:type="org.isistan.flabot.coremodel:PatternMapping" packagePattern="bubble\.core" pattern="bubble\.core\.Agent#sendAgentEvent\(bubble\.core\.AgentEvent\):void"/></responsibilityBasedRegistry><responsibilityBasedRegistry><value xsi:type="org.isistan.flabot.coremodel:PatternMapping" packagePattern="bubble\.core" pattern="bubble\.core\.Agent#addSensor\(bubble\.core\.Sensor\):void"/></responsibilityBasedRegistry><responsibilityBasedRegistry><value xsi:type="org.isistan.flabot.coremodel:PatternMapping" packagePattern="bubble\.core" pattern="bubble\.core\.BidTask#entry\(bubble\.core\.AgentEvent\):boolean"/></responsibilityBasedRegistry><responsibilityBasedRegistry><value xsi:type="org.isistan.flabot.coremodel:PatternMapping" packagePattern="bubble\.core" pattern="bubble\.core\.BidTask#active\(bubble\.core\.AgentEvent\):boolean"/></responsibilityBasedRegistry></responsibilityRegistry></mappingManager> +</org.isistan.flabot.edit.editormodel:FlabotFileModel> diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.html b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.html new file mode 100755 index 0000000..5f54e05 --- /dev/null +++ b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.html @@ -0,0 +1,45 @@ +<!-- saved from url=(0013)about:internet --> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>generalExecutionCondition_demo + + + + + + + + +
+ +Create a general execution condition +
+
+
+
+
+ + + +
+ + diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo.swf new file mode 100755 index 0000000000000000000000000000000000000000..a5c612126b649133917a815fda4097125d862970 GIT binary patch literal 701884 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
TK*^hWgz{Sd{u5F!z*4 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 z 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

Fp-iK;Xrk9880>GB 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 Zj~Pil?9 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

Hth+~;K>n${#14+}qR|~_cjk;KFD~wt` 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion4.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion4.swf new file mode 100755 index 0000000000000000000000000000000000000000..361b530a6f0a0c02108b9b00f4c50a2e1d53a668 GIT binary patch literal 135087 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

@0z3o`jccbhw5 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 SJ@yciGURXh)d&GWkpBQ8GK)C? literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion5.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/GeneralExecutionCondition_demo/GeneralExecutionCondition_demo_Fullmotion5.swf new file mode 100755 index 0000000000000000000000000000000000000000..bce5857ba085744c3b63b68663cc48be9d0afb18 GIT binary patch literal 72208 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

I4Q!iO06qfVUS7osEZIlcklZ>9RY@3EO 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

97Q3u< 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

agrGmj!uk$6}qfEBPW)J04wCnq9>P6U`8> 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 + + + + +MethodExecutionCondition_demo + + + + + + + + +
+ +Create a method execution condition +
+
+
+
+
+ + + +
+ + diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo.swf new file mode 100755 index 0000000000000000000000000000000000000000..73d38fdc8d7d563c35598575aae53f3da3241820 GIT binary patch literal 897873 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 z z!dd&=0LnqvE@!a{PxSc(o&$X_&~&PxMAtOyitRz-^4s0Y?)oPZP}z1%3vr7buinuh z>mCq)r{;Xp6krGCow#(-FP+pa->E{}oU>kJ!ZcCYEl=mE2fbY{IoGC2tAo}}=K(GA zde^?Z7|gryc%iG%N|+yxreEhPClZi?B@Z!VSWn1yym|uE?l)cQPjR3*MuWMx>l${(CQFQUFTTgauQU8DN8S-EjMe+e^c$gA zuike@E1dhDkh%->k~LJ)5ZcdQH?&3#z+^66bdP!>oM%xq|C)e!Gk|$K#u;ZZfCOc? z^Zq2IQ{`}vr*WKq+!KC;D93Y*Y+|D;OBd*oX4+NaCqSp7Mo^9OjqWykc|%4Bi%1F3 z`dj{kPFcjV@wz_&{Q>L;_R?a2AqeudV_VkPSd~(U-ySqm_XMfkUIDrke9%1a%>84Q zGDm`;aQ0YqiWwFLb?weS+wIl+*1FQuKsI#oTB-VJt_%#Jsvy?<^m>F9<>;Za=g(`( zHfBp6C0IKQd<`lZcZ&cf=Jz+_tz%JXU)j$vCD*W)CuM(Yk&(?<6%F2F3A^-v!Yw++ zzID2MdQ?iM!pms$D(x!7m)QvI*$YHyoPNwPM$UVO8dE|g#ieWNbot#r>wIGB#+W15 zK9wsJ0G3dSu^X#;2v#-)s~zIbK^D zK9A06@5&RO?zSwro~+)P>phxfmZ7`9!VML1%;IHQN7l`2C19xY*w@oaE(@DoO|Yjy zJUVqV)!2>FOrl5$o>}9xrjJI=F(DTP$;{q7;KRvHb1&S`SV z)9bVegWT&`F#1GdMCSO#Ya^fYLYJu65xt6$Dv)Skbv#cvh<^?+q>_XdPT)TE%*&)x&MiGnkq}Bbh zpT8yo6peE}OHK4}J8p*sR%K+B1qCh>L9$O;duix z@-Il{yJWD&MPDaDQ>lZI-siE_i#r! zzv3(f&6GyHr63iojh~&=$u!zprIpfGZA@0*=h!6q#|}DgsRBQgc`ZZEBtthM&v&w| ztI#FTbx8BIYtPJ;?t;K91?^B3Bw?J&f;ruibxp(Am!ijS&^iB%=}QPj=n zUkx9j?uVB0?O!tvggCQ6qZHIo+UB+!UWmi`VYi(B)cVsAH#J(Ia|1Q(Hugp)2shofCQj6_QM8+}VLeta{=(MJ zmtkIai8f3>$pBmpoJZbq%x+1To$Y!y-?~EGJa_IN^um>+?Cz4Kg0EbGC?Fn4qb>%p z(O(%REjD_WVD5KeXa?R|F3RJ(wO$dVJOLf~vV^HuhE%(*xy5x1b=#pzjCJB!th^oB z!$0`+&7q2>ms278H$3be2l(gH+xqz!3V$qTiH(lZD%H(-9#SKTRjD@GPj((-=%N~5 z;C38^VMYC_Hkz?2GHQ37pr(_<&+v)IdlA$>v~>}U9`AbI>_bxCpY~&sUknzUj3{2< zff5>X$Y>rSpJa3wB6x~Z9u~ddp~)R7nc>jiv~atD+WrKwSAQ=*-2&9y7-w3KcU|S6 zcX)cxZLA7n$G2kvr#?Y9?1m|jmUWwQV;uV1nEWZ`)w%z2U3Cv+U%tb-(WPY5Ur*yk zeFq@&L}7lT*8jjk_h~Ltg~rzdy@FtBGeu-a{RvUwdd%z~WfwH9VWyV}>WIVPTbO}!M3 z`Rc@1+;=L7i5?KzIMo%e_v)UY9?3cXjnR^%IduVTvR7bUj|qtkz9Vbkp{oR3Dvec< zD&T2tkMu}TD>=Rk;QRodnLodw^~SZu)%a-M#!VwERpnOws!ms@>&BLG8fg6V2_oLD zNXv2SX3r9HqaVMrxbFN610q*WeA)yLPa)P%*W;-5c|5RRZp-Mk9Y;cJmA(`rj^5ST zETA|Bq-Z|f!G!9sJEZuQtX}?0{ykiWBqm0f!xVhB6q-+NdT|_wWL2H%noC;z7)Sm?~S>pWbzPnQn7e7 za_0uD%7S_Zbk)OdYSBH&AHg%s8*=~jg?g!fqL2=O6OE~iIml<1qj9}Yju|>%8SVLU zo&H{b>1~9#A>XP@yDj}xo*NcEQWZ-tfLEq3hhTQ_0O6u(IM`js7(-vnn;4g!%G>5K z4PWk#T%yJ>>3(@kdJSCfJJpVI4p-X~wX_(b$L^F$p2B$rWIGW_7vRtuVIF0$m=1Id zPRUaJbKn?aa>{b55PI&mamaiInC=q~HcNN+V&fa3xp%AdL&iJx*?`kEI%%?I+v0e6ele@*LzboVCH&gyu>7^t^7PWa>X%ZgUq%pu1w1w%A_1R=?AfK6j`~#q%gb zs_G>hVXeDXS0ShOw7m0hZ;VpVz?I$GurHn*F3i3?iZ>Z}bXMuki1ltY7wL$E+LVT? zR>t-@o~hoQ%GbGc!#A(WpC4}Nz4}}c_5E|-O_z?OBBevYQig_oMx7J0snfIolMZgO zl5gF~go=AAt>E&+iQ|1bM-70E0SE1l+Hvg;?hcOgk0vwga#!sWU^Fteko7#a7<8@~ zFPphTYD-5`#8c<)?D}#?nwWLX_=X}v$eSK74P7aeY>uHuWaosfoOAPRbh$t7Xg>zn zPFb8+q6`E+3CK#x0&#F1L&&yvgiu>2Mn}SV`G+vQGb-F~ctU2jWT;;JKkG%T(PP9O%pw^UbWVS_Fj7O z7~!AsnmgwuOUz2%B{e&sujokFo%M-fm1LcN}ZT z#ub^>sTSl<>|u`Vn0nnMbU<-+8jSO;m|bV9cQviyI;j1F>22Hg@^Blw?LCqwY7`w! z3S_Piw%a@2=C!-+EYay_rnHiy0-_%KU%qH|ro>pC>5yrXv&$0QVU=%LO-Jh4N*2N- zPa&%f{I3S)MMjb1Q^IyulXvSP(~8yQuIKxvXR0@vQ$LVW-ij5o8_k7I#}A3j$oJ=}-C_79`W8Eom1diuKUA-rXidiZH@KI+Ec z+4K1|+ng>l@P!Z6uijZm@=&tMZyc+>YK1gJqN4FGio33(m3`9+JQFK&Q(-r2pW?m0 z888<@+A@l7Vi5R1;Z3C4#|4|n=ug!+^W_sa<+>k`x9sc*liE^6`V{fhrNT_Mc*y34 zT=Ae!c`DeiJ3^|mhSV5wo%g{d$4qZl^GCj1;AO_$^R`t*sh9x_P+rsK*PZC(j4}(H zjU}~#t`B}A;m|^xNZ-SXLzF5~PY%Kt(`&T+@p=C+NVoIAF=Pu%UPuhSbW~3Tf^fdbnhCbcb zjhha%_4jK)KMY~RVhf7fTC!V&PL8Q_Zd()=44ura@%6D~1bTvROQ$S<4Fq{UC31Xc z3wLbHW{q822Z zBLCZ47!+i%ffu;*Q@1EcugQ>lfy7fS0Sm`rSWAD1^pV>O4i}=qeB3$!xkA;tk&bWf z^zl-pg?l1}?Bx6!~oW zJ$RSmsXE?p`RzPQ@(^T>FEk_qZ6AG{Z~r}%Ugz?E_+@Bm6Q!c*C`|s>DVb~#6SY;q zpcd+wWSHz0=-Zj01{2=qdNe!{i;QT;;fT1Kna1hS#kU_4CGLy`rUjypYrt>r2k1v< zi73;aMwjv3d}bE!NZl^_)TX+h#luB!oBmD01tyxc2u#YOWDnlQ-NN7 zZ~_u{lU`xLb1Yi)ScGuvn}|8_4v!NRc1$w+DLqR=H}}9~*)RmucOBpCXEBk22WL8G z6?Z)Y^f;i(W)kk>3;x{361}5W@#l%*i#|(Gmry`4B*MM-?h>NIl+4p~#=6tn}U{1DU6deBKl2MjxuU2RTER zBtc`X9qN$8@NOcyhkOa&_Z1ph(Qi;e+5#tSKH&d&D#XfMi)S0y9?~&2>E+049k3^m zmN#Y)EA)xdio_@|=oTIR**U&)LFEt|BJ7Ceo6nbIFEo-ZKeyvDj$O|?EwVUzZgy>= zi>wa`9`+Spnk)Q|0S6tm)M$;2n)15f2S(3ZoHV7@0D-oxm1JwRq1>8J)Nl9HPKRuH zDUA(AGj;?Ug97D?eXRE&k=n?Zz6BRLw(Et*PBmSJ0N$m@xLrKhOks4y5?`s{KSnM~ zWGqixK(o^(0NrRN$0=OXQRfheRSV+l)4BgypW37X4~m?Dfc_=)*QHn80%f^&9N16M zwr+Gw8Urvr%_n8WpxSUe5y^r|+lLW3RKOAA)J{FU6{ev6h)AG1h4{bIPu_doSc-ME zr4|KFd>3yorc1i0!Ixnk8n0j_fvsER;if-E09^nT%0i=9T}z0)KPG@@0sCV`vv!yD zn_h8!_%KK-(olRbry^gpEPi?Y0jg6aF}WR6vA^*&ot?1WjUP4Wc18S*JbxOLP;Irg%9l zbNM4d2A(ABx6C~k*K9Hm(I8MOQW9B|sjAvO*e!ld9Zk{H$XtK+il?zyc=h)0@uGdI z%0;TYp(%J?ALgqg>I<=Q6Pgvq;zAVhB4;`qKOsl8tjP{z)>o~`$NFWj`$3ATwNkN- zZJ}t{B?3cR3eH*eyiFmbNF|DxGWDJ}4?+9f&Ky|GmoHD@m^$s^wOr!1W+ z#n1CBC-EWbsAl)*^G%V**2NlpUs zG6m4T$3FCMSmmXM-qy?@?ht?AL%B`IqcJJb+@W0Iw^b4%B;4ErKiY>JHN@6c{>7^X0(J_uG-$N)LH-*ANFAiEk1y_THK^njU{5-CxY&|9m`K_Cl~xV zv9+8(l99#H$m9GI3J@QjHJE;WmNQz~xHJ>KYdYG#fy$%Q{M$^IJ_pO3<1pOJYVsr*qYYS`#qjHx_c;@|OR5-=K&-N83Kew<~k#b*XD%ijy# zbDR-7Cno!r3s$rnQ~ssY(4sac%5BgJ9q~ci$hpf-u!he0?p&bc+j_kWfA_2}=+Xgv z^Tp**ep`EVMZg3+2Im|nt({Ry;}uy~#zT(8+e&005$zu3BPln3kbqv|xvlFS5D&EV z+O)_7kso3!BKc?ZxOvB+5=P-qwD+RxSh zbsPV|^4o~7px5?LBVGdIA26ZjIND6LuEE}+W+W5R&M|m)vP8A=(pb%gLqsJA)wqVb zc5{y2Pn-2~`SUw9>YiU{4h#K^VC7$8mI3pcgji7k$2g}(il5a*7d>^ z5aMWN(vW=-`I$?r7d>#e09zL2hI?LIRs!tw*FihDK-(-lGve)qKVVXNsh=Y`t48}n ze#dABp9IjbW5!f{MzltI$6E2DFvuQwOG6zs3_rit8?L$T{2J4z`+j|!AC~?9ZQ}om z$&F%~!TWVD5f8it;*teoK>t>Sh7wmE$&WG0s16{yySAl)X|JtmG^*o*b43BIY&+v%r6MCIgXopzFVwDy&+Z(W48`;b06sCh^cPV64TXv;v{4?509JC4cN zI~ISDXz}!VJo@K8%P_EEn=8K%>@L(%|EF{KOX;-Ehq1t>&RCVWM~~L6I==d+NBrX# zK~3u(ZqMOYQ0KjQ$htb}hTk!oV*Q3HA1>R8)UO1dhR()cfc*8I!h@%NufS~E#V>Zj z()-U4$vCVzzlOZXPts8s7SBO!Ru(LB2|gA)SU%jZdvI|OT#%H&D(dytUZWvhml*e) zc|y5ENHRt6CdLDQzPtC?U?kNKE1DViycior`5gRp4)O=N!@w6)qvQ|Ab36~+@o1S9 z7UJs(6w}iSIBbTKd%w91Puui}Snn%Xd;4RtSWY(Wg(^GP?9#Eb*{k7uHi2yi@DS!i zxNgt4%acUTf{z`|xpmSlc>m}Rfz%U3QINGc#($6ur)tohJ@r%SY7{mrgfffipFp$t zt#G3y)-pEc+~S9BY8Vmp8>|^uRW<(Wy%wtFL(DyB9^7V@keN zi@OOjepf*Ze<{IB8V2-_u+h?OBG}(8M3n_q<$ty%CRj6n&83p??6-{5kKLdB80}SR zhg!A62$(&CFUc%2PdBbar9>a;*Y59Q%|Sm~c7=NCBEr@+Q6u)~Jrul{jS2CGV5&Xr zpflG>6z=<|1<)lvQe}R}>)PR@|Di(S8CqxO5C+E+xshW3B| zi9%sQ4m2JwpE%v`RR1#0g@JqLqs3PjUDOI0h;Imb9uvFqj~ho8|JU0Wg+y|zQw&kc zO1q5r{u1J!w+x8gc*~|nR0p-bu6e7V$?<4nzmVSqLrmq^+>y#xN;?{HQ^KIVc|Xfu zxorwlIOGfG4z>8UkB1+ZGl5aZ1TQRI^OFYtfR*1Vi46ha>#L}UMw!IEICDfNIhsN) zErH>5hZ?6C3!zo0J_l!yxUUP}`SXw7Fc7ea9@4aKT(^SiGY=lQaR)_pIp|=8wI4SX zG9h00&Q2O%ui$CQzcvo>(UdkUXeAHZe-12lcC*O=a1A={cQoE{Ko8gX3h1vLCVIcD zpZaqi`iUKm-EX9C;|l7{dkOTgcUj|o6E%4~SLW|>oQo8+xZn3$1Q(p($Hw#DRnkAD zb?}COAM{n#wSE@Tp9*=D@P}m1jsgq3idvR1SB8IeCdXv+zt?Gp$!ZdwO;PLDyDs+} zr3em&c@?)jI`(fXZ!?cadBcMm&%<25k6K*UT6}Tfa=W5gekIj~sX&EAv)=o-n#-uY9t16ru8B5j}N! z6}%}y+f()kRwd;4N4)p8Ajw~Az{5WmgInb8uuSq#7l5)d4PU=>I31p^fJ!(jtV@3$QnI{)MP@pCrv86wf6^Q<}; zhh@Ybc;BXr(0khl&Z!`}Nf*okHBaL9{n~K!a~%DQ{qO3wHFr5L8Sk7}oNMWdM&u&G z=?C781U-l!-D%{3wS+5M$TmOtKTcBgvxy)2kDRlVqk=StQE?&9g9_q-vQN~adz^EN z=$_N!QB-L>UT1hEzR&#s`(iPzahV?4b2YJe5Xa~_YeS&&L-7+te@dh-`cH*OJ&&h# zw3birt^%ig8y+i|F@-tWoCN-weWM*@rhIHA;k?Vgv$>kD%eeM|=NI z5W+riK&ve7|NQOGzRPEi!edU3M@+M?-r)SZ%R-QmU$>JKIZ`5lSiKs>b3Z>_^BeNs z2}CK6ny19kT9|&k<;t+KE|*6VIR#?|m0)eVn}w zRJHge61Q(r`d?Whbbew>(BRL9H^R5n&x;QMxQ!5}kP zdod`wr&O|NoW*YYE7khWY;;WH`W80y&e+X2Fa^u~Pdlg(Hk8fVqeY2S(mK81p;LTl zL~m%%H-fL2vA9)ik9xwqYE*E=z|bb49n<2sJ{vGF*jo#b44IO^&~tvZJ%OtgR=~$k zVUaV|QX^$%=YpS|POMbT;ZBxhH|y1S&!D>~78?_#*E71YA7*1 zX2o&&p7xobYt%{_`ei80nkH1w0zwEG_=%IGdELm#kIg?9cYd<*Q%1 zEM%*56yFKrrGT*e>YikT#8!TxMg+Z$?G)@Hq{@waOK*NhpfZwfl-Pwu6R2ya0o|U- z$krf*Snjcdh68TTf(P$Ywv>Bghi~ry;gb6zODMX=k@hT zPlp5DsM(y{#NvG0Zm(&Y6}ct=5d3^-$CN3SbgXvs9Awq1kJQ!cQN&3a2cR&F4d%Z3 zNvg~!R(q5nb2zevgOUKJ=bXN^!n$$yy+>%-5#EgBB`1?=3oR9VX(v>S8KY#F?EtQ} zZw`V@(U{}iqH(UyLbx)&Py8gC=tLX1Pw+D@lbr%ecf(pJ#z@gC;a8rz>YQ;R6{UdW z6WhpmD!N!j95#u^b)qfyMsrZTJS`SCGLE=I8^G5$ufhtgTE&&Q<;;RsGa#tmYF>if zz^t&_`;Cwh`@gPqC!R*X~%?Y0c}0 z$SGAiD4%?5AkJvFyo1FZkG{{&O>%?E2a|>*`gj_*6`kSnssk zwW3*0kFjF3wxNzT@PNr{x>^_yB7tixK{!U)>aS7l(T81P|GynI7SYtr#_sEOp91 z>yUBen-t75Bd=4hhXGKXGtxEAB2p>f`(07SNLIYxjhfQ+T9cT!ZJ^BllD>Xej`#e( zb^(*ahno*`-cI+1%j;ea^tzZ+pwdpQf$VR;!K>&A4XdMuv#i(rcCwMW8Y|0XK(H`7 zQ>`oNH3uv{bp)%mQ#BNxGRng(;D)T$l%!Lv3R|>hm3B8IXP*0VJizmli>*=TU}a-- z$Up-MLaBT?&D5|Z-v9X+Ek6#6=tZASBxyDRXeS1SjnYabFq&`gfx0dY=0E@0%}s3Lj3Yhfgy ziITN!QeNRqzDkEMFoQ2#C1N7Ky&%@8eMlBf?3xhnrVf%QeG3o;^2eVK`ttL|9l~Zz zc2EgqWbAO%^cl}yCqDvM+ZfQkQKL8u6g_xV4&Knzcg|$OP->LKglV4b3r4eHr7ZL} zC*~*#29;h(4p(+``l{tw&I6ci!H>p)B|0m$Jl8K*`Jiw15Qzi?K(o)X+&R$dl*G$e zW2cwykq+;-tiTDa_JQ!;v(%q+7W?`fFNnervfEui_}DY=(?qg^&y_2og#3;2D-F@J z(M?AWxv&e5j%L&gngl{qUWoE6WtxbnOAy1 zzE3^J%_?RUl9eo)3P1P1f8PGaxH`h_-Trwzj@FOQtdP;u+>t_mt83(2(|I( zDj4El0DvYp{q9v31gX5h*Ew#X5u3h-C^v0zy@&4%ApRWk!e`OfB^s&iG zrH{=kZFTV3)hM(QKU+knU#x%l#%8C;R~Qqxrbz2*$pE_wO|y#2Mzi2lX>952>R^wC z4Mc+V6z-X9KJuTH%zaXAQ1qU?^)329R*ph?r_{@Xi%{cJ{W<+vF$W@eDt!;os@{ir zYTW?`AzHf&E`59&n9yFiyc!2kR)_x5V*m|$4|jN zAxZll0i5G;Ws<#S#bX+E3Km;YGoh(GSR64wFq)B-A%FaV!R-Q(LyOR--4gHEYkKIU z_w6n$Xg+I3lkhEuGNB^bTtsYsn{EI0Br?KHU?dcO80jIYcI;9f} z07`QE(xoi>_alI33faO9_l8J_m}Z2A4NeB;|EL+1`;$jO|70zprD!=3Q9Z)vDGbq` z*{D4~fUm+B~qs0%cHG$?AJFj^C{9O7fxJGNbXT zfu|s(q7EM|5@0V2-Wka0v_O))rcFHbCvMQ<7Yi*L8R}kI+@a533{mofe`3oA7)*PS z1bCjl-EiPg$H2}v6U@{?K3(bYr=UD*P?7PmoHv={Kmb0c#&)e&$O-gd5Nx(&(hshs zEkg}}pYOyy{cXo0Xc!19fgz7(8=s64pJZoF+nAu_Mm&fBV?dn06-&;?4#&+2PdupO z?g6c&LO@I)3sxo}({JR)(ZubBF4u1=pWb~|c9^-6`L)CU!r;^{o(ys|S7xOQ+IFm3 z0r?*B7ysWD1+4Bb=G%k(&m^0NdT{Cwqxx`G@VIywF>C7_*DaunMa4VSA4 zYT-olh($OLaE`BVfW4}RuQJZ~ujr}rFU8>8m58izaj&*5a3+@BNQfKCyLm~^@<<(3 zas>)cmV?o`his_fGG>ytGM?I^}(6oY?_C(r;bvf0&I9A$ne_ z2*1*J_Y2iDIq~ZoqK2)|EtHJw;$Owv-(EKT|5Cq^uChW7bB8GEp`E^4|3bJHPUM5( zf1nB1v2L)9hB$r_B3(~~{6$hFVKpbnJ8z=wX!0Ao5O^?rE~~U!#9dk;r*MfOWNhFI zF`3MCC3KOs@{+EP5UBPg=m9&N#~uY*cJ)>X zKnljOUJ82@>>VScz07$Rv6j3SIIRF-Z0;iH4}LZu!^*l}wL_U`@YWg}ZYnp&zR*Kk zzVWom`4Euy0f$VNyTD9JLIXciwF-ji{vk0RFnNE>__U8*SZl!iYPk5JI%xXN*l2w(BxJB@Q8pQuq)Lg+nk40E6!`N4Ll`|}Zw$(gf7w`M@W%5}g zIooBUp_I3P90z+7NvQn`o`-AI?d-qA8V3A$%W23aRJ>qldH|$)!!S+SToK2QqD6LtJIvXyi9GE5sTD6d=z=Tb#FYBHpb<;8R-nou7z?Z4XIb}sBx7hjV%{@WM$POLb>*BZhP z{{PAw3W>NZV;Pmo;s@U**xa_T6_gJ%IeuioD8)scIr8FK$DmaEG|7<8nN87GvVa$z zwcE#rDoehYja-2!3@5V4;3O*$j%-4@%{{2WFMRx8Z0EoZwmc`?W8Ju8@IJn&=% z%`1ntYPt|dv3WAM3tah2@%+YSn3rva@)!@po^Y7<{KHDqACosAKqypKDkZh zZ3^;NFXu;#n?fZfMh=3P%hw^U#(CFkWe}L`;OgbN{$y{gm&l_`#s!nM^$*W@_3yI8 zwZ74I>ZEpBA*VxTdfY+=wSN7r41qow&?fp-=l6-yIX6VKCzv@np{z?;Iu-lk6&V%> zaEuX5JV|9R`>G9+8c3+cH2!;e*i;vF@D7>j20QeCJ>O3j#VA>z9u$p^zv;#<4ZFB_ zijtDdJQ70&%JLRYbJwRdFXHCulZ}-M8~E%;BlD$Nv@he#_5&&&xyS zm23^ZjJe_o;!}}jt&TAJR_!$Vy(lTahnE%Ia3wzG z246lUEL=uqQR==d9#{RFQ7(*M)hP;Kjpf4r8phGGIjjC|BT4dqeW-SrG_fUc^IrmM zw$TOCXbs}%ZhXu!%`Wv^6DhhH|SWomM?34j)IVU0`3} z%_}Jh-R*^TFPL;6R;z+M2;eqU3yoDs9$5URd4H)BWkm-YJ)I}5d1uE}APcuq){uNy39Y~CU38pN2o%;>ndo>Xh2W$jT~Am1Yr<)5=N)$o zj0oXNEveC}Mm+;P%NuLrK3Paznd59JP~c0g!s%{@3@8VkZ0wj$497Z#K#gRQX4R9k zYq}SCp3&2)e<>*Hz3OQwbUwykCVg=-Lab?edIwFT@pDAR~#1 zFP#>A=X|8^f2$H+$>*22Fn(1`8cQ80l6crp=BuwfahgDW8EZ&wXsUIww@E%@3s+W? zeN{~4I~HH7{1Jya&6^3}e4JV9%3k{djnCEj?YFVp!-v|upLWp(%) zMMJPUw`=~YhgD&de`8}_^&f$1|AWm*o7F4%#+|;V68OP>)nB+5OgBBGK9ws+29ReW z{KfBuu1HhNh8t?+!#Aur z+n{jys7eoLZ%ON}I)z;;7e|izuFWnkANv;7(J9eBEuy=Pi;>$!F{N}gMd^+@&?JFx zqYXW0PxXP31kLQu_lC;&h?Og93#nKs_f1}H1lydxQVltvZj0tq!=U){22x4Ig#1M; zF6#iq)=rD3MQD^<2~MAy$}s+anMiQe-TkHvNHV?+nOv*cN%l?DPR5ayu!Kn!tDHFK zqZI?HGB{Q}v%49+el^Msz6eBYWbwOoCm$CnzZnLkE$lv$gl}{f{34dP7Cx~AwwhtT z)gErnDYNy&um6zDIfYiZt~eWy#!t{2&g?bL1#v(0%qz2mgiJjX0D zCDKddM05m0O${~8ThlS9eOOyq0l)ggVCP>;Ec4^TeRK}1vq7KyIF-p3atkDV=3>rn z?dbeNG{~!Xq+y#-CK-qaBa@{deM5c#VtNuqkj=(ZMpv@K5oAZ{e;dv-B^p~A7z>Ao zlD;umtbzC;(dp3jC4XTJpbiH#SATgViFl*$d($L=5cZx=JJJm6@l01n`CsFUSDQzY znSBB~D7zzg!#Ra%WYlr}1Y3#*No*cJ<`9 zUUea|@93uI?z8s)_c`6J8sp+a3_RkF`b%5gn%m>F(zxVg{{O`=+rBVc&aGJB8z|^y zv6^bvL)iP((RKO{iNLxHXuhqrT1T&W*?7V4x?#?`7b=L4jxGFmdcpp0^fKlO?fN&1 zsULV+(f=2EG5bR=!KHk9v4?^i8D-i7S|!uFvN`Kku(=#L>tt2q)@9#G>EDF|X<4gR zf7xfr?5M1(_17 zRjM*5qcQ|7ATlM&3?Yfufm#Jr1Y}C;0LT~tAwWoW9UuZiDpQ0Iw#pDm2pb4VNOpGe zCD`8beBV7if4<{A-ai}%lAV2BYp=D=^IU6PTSz>xVUVix*$8;)Ok*TOEA$y^rIl^zMGp>pM%M~UBORmtWF3IRTm9z-YU39 z!pPnPouy+Uq{ZsYHU?b>|EEj zM|`g(Wv$8!MKRrB8R;cGUCR5BhpymtA|w%GU3AtpCFE^Mwy(cQv)00@)QBpVd1XE4 ze_p~049{N;li@qG1h^;||Zu1X3A z&`DDj9D>UIjXnNiNbB`@4fd9#K|FzFmKd(Bn zh@+|IU3QExn5Qjmbx-9m#c-27@$>w_6YC#Cgr8rcd$yGuhKy(SMf#fJjc)r|N0&&K zSpqIKOaI>iqW5nC1ceq4&wPlG6Yms6lm8%7GKvj%d$jY)IU!h6f2Un({M)f@*)Q-7 zc`d;;yjZ$qF;+(Hio^**f0~y*_5GJmJPNOBYf9SkAIiQgWU%Fq#Y?=fuC`Abv&2ch>qRBKFH7_qW&cY8g=#^H`YR_Jds8f$j6kXbj!0!ldH{8@`-y$!=~~JipQC z|7lrXOnNzp;`y2+pPfh82Bo{5f{)X0KTH~3G`2*_?)t;<`boJ*+dhxn;o*tD_fHv! zjIVP~U3>m6m`;%8a7pvH-tDx-R{A^sg~*SV#+Y;JIG4aE=Xq6uy=S7$+e{c`|DxlF z_3dvjF9!cdz3e|=3p`CIQoBn@+8>hL5ox>~&Vu!gzE|fJ|NfA{j@?i?arfxG%CXpp zYXW1`RwKWYi+w-yiO>~@%UI{MaZ>1&l@co@m@gO8!M2#c;kbXhoqB0Ln3VoYFc}ic zvuEN>0V|{e$P)d{wLEJz`hyFQ4DC@Q47vZC5ax<*tmcH+IsZ0DU$8f^f3A^eW(Zg{ z-FK#j8q?%oe4ybcPQye?&a&GLo#VyyLv4x&U>Y(0_<-2Ohgbs4Df@tSuU|;ij<}Ci ztodwyFzo{GKY&Fk$n)b+LcJ{~Xu*kq-Ab}RnKUooUis%9zF*!q899$)#N>?<%Cw^V z;MlWDSIbQ~o%d_Qf7%&}9x(pkr3>e6=sTr7`jdadnZEr07Zolj9XBiHJ^aUngv-bNhdLQ)< za@}&b2)d!*rCr?YLFX%4~TfKDNtcULdZzQAev&G@LcSZ6NW@O`DId!-GqfUL7t{R=TP{e+%j2f=0CtgzZ zeb@w`-rdeV#yB^aaaG|}205wBx}R=E z%MV01B(6kQ4AU=Cdi=xMv&=Bbam{%FK88w(27Hqu{9)fqVv%0Em@&(e)D8i zK2Bnj?{lUf$B5_{RV@Cn>vkhPr>X_LO2W`;bwo@z;IRuuNIBAwIC-nt^N;zn07CLiBnkuEE5x zZ`W%DNu=e9TM1p$0y$2S5EE);<;><YF_swRmt=T=abrL>yKct1mtm6v(WNkOk-Y^l8dt2+AjV+KfNTvjRxybhd)vR?&2oSus@nt^Can@uBRG*>qs3YXtl`X^}NCs@$-j~y-u|xa(Gm>Ve{0- zAD$m~XlH&9|EDL@+3W6`ccWbPMeVuF_u8uG5pgq}p?{iEogvk3dGy9_xFWmSPfEFKs-5HM}@0Xeqh|WnilAu<$#h85G z$p2Tr(|7)JdBVBM%c+|>;GMIrj->YVA^ zuE{`BXVBhr4u84=Wdanghb?xuHO#5hOkw1z-Q%2|uz5gKI^E1IBVO&(- zc}XA9xvSC%&M(Zx(YO&ij26xtASecTmH({H6{2AJv=4BSu$fbD<%PW0F}VY^_m0i) z%3n2K$SDLlRLcY2=AYJZF~=BgrlY#qElTWMw5VXF7dJN7Jin6J3+1D!+=!}NHix<7 zFMrcDWnh6`psd@cU?iyM9poSJz3t~co9${%B3x4Ww!Vae1yxtCNuI}3}`7f{}%H0%_R^|Bs zTshW|$B7LLDD$;J|IdnV5s5Z{RqE~cxmx>PkC#7)Jvw&#k!ny3L!_`VXRyeH4W+~R zwH#6GDX9+Y_aR5;O1+NEo^&v`?({a{M4us>Gu<~BJ8ztW^OCQ1gmNBDk@2aJ9Y({Tds)DE1OP5R$YGA`4MRL|1|d-6ga^lYOV_UO%v3Hi{MAIHO*8MkyTVl3IWIKlBd$=q*<=*AZzxFv_82uFHRcIEf5rFrhN{Q4`i*uMUW!*O$8lmOhvdbfunA3^H(0@` zXo41NcltgxNC_h{D<@5ZqrarCaq5kzO59amRT{#;g&C02k1&cZr-1_Pv!y(J7aMWT zOT&2t<|a0bReiA4>x&ICY>!w&?Ah5D8GcW!O(7)eR=}#bUN2hdK4fjp;O)iUp9K~*^EL*l6eRbP ze47E4B;K`WoF6({99r;QG=k2su(fXB5!@gvgaowIFQRb;aQ^6s;rW*OkN(HniY$mf zG{ptZuB5m9y!E9Lkqr@sFS7v?|7~zd>QA!+XBW4v2dt*n=^`y@kbT%s3p6s53LJgH zQAymK7RO*?YqgsveDYzH7w9Cis0`9Ryy_X)O`r4JYjj{uKyXUe)UW9vuRbT8VBL=Q z=3aU-3IBxYSkMNpp68o>0G*M1OqbDCp%Wi`9SCDi!VVWM9HzUxNB^dD91K=tTp zC!iX-IS}9k+)Hd!{iKNYkMYLHf3zy+Oxx>N8~cL`2&M442=)l4C^ZAZ$lVljkFJqp z@YKbz@~n=QuH3I%^suwp6c;`obg>6#u?-wSdLg8N!IsBP6A=?}OP|xgT)XPZ+dE#Vdw>7OwdMm_+2weYJ4n_j7S4^D zsnx|Op^UvN-QF)95|9#NJG2-7Mxu%XsJh(pYzBWuHz_8Z6MIVgU03dWMH(H)?_G3< zq_+n_qXItGMfqc^KJd@&>6({m;L4 z>2kmA>WHC7d}k`{I-2GMxa{(;(&Ua8xx?!d$bDj4#?-F~8kXm=V< znWu~zk>dt4N*0JbxiO{uQ(>eckzStCvH4+XaPAho>q2eN+xk)Q4dw%*XT1ww$*um( zemXN8sUuNa+r)PK!(clZ6vqi8`_UBU|xgcl_uV6qO>K60ZTALiGS{oqf^r8OztVy9iGMeac0}B)&wAJQn9o9qeGpTHj%T7YNBDnv#=aU7zTd>n3gQe4)&A>eisfNt>S*0TnLS!ANrI%R zYh5bmns{@;h4Iv@zJr9p8A^uA0wIR0&{ibswo9_8&7Sgaws3fDY{ApN9Q6o*+9HLck8ejL z{bDcoq%~V!5rj?>d@rVO5z%d{4GB7uRxeX zGcD0^6kGBMqt<+f6j=0TeoPzzlAoN|*!xEN-IUk4TZ`3Cqha-(Ib z-Dtx$`R98-+n7De$Xc=YS21Km(+nO3%#AJ4n*CzgXFa&2H&-b})?atA0%@`x2TFPa zb6urHs|gQb;tPvedAmmP{VUY7G@k#v#EG7eKlg>LrN4E6#{MKUTjE>k1lX~5Lj8TOv?Qv;sRha1^nfUy+5Stjv z3fI?1*`ZtF(Q7WictZ>suNTBFBKg~uJXmo6=VcZb8H*7t>YRf2 zG7eyTv|%d_qXJ%`r4y;O9MHU`rYkT(9DbaoN;s}=jx;j}R9sF>xToG{=5VHO&A2Qk zO4Gl6+=4*IM=&-zhpEWm=lnhnc|Ttq22s( z_w9#U)~uHwWq((b=$r>)j|{$?LsF!g$2XZ&ko z{skDU9&Nj(LB*4^#v|grWaA~=qcjiyT10KT#FFiAMoY6MzL-Kt#!@=tV3oD=c7=U> zK;KI8%^QTCpeOB7V)?!|S~jGTDoO}LBrxd&U`UbNA2*UOquUQ+iLF68wa#juy3K-xbBW}CMgP%=m9l$+_I(dSnhj(1i` z_qR>KUo?MvaTr}GlAld--FOrYgmJg^RYoOuTZN}@T_&BzJ&oND;_xI#M_)K zvkGj70C{)LEhKxAVC9IQ^Upe}zb+*CCsDWOH!#PL>AVV#-1hPqQ!y|>^V*n7Jq*xt zjHGaBuW~u3_?Cqp;@d#o*i)WJZpx`TOSt#w(iYRjmo7JgoCL{l*Ro}V`j97*1|~g` zQPvk1`r~-ohz0(pu1Mmq3aPk1YG4ZYret6XGM{1=v@(~R) z8Je9W=`|REaIEjuqs_q0LM|%Hf``3PiXc;G7p+n6czAgvsQ>rZv-ek2#X;CURsbVB z5%N1ORVOOMEU@j#<)$4`qP52#6&$b>_pc>@yxgZ@68RxfwngXQpfN`w5yaTo*bEO} zSsD5I!h(DzgWmR7Z?zpQfSbCte}o>vGcmBj-Le9c+^|HcM}lG`D`>2ZYm z#sFS1gb~Shn)!ObMPPI8rzyg@pVn(>A|QiFhbKMw>bI}XMuv=I#$q9HK)Lz>NTm<3 zhH^l2&P}j1$_%U2`V`%6rtw<*a7U9e1 zm()o3m56fUhr|mnJ%d6yyC&rX4L4dO6YEaY9Zw(Ilo^-M%U^J|R2YcXo;5 z9tZKCPNpL3@`u_ATc*5@7QIO^a$lMe$XOtA%?@&m6%n6QB zW`8MUMID+3fl44Z9d>MXWm~4YOy9Wdw`^KAvDKA<&u|y}mUZFz1;xH&AJczy+BPgG~6g29{jHR<48FjT9`0T*rsFobvK46}VU z5j0~4)0I6X@-?OYJ&^5IIuKaU+XQu;y}wrq_bcyBqga}}oi#Bc>eWa^k!bl?*bFLZ zld{^CwxnP*Z!17c`00LhtOFlgvsuqGq7w=r>YF1C?Re@Ziwqg*mQx(FMx1~H)?`4J8tCxAEGF6AI zT_x8I{f~Z*GX1)S-$LwjuIM??L=%`}zT@A!0c>~Sppuposl zZ|QG`gPt-L26m+$=&KT~D+Y-_P{>33I31Y-{XJFU&<1R#!R+8+@xU1Ph+GW=~C)yFn){ZVPh7oGPp47s8z! z=sFebaVG&l<#9_K{9{qjkVS*122{^#dbzL3GJxc)p5|zhlL+IBR!K3*Epj08UXrWr z_K6t>?CozIC=7peg}Pqr{N1y=D<8y|$_s?3S<>rRQ;x+$5Vy2Q;hK`)NOP>U>WMZV zD$L1D5nCyI$8hv94ll$W3lH>$G(e7|ud%i59M13Ciq*?KiP+{}_8SfDMz?sN2Q+uW z`|CYM0iSgQXW~YOj-<8H6x%>ZO{^N>Z=Gf=J3QRu)E3yxuoy|>lD=>C@_atwH%g|? z0;~ypvAk8V@BrTnO0gQeo?+(IiVI^PNu%=BgBfum(MX0D_J;01bBW~o#kDAb1{`T{&gVXI*dFDSs8<< zBiFCZg4cCMjJ&N+n-R4kh?3cW_OJ11!_0W3?~;0%3l`=Lv_}j?tFS#&7<=wlWG0+0 zX{exHQ8Iag85dZ&bX~+(}Ob34OS9;?PWjMU9?Y z`MOa#K`-yR)JJb@C$P((E5yh_^==Y^l#`Jx?L&atZaM&_2El{ruV+y9uz6(sOP7&* z{-BuyHgUH$Ewzx7H@FzQG68CH*`h`g%vV;`81*TAaV^hCht%1*;}~<%cSv8I_>*)_ z=(GhLzD6Q1_#{9eC$Zhw)~PO$H$FibUytEgJr@JW4Ljb$W3|Law_b?oGdQTKE#p1( z^u+nC35#W|0Z4d?s;L>1QN=w}aMIyI5pYzM6gTllGGX`!w{#XxeQiV`G*%Y5P&4yw z<618-GZ>CA6RKq-gfwIeJ^w_{?%ROoYd7#@m{*mgh(!EUbdcmjk~6>-ejHfNR~vw{ zmtSOC_z10NoH|f*y4jT%;-YRTyY(2lbA2Pf>IlpXJvpgFo`rNh0_9Twmq&3xaPJwu z>^O<0?3OBoN~Etw&2kfu?!~ImJvNT2L9u325xL9Qhh_d4`ig_MTTLz>z$TCyq=fXS zl{hLUmxLh;w{|A3d2lZYEo<1dqEpG%4yvswis7nYz8Wmv}DN-L_-VWa}OcXBc zhXRJ4-R;dC5bU(?VbvIz_Ecq$TOo$ogQfKxO zIiXcaC0rBC1^2TIG$@L%d=Oy7Htp-Ub0Ik}0!dUnX}mGL(1UD3R!#f2J_j`^jSXkB z8!IC+25Kaw)8+a1hHLZ58`cdf?ru3|!;#p_R7t^3_V7e{0DJh^m6b0EV@5XjX}Mk` z&Etir=Y=T-L0p*=3tioSCO^F_oz91n99Xg%S_oB(>Yazp$8yvJh*?C_I}(FH+NU=C z;_jsbqG_QVV@7C>?N`z4*U{9Wmq_K_BeD`bK&xtg<+vk*Eo1ouuS7ry4GQgCP9A*{B$f(m5}hfLqzozS zB9db@U^HVnI4l|Ngn}_jtIkODH))YcJGLk70pyvA${i!{h8+s3`oPzGSUx?L9@l2t1>JOUARe!EQr9L;X%rTUbPoA@ zwC0le^Yis_E$92dtRb_}XY4Ec%dP4;Aq{+0u~MAb?hcFzp3lSvCc*)lioh_26NzQQ zyFFnO$#hAF#aLTpscX}WI?*Jc;8&Z$vq?9_51@PyY2^%K+=-s**CU*kEKf~F**DEk2LA~-?D`o-AI!cP^al+Q8|4k%wx!3CWNXY z$xMH=cZluQK5+n~<)3yay-9*ft-dnCrKH8}63TeM%Ctm~ELJOoXyph;KNHODg`8?% zior*wSf1%hGQ**ECnW_8Hg7)clNt(f?t_9(Cnq`kS~5OkwD!c_TTdNqxP>nY0$f^K z4{Dku&_$|9vZN29PuQ$A>mBc@|KpK=Dr*Km6*jpLO9ty+v!}0&$WhBtCgfQM%`Pmc zc{t7RR3EfiF8(ELo^ zfKjLolY^w?6d!>4Ai!7~ChFxRer-(T&|4rwBhJ9w!uU%BRg+9b)$E>{Br>#7!M69m zX$z`<-Qukb>#K?K!c~~P0vs5`sHo}+F2tj|q#E0o++&$)dK+S@nCb{{s8lc%aZHoR zN~UPhpl7T{Itwa$>5sS?2}V<`dgp+-8B8TMzw1vjC(#f#Y-x?Mk}zKUKt7g4Z68Bh7IHHMLUm%7DSxwRhjc^W6rei)LqFCz`;RGd zR)L-xVo}nvCJ<>OmP$<`I@rkfILZhys>X)Iw2mIL&#fzC-^5^P6_34QlrEYPe8C$Z zt1)<@Nu|DE%Gy9}oUWUZJG>owc2lSn9wSdD6=zl&wBc04r1Z-C+9t7N)`%NH4g3if z%kJ?6Qw@9**i>PWtsZwoC-ZEWs_}8z`7zE54(D6zPr{C23lmaoCbXf@KF(vf3=Xh7 zNe`9AicX<qBmky{VKYzXm z%a@Sbb8Px*rQ%1um0|3!#j_=;G%XBIXMkx2R?a4lw}0cS#q`0MnYijPkf)jDV0y7M zZ&Nxd-icJ1fR@6Ko9>B9hcQl?!hy;0*;~8dq~1yKz-|Tpyp{vI^KLcr6*DjcqLw4r zmow8=HC^nxgJzZ!rycEzhF#gHGQpN)SFJWPHOYJ)05m!sG95JGc&aWmHoP{N?!Bsc zV1&uhl&uWOS#xKfX7g3DjG8=yzNSDfmnRPw1o4IzOQp|E4<8x=OVj+w9Njl{v4+~u!l*OwjzOF?g7e<-)Nwag>Kwf?RzC86e! ze>%0afw)ELGgv!7$ZwQ%EaMbZpU&|=u6i|hJiE7Ym8|%1ieBf zIApB5LOfvUhKwaa_FlYqaRhC~rXbtnRanF?ZD_^bOh92=leAaYpQ&mUP+5m3e6}An z0j#Co#y#aiw=PvTCZw8c^8|v_|CyA8u-hM7*U6rp9kuo{byDZxN3of<>S2 zjWm$TZPEJ{ZC|W8^~K)lRYLiNA+_SyEBKBS49bP+EKnzsCbEMQBZxNg>b7Sp613r+ zlytFghM*>`eP1kIPxZe~(j!eUth#IYocCQ$?Z1DjV;`rnc_q$%Tb!xI5ptUY+fvKitMXMT)9sw3UN7qjicA3AwAn^2tQG;%%7<~GA8vdz1^R6I0I3$Evqic*`@3)$S z?~KTG8iAykg3HcITfZ7xc6sC{ue2HeF?zm>bw5g#w)kSa^L9`^H!lVxJ05Kax+5d> z{EY-^M8u|8u)aZc2Hm*nzbZh&HG0vSV5-XFKPoMvi>V!xmA;l+3l%HoczV z0O08RK7gI>%>XDJwyg^1zGH_bUh?J{#1mPdB}f98Qy23XE0{8p;PFsZtejod-`f0% zQ{?2ZbqF+`d1CiZ3NpYl!F)MEA550kz%9>&^6fYCU$z^#ZA}kxaoS%&v`!bjXb!%T zl0I;%OH=%Q6UM+o3u8b34Vn<8)yU;wwn*Nx3wG?COxFxLORp)y)lQVQn31-rC66Jm z3G`+s!M0X21I#UMEO|2{wWjrkg;D1~1uG6LM%3Z2Z|04?>*hiZz&)@WD5463J(rR& z$AoX{S6k`B*XBB#6ls8hhk9QcnO0m6dgz+JvY_kG8CzS8*cjLltvNOkTY#=zd87%BL7Lu_n*(XSD z8XV&(#%#q~)jsc7R}|E)KGpXs{t!qu@8PhYLHTyCp4B7UsIB%)G<6->BwIr7mxaI}(dH!$XVE-OaA1k}5%B>Md3 zHrh?xq6akkZ0@yc$#W_i?(-|JI_*&E?i10|>o)x=*P&o0C2hnXOLCde@X-osb3o*H zcb};FPzA_iI`7|xkX{oy!bT@{f4tE%Qkv)b(MRVVzm>m!@lVoTrxwa%h()3yv5FtE zlriGe>-T^}T})-5b}Dt>Uh#$X9FIy19DK+3n?<$ml{6Bp`s=G$c&#TL$0$GV1+{DVdMuP`;wC zWYu(r0LtjYyJYnl6t)?f38h{X16ommR>6$A)Rb|(0spij64l6a!e(>ai@}W=S^vpR zJ_KK5@7Nz%K1?6=NoQt~v^XM?UA-*Qr5#-_QY=sm(&*34u}Ka&914KTbC<%7%7j{k z5Yyu5CvnFbjN}!*t)BK^PMBq zq1}~A`-y|E*n!_EiC$h=Gcwts-G-TF+DF$@>ZN$PQrC0bxacz^!M*9VJo^m1_W@|O zIa7RdQ;pQM=BMf{SR{4)6~fB1=b3yif{vMEEC$lQY(skvM=9>){KUh5f~eoUyw};; zxi)K?UuWvvq%VnTjcRE+c1gLa>+Gm|&GgXS59bRvz?!(+CzsO9QG*Tb*$#! zNK||IrfAd1ewHIN^bL-Pg}~caIC;PNLhwH-#6AxI(I*H=++WlA#~;5L0Yya)+{ur1 zYd`lm?!{NG2%0JgxHY8jmU|eG5B=6OERW^w?pBc=c0Y~Ug}bA{>CM2PYSgNK%EQRt zuk_DVt`^F_>mDHeHl+VVs!%PRf*pGjqTa}HF|XZu=>u8US_Egko1toy6aBHSU^gJU z0D@LDU9qlR%*h13JUm)jGt5RN-#k^WM%?AA{ysOC42Nr+uaBdnvVmz7A5nb&=* zZ!)j?*>{o)$Vb$<*%5$?Y~{+}7d7lakc&oVToEkRGIFT4}4ixV~46!1J z1XougebcZ)B52cqgMFFkhr}ch(xa9GX(~c`n{CYU@{GNbCZ?>;6Si0t!<)-s{zdK=T`D%7? zK)@%Jm0Ue4Z&meolowCqP6fvXpYk^!EB7M@$DWFfjcueUl7dh1Y9k_L%E7?jWKguj}Opb*MOShQ4Kdqu;P2NWUwzzx%t#$CncYGr6)cC~BvP9HE zgt$>W{fQDZ^6E;nM>>-fzvk`cuI({37=BXVJT?a0LFwu2o|I39M&+aqxFZXM?dhoZ zqnA1kbDQ_+9TMIlz=v*#)a^gOZXOx^;}`5xJPx{%zAPegCOX~Fu5Tk7t^Pr19y>Te zrTMvpuC+vF_!G?QO91-15E8XbBq*KXalAB1J(ADv4q!me*)QhC1-1URu0GGx9Spds zLPsr=gtPCEpfouLdut*rod{uecWohvI@)++?)kVI7Fi7i!LJLK79HqPV+!RhsDmj5 z8s{;h++)B7lm|Y_p`Fc+9Fc#|IK2kEaHPq$oqe=SxoUTL0G;czOhUk&Yi)F=_57Ad zv@vI|AIN+v+VyFErp3FF_d8AAXc0#)PGY?~su;~Noe^NQg6`ha$dJ;p{+etabBo*c zHoVnVGpiTPQpkrt1YQ55%X z_1qG2YAihfFX?d=mJeMx11E7Iuq5KTyd&oM-L33`D%L)9IBRW<6F;%zkzdAPFXhO+ zQJf+wDr;wq?9gE^+Rj@49?na-NaneVSmX`xXGasPQ?gtDcG@xa+}Zh!>w$&Ar+{kL z!ifA0Jm+$&`;Pdo%f++Immcj%diiA^MOjZ+UVmP5jD(mG((l9oY(SI04MpSH%6Dun z9a;Wl>S+mBYS){`SWh#GxS_~RYa1OBS4pBBZ1N+2W4Q@)8fM0K_iTeG%q=M2(^>XK z-UY(&ToPiBA>l_RNIZ|xm6z0t+0R9{=jLB84a+aN175_PkuERO?#~{n+){x}vP#w$ zMf87XPJ-OiJ!6n>c^7;a6a}or?MgI9mfVb1BN?oZkJrMDcJxZ;U*+`YRTm?~x_9dL^T72B2XJbl)-=XFBisIa~o(GAIyjjm7o0Q$~CK1ZNudng&v*(f^OTVJ1j~Zu8e+fXa zm#$2mRUnk8>FykP(5WWtgs~H)TWGlSvD}X5_h{X%0i|IhcWyq7B%dv?d(`MnYETlh z>EcIuc(MC5!OY()AqAZBz|KvC>I`uXOkOAeZ6)2Q8>Ub6MQ=)=|9EKmmn~J%j|6%Z zguSTICa7H4?^!X?!$o>wah^}ms`0_A`k=f^|J#ECFf5!Fa-Ds+WY`Pe+xCRnK0V%> zHWC~r8h#VxFnj|v%3yQ5Tg_Wto1J<(p9&_VT43Z4mGHbUTVhLN(h@Pag-kS@-Jq z8JqQ+a#&}*zn%!ar7z#v@|H+_-ifqNzYv*@j7fLxC~EZ13`cMDkr`!1Eps{qgo!J% ziz1Ee0B*aaKMf^+A!e>$Ja@$FCM55MdT!T;De~c=5RM0ZF@q$w zcGw}f=-Rb`L*wX`$&aD;cLI`khp#*d3buXL)k>!a4$Uemz_2gz_6aE{PU~ex8Kb&{h=X=lR9zkJP{yYAcarEOuzibKa4Po=(^-Slr*&8 zI##uAOe{XEIc2o9j#$WN9o;bNO;VvhqwYHeOw{s+`?D_O1%CrI#RIn=W})7{4*X`V z(+Z({1qGDYw=uzBmW5&v>{Adcdk2$*)>spw_otd+y#RMy0;(*<+DUz z1pT1@)J^zrpVpi2uqomR3SBSM8i1r0tZ|vZATRiZtJ{;8G>=kGA*d zkp{ARAWfoL@71hi{BqxJ(w9ns?e^{HZTp^X8Uwa(3>XTyf-Jo-NwB54NjFtXUduyk zLK%tGXZ>>IY}}BKqMRS?0ayF9b3<0W&}6ksEN~W{LkWJUdS8xb+V|Tq@83j@NQR#O zEcA*7xW;R+si*=aGjcICnT{YS4+25XGE1YV$8)@75e$eq5#Fz95E~g*(3I=Te>HT->}=n z?SPZS13(!zY|!^+#3Vxubx1#$+_??&n}&aO7xJphygiHd{7TeTS7O!o+kAz$C~5=c zl-AgMv4`Ek8qN+9o{28Edx_JCJms;g!D4lpGQqaKlDFgiF`(C4=S|lmq5O3~&#El< zNhJ-ey%#VP8Fl&x+8Zmn{CUe|OY6jjgUc!5w*pY)wNiasyqtq_0YcYqM`kWGuqe44 z>-?bz!L?D&=RlmgV|PNmzDx9KP%JG$`tv*9#ED?484zdV@admOt=H-hXy~{%#1Rs zI^A}*xD2|kmrMIG!i`R`i0~Te%pfTq)cdFh1~xe5Gdnwb%u>W&(x@3^mYHDCR@fdv z@uU_f*vt|ewJ`7d>3bXeTv#$LT5DfAVX_3Qk(ioV$%alk50xZ(SBwTHxf7}1*AZ_^ z2^s91sI1|dds}yqC1?AR8vSA^6F(NYE$@yyQmxPiwlc1g8#$Jf| zoi+;rV3ae(Tf%x#w%gR)C_H1NCt?S&YgNKbhIc}EOu3zV^22ti9~z)*fA%!nghA*Dt9g8-J0$Wpo|Z; z%w(Aby`(HSPPo7SkeNY{qGM&%TbJZOr~L))#`fEc^7D7>h%~E&UxZJzU)H>q&-wW8 z(3;eXM1RI^_zsGm_Vd35QH5#|$z{C62;B#Vz$1 z(Sip%DXCYLA7t=EmmDWyj(XeG{zrF}#%t6#{LII5rx}=xTDKJYUo7bf-co}zB~v`9 z)nr4sbKAl9r3Bpw^z_iIHj1@goMzeLuSsI8W+*f{FVouLQ>9bxs=+#ZTn@F~UUJ&7 zu&S|ns&B!2tQn)~tyo64Qd8#mRIHrImPiOhdt1F&<#<`rfY72QD!~fy%BL!B(}dIg z_NM=c4cK_is?;>l0fhJi=q+rQ{<9apv+r)XCl-!+vLb3C;-?5SiKM#m{YyS{)AZ-w z)iZmbL>1bbL=(zzsgU5QW#sCpE!;#YK?aBL3Oevvg>~0YMGJGT#G}$dD+?S@)bJJ6*Uqk~1P3qt5y7`X=c6 zeBm_y-N7%Y@PJ_E;;x9&gjMN!+U;)BZdc1Q_=8XlmtXOf{_w8XT5qB&4cng%G{>yw zaO^w;!K(1`(UIDe`J0v+$IyUEH?>{$@wL@LKlwyK}t-hbVn`F5YW zk2#IbKJC3`Wzi|!m$)Pzt0hrWs(lnyZuXc(06n*eDi_FB7b%VcE)^imWKn(vef$V~ zyBA{PP*TOmY2eDA-xpez?A8qC8yyDLuG|_{6v*y0Hv`aHfVkYEbb(KOwU<9fhG->Q zSDlUqW{3o~`Q(UQFUFLKqq5z3Ln+`&ozVX6jLNwC!Nvx8D$nana!XfO)EjvT`y=-w>^!ErQ2HZR0F~qPuf|ZuT_*4bCnDDyE`OWN3TBcfNfSH z$j@cRgmG%yTWCzIKPSS*v&-H7z)35NP~IXVe8otc$i;3L{-f zV~Rko2om&ql1sZsJRtIkT`WHF%WwfV zhFUSo`df4C5IBl7c8TuBYxcf>Kzbi(Z8xb%U~=rIG9UW(cGQct3BwZ~r|OBwaei7Z zR1V#w!}g#!@(N z$IhMWv&{W7`}@85Q*=C7p(!*~f6*+Jjw>}h>6JKJ|KI-~_TB@msipfH-JytjR8$Ts zT}44r1f|#55l~POkS@K37FvJ+=h&4ZAiYFDT0)U7HF~5dEg}#~fQS)74?RE#xjSOP z*Z*6-@45H6_q*>IbhBs8?3p#cS+i!XnZ1Xmg@xv|JW%}~qlkX1vLm(O)ZPhGf61#Z#u? ztb4Uc70We^(vumEGD2lTrH+{aC}j~5k$Jo1{0p@0+N&Jc^`@CGBM)>^bcI6tbmoPR zs@^#M7_*nyGFa!EAbYuUvcGq=qNGuJwUncLn^uEJA3mW|zJmhkU`Px;Twf*GhUKvR zA65i(7W~R8{N4xTpPGC@AAnV8k%5=Fk^B3;9B=St$m~}Sz%5f-l}juiD&Lef(HIbq zh+w@?cwAs|`Sy77`}>G9bq2bjtUe2#+tjukoQzr zrV4dz9^DlzRa&`Rh~PENYqymXs5IAV%~K5Qq-LB_8KVMIb_9t7>g!Xn%I~~q1_Dpy z_|4p%NlFXgd=~0OeEqZdd3ql_)Yw+43rpxMHG%Qrr}808P6PLhQD?k;%f{b}w#{S{ zS(hyB>@J-!t2tg$Qc@uSBi5MYKi<82$c}(6ZE+w>ef+q8y~5LHnV+&iI@Hsz`!Z}= zB8v^}kjUx*a@><6Y6QI!m>$6kob@a${*;hnwr$TsNUDT2iM7wd%e ztt@a1efdP_e8bmsyZ74%a9*_oHNn@fnt_N<;7paK%|CTPNN!^$hvt4WF_eVwjhgb| zEp)`w)d38{k#yg)`IT~ib5-!WG6J7~(6>66^R;)tuZw)ErY)2=Ypv`1nM_}yFP7e_ z5m)LN?W9yP@Z?nW6~5?@ImOPB$$QrAHm1?fhDW9Il8BY!F@)9iZB?)_(5Usvt2}c= z?Ye)~%{}@OH3@GXFUZ2cnTL|z?_A+bA}CZdZGC6*c+X|I&1K)(p&r25+E-~2uWWEq z(}oi7tps0C%e_Jh&v$OjCW13o4154|ZN`+V`4e9Fg^c}FXBN@+jgC_E+uPRd>7V-# z9#yz{sOdvnGGG5d%gmdc5I;AEW8RB8a-0N;?(p6_U(d4yo*cq*cnh9D9e@r@7w0J5 zI9Ny9W1v_aNg@*{NyaK>4ZMBPoiK1x`obW9MQvU1ld+jH3?Q%h#5duVdfITcEi<_e z!#&1kICQ^*vS`;LyhT|~!rM1YY%RZH;`@{LkL(<-CPh>^^;A^1&8(kV16+CpPDu?Z zAx)OLmfESLZ%j#JIUdYWL)H&k1f?yKDQ(|HfcbjEr^&^O-@E^4fDpTv1S8rK_|xmV zoD5U1Wf8F^voId@5QE`~DMtOwfvaV5Ur(F>jf@%Ekr&8OX!i<|lydia80p-r(61-F zoc^$?ny^y6Xjqmtof%UjTz0X3>Un92cFoLZLqzHPGh?)$f%j@rB|~$-csA*Mmzwd^ z_J$4YmMh9W8>1!!(oA@&WYD&DJ|2&VoIA8j?ZaG-ujOG961bv?aQ^)R8|x#iR7cLC zwP>B6DDPTQuBph~%UGeeyl#86+RZf6k*3y*Qz%KVyNOx>kuQbL~2n`oyCsbwr7T`F=V`tdP>HC}^MBxrlNR+0eI zjFc7MvYFRJYK!Bf;P+vReA2LK6;ClUm}V{i06i7=M|MCyy`;$M?MoJQIn9uD=+eD%ngriqsOdw!q;W++0wxDNi&$*}Nw(!z66cxasiZH6bs}Jy1rF z1Qu7^vw*|lNl7aN%!%Ku$W*i1&KuZYwR z{c`dqu=O1U67iYJ(?DKbA0$Vlv0-QFg8MIF$t%8JTmJo&8=z*F+K;mbfd^P3hXEEv ze?=@j0DP77C1kL?@hS}AvPRT?Hx|g4we2mQ0sdO5u_p>aUw<7#TR@zkVpY^}Y-Gk8 zzI4(OV^pDh(!0b6J=rhwQW zulEf!F3`U-Qd>s}$z%TQjk};DL>T^tRvM^&M86$g3tYNKgs-U#uKIn`A%j$7s1S(y z^0(3QhEm<(wPk@OFOS^Fa7uts%ZkePXn;2J>)5Z+Ytw#{F3@*Np~SAp5z&VWG^aAE z@sdhI%=-IBN1LrkAhJ6@Jv~&8+&O;G>8p7CC6chBa^Mh^tlGW&^+hJohQG6Z3dMmt zPe8lu?4^J=-VtA-J3rO&ZT_0;-&{T=Zc8j$|1NhkwtvfknE^GsunFOH!eE)wfjh`M zI$~YO5YH>?v;ghR4`)=*!f6j@0{Btug@AU|?lxrY8~Cx$X2Y<^KzfT8!s+!6l_ETU zxs*Qu^fWMU-yrXj{GE0X=MfYz`4eOli1@4NP15&9}Zn_FeQmDLPf+MeCLW>t}atIk1bM z)-jcEn2YNm>7E^|-c5FG*u|=NxokyvJmCk!)yUd{e%w2|-cg;=;DOcx6&%v0Y5~6X zXk$x9R6o6KMVwL=Ii(yRr{>jSS-tx^I~K)ZS^ndJ){>J{L)Gdev~yRWYaaeUBJMgvMf5WoTs3`o;0$QebT=QP01l+0awwoGt{qaJVNy!ipO zWkN8|2uKA~06TzhGXS6g2=Mk31M)lby8CxQZk>V`i88iUC?Ew;W#+jF>NkLCs50|_ z*WJGha4Yc{q}f_U0Vn_pTm_T2KKm&HSjZVI-lDUw0LB)6764ENpT}+jD+4w`z$dn` z1YtLAWyV;*7;jI|RxouFGtLTD3EppE-m`)CzXRf6bO#vS!47h~Ej7pTd60Z3eRhSS>x>-L0KHF1nk;tN}I;7Y}o%^{ihg za6lG_<^b4OIheXsE&4ZrjRk<2nLD}KnFCteqFDeow(a*J0Az3UHfGY-6gG%G4l$W&5dC)?aH?2BO)(TG`lsi)IJD)cxE4R5$DYTzB+d0L=KU&0mY;U@9%;=zYwj z@0|Ud1_EgBeAe35-g&)FWw2l-bk0@)$IdTtFdz8r*DRO6khXszeaU0=t(0$Ea#(#Y z1+L>^?qP2UN}4j0Jy&yP`*ob`t*q6Zt*m{3FS=1VdKdFyxQnN=mAVy3WPm{#I1MIk z-vI$pk+qhwIH_QE5@77O#>@{y^8tXRxvPi0m$`@a37CtsxsyHI{Dixex`#Ck;Ad9# z{TU7xW*yoV4$Lm$XST&1YzW-L+Wnl9IUEjL-wQyuRI&lU8Gzjzq6PT$PWCssCtLzf zxB0L5cO0Knn)z#ZmwJ%ZyVz^2Elq{#R(qtLz%kBk(*2WSd&+J+O!KF00$wE!6U?r3 z5P+cVC3FgfxF7(?c6%W?f+kB;o>71o)urP~fK$=r$_{|wR9VCNN|ulZl3V^ma$whl z8a=60Vnr)rm8#mYutX0HTdG`b#DOlx)LtaYQ{`RZCSaN&I=}L`hSP*GGymBd^6Js% z{wdm;JpqM6RUZLv?n)u_?f}4lHvVzCJUa+(17 z2jZ8^0E`2$QvyyiGnD)T(XO(T^+&N^iK{&@?e>nxEJ576Dv9-t%P1u( zIJm@CK=1s>Vs)v$?$CuVEvV^QEIj^|eQK}i?|1jI1IG?}&`b%O_s`9(tqmAbyYPyk z<8ICfGb~Y%I6DB3=zF%1b|nYuGBg|fe$o#{q)@NW_2gV~U0RGx%J5xoCiiJ0RxJyL z62oKW#+*2U)L%ZOYaxfq%=0N08 zFE@^FQt+t>#r4w{d_(7AmL^W2_>{}wWX&>$zo{}!QZ2%0T6s}QR%+3C%zA?KzHM}E zEqLxz;?e~Fik~Vc`K~k3k%mJ-6S}(EJG<~YF5ZE>$tCd2(N*^r3m9W!-W=%@aPZxg zmlK4lkd%bXI{Ns8@5=Ku(wvS`a;dZjEu83*AKEZ{^Gel#egnE%kW})B)QVPIq@m4W z+*G}O|33XXq^^w8?L+!7VqJHQS6|tQMK`;V0!N!pXo4qIe$?3$lTN~I?NSTCs;ts7 zrfJf3x7vDJxi84=&AZTJxTha!Q0sYtQDuknq*~LIlZ_V1Pu;ewJHJkeGEr*ku21E! zlsC|+7hDwQ?|Mq=T{EnOi}r`Wke`X^_b7+EDV!~9JNwE==Ux&im5xef^O6$}9V=&E zima+kz4SVT#d->==XJfwLC^})Qy$;%u9o0M#FoxT&KLLlJrGyjW(%D~o*Jap{)Os4 z?>*^R7E4%|qtBTzoXYqb=r#Ql!TlDvRpSWbN)sXPq8+V%zK*!=HiDzqo1U^(WP6>or|1EQT4nx5*2GHltb@2_wlW94&{AT$pX#-uE35A0FZnIIdkU6+|J#avF+sa zqxKA6Wr541=0TvUYX$Y;Ie;Ao5&NR*2=2X-zq7wzWoVZnM~mMCA)O1^b7UqDZLfcD zyIB0UnAKHgL6U=AC}>z9hE`5PykiK!tilURR0>IE4$oHv?z`0=j1)_vs1-}Uq#Ei&n8r*r__eZmkS$` zX%kG~CvnIb*BitD7;esiSd8;A!SKLF$ z${r+tXq%gCEJqwJ5+>j5B$cppBb|A`lgDt-cX_GuQ=TA)jj2RFmPa$v0JwRUYys7)XP&za%k_l znbn%v+KU<`Ve)aNB`3_PRV(9Zms#K~G>5VK`^^57%m8y)_?zz0~m49)2Fy(pN zr|+@uFM?RjV=2c_+V7VIbbt z)6?Iq%u`=2)6@S8mg%Yg#4=@U)&T|e0>BAg8QqMJz)p>e>K8!)h5*sv55QOhgf3q= zbAJB~YfC$47bh26du#Z9b!W>H`}IzqkOVDe0&oXl`40jsEBK%Jn~fC=Y;0^S%nKV+ zo>(CpvVF<=zZw{|kW|p|WQTkS-^MQltb%O1Z0nmm7Sdp zw9_F-Fb!ba#lHK%$upa{u93(AK@vRh0hke=DyxGeMri}{m(61_w3!r!+Tgn z^vF>$X&G5Lc?HFD=Pz7TyQHq6b3<28|E7VVrIodft)0CC+{4q$+Xvx$`_A2a_a8ib z6cPC}Dmo@MERyMk@sJNuG>}7eyUvFyb>Kop^Yy8mO(TVTs?&%%;MEX25 zOdc5>o0*-PUs$9rEwAhXS!Q8^$H8P7!s5+r&n`Ch11C4_K68!3+>PttsXsRVel|R% z;Pn<^sq53+7Vd3Z_Z*TQJUqkX`U}(l8P9+IZ!!Iy=kF{tUIDu{1N(vftPqg)jzmJjy&T3gL7HTWRzfCOdxz#l4f%AZ)5v_Tnv z>YK}tgXNu*G?ts~Nj2C%v~;3nqqa5hXmC%vc{}dC7$Sf6=1sqs=&O%YxPu>OhO7mr zeDo51=)Zq3Pi2r-_oTw=(P6V*gp)B^Q!?#di`%^YC&^u~l8}`9=~{`?SE+8r_H~0P z{Qd&R8`AS@Imwb>3si&Y;Z=bjiT7)Gm+Cx8(4C`eLXYdrN&@dHLk82U5Zha;NfJD( zd+4a*z#Tq*>P2Ot>Xe1wFy+C)FKU}y9PRy(9`C!mO^l5gK%kE(0}yGr7dVy105DE& zYtN7Z*w3x5f%MM61@Aba<33^f(?ex-fm}W=gW7Kx0RIRB_^p`8Z7=w7mY zZ7M#^@kj=`)nQQ(Qr7P8?U&oPD%DW}PZ)e{c`V`S9MZkM@?<8r6#3 z-OA_fK9P=gxo5`yRV=l=V$Ba4%@QQ9Uc4;9F}aX%Y*K5!yXWTE z+TQ7|JDvm~P9s9o=J#BBAF70(37j2nZt(UKiOft$h!g(c(OpbI8{5}PPxGIQHlM-j zzIF{kSj?{67!hX?G)bd1Ny45(BWd5uvk{&JQu&LR+7n`#QPW=9 zcbio+W2R+AZcgNd9J%n?hEvE)G8D?Km0z6ssP;p)Nn6_Ft&wYQ>e}yeAHR6YCn@sN zcC}hlvC=M2nT{!C>%1k64_zed7W{p`=c8R%E@fa*kZqb$J1LxEkikGObue+hwc1irz|Tao~amxxthW) z_TkhQ6Jm24KKIJsC33jiZbnaH+jQ(| zMwG_O;EQ~m++uT?k0KW(|6%|(q%n&l*OD#^Y#E-euhJ9Lm3(=VkedIBb7+py0~+ri zQnmw<+gM*uVCVP7EFDvLk)f6&F9lV4%@1!r+3@XRzfwnQSVOQS>!WS+)+SmZZ3N`) zbl@Uz6SxXMKx^pCg$*W?1LQQ~IEQ%9=d1i^aDLgcmubU%v6!~3TTB-LF8RbSQy`WV z3qEuSH~}1DKFgq;t_A)vs5{%ZfWMfw0yqh?mjZ`=3hF-v*iRwi=TQ1nAp8^=`{VKH zZ97i<@oFdV`&D4`(I@gpL;%P>@)?#RuJVlm&xMb~`m3G@lJ_@ZyuWk!(q+cT*;7wK z81F+4@G*3f-m9Ki5(6NccW(n&<8J@?2ynAvQKGh|M8!JoaZM#pzd9g!HL+pjg_MhO zll-kGmu&3VEO&XrXj!*D?zFr*y-8@>Fx$3qlO2X0q1HUaRPAmGwnPq zk%Dne{+;(pcb}d-{k!BgZpq7#lWY<^tgJ~~XZqTe&)+__^|l=ToXb9mHw?y`KQs|k zRMEj8$s>DEPTQ5z_f&cM3Qaw>i66cN1VOU0{H646ZEk(j2C-eaq;^}{r8z1I`ldXLFAGHBmUEEi8}5aeKFPJ8St$YHMf zkSiU0k?%Nc*=0WHI=BInOvBN+?h}VH5d8bGhlEo(;{NF5IzywkmfH=|jrSZ0etI_{ z#5o0bJzIRc`koJmu7_&GA2>aueq(#Ys~ZW2Qn^$&N4)~Tj${S4A3VRamJti6u3nYI zakZzSRvTDCo+)q{s4YJ&wTqFL!jktwqwoH=*=KEsU6pH1s?!tr=z*lfYe zvh9eHxD}+N9tdSHYEN5DzqEk8ci65d%u<`GwIBz|Xl*(r(fQgDXG-5mDf!9kjfTx= znG;OmUH)xsveIbZ9M_paI`MR1U9y+D7R64BKL6y_ftz|Z zo%+_gJqdaYMo)?Er=V;}E{A=auib^1{K;gSoApxpaVKR+&}LAygP2a!LlG93L4vMH zlxD~{gHaFD^+~xAd+qA2yhn}S1`YcE)xc!?9P3xv2EMY5{{MVnviw31A3LFzOp7nB#Xd-Q6lL z_gOjTg42sIXzptQ2;eX)(+jg<`f7q-oVwj$jOl1<+t|RZJ-)hn;I#AK^~1u-@!i|h z{N_1If!^j#fQei5!GGdyo;!EN#mnCMoRhulPfn-Qf8=y-c?9;AJlHGWmq`?WZ}%*K z67!xPyg$JT_K4u0*KA&W*>?lrl4kajW_C`@)e7t;0cH+1kbA+{Kir@F$Z^sP*{G>eFt&-=C72#Unnnsp~U_|@%V*u;}?qLFO;4CNMV`yh0^>BCF>W;gI_3CzfjKq zLfQWd1^7n_t42c%b2@^kK-%PwC^SfMM{d$TmH+6q>Z^_M$GbFupW`>4{Tw&@sXdR)9fBCF z%-5SP0Xx5{K6Y^a6MWcad&>#{0`v;Twgm;a{0r9tI? z9bl^GX#Rhq{J*HqpVYqef1>uk^34Jk4SZGC%z`A%%MTLIVBzv5bLD6_fDa;ew#E&{Z)-%b`gS7IfDbOV7 zQezzGiVF{&x{C4zT6FbF9c@;#qiNX)?zp+u4rH-}RXv>>!QE3_K$elersaiki3#oEu8VrzE1P(0JPmrn>d`W}N@Y{MH)1IJM?hB{g@l z6Dp@!==_?AxRHpq8eN=L(kw42X0~`!xCoX?9>5S>>#Eu(X05u){0Ju3uslez-En1J zp(3(sc!5l1b5`)IgQ=-?SZ*qLL24H5yQa?*rqtv)=g<*@nG8?jni7=Av3q0CRgq`t zoLM@a?5IB;lN(m$8(`WJ3yq80GV9QP^H~1psH#SjgxKj&jZclryI=U5o1UmQsR<(qxSg|{JE~+kQ)Z+bpX3R zu$MXHV%v7ymfU=S&Oi+;+671c_Q7H%@#S%?4=nnp%U}R7t*445Ej`TB5op-zsCrT@ zT)qfynd@DpdM+VqfjZ1p?Kciv2(VVMzL?l^b8cv2WsT;bjqAIPygqADw=CU~>pPol zBpbfcI(<~?-Z8A$N@V7yC>qoOibnY%EBwMRG&EM%K5Rf`LC>}eYw&vsD!pt-r&!;Q zWPFAaz8JNTwA`Fpe=Vg<6g595Nbifh&7F)Z8i#iXM$!9}a5hzeY6EFf$m_!k{Z$?- z66+f?z%wbcnD*VjWdikp9l&)90ER(S>NcQ~{bGl0VI%*^ObaJ@<5yonnfNaOWpV>3 z6aNkr0my#`D1wk5pa?+z4Je5J5>R|MfP(mUpv3=|fReBQl=y!KO7(vUC^Z{Ess2}> z$Up#~7s4J7>|=rwH@V|a$!!-9j2OMZR35@)SNC+HowSu6-c-XVlxhEpA&{n63O*k1 z-5D^yYBPl`v#}!OsZ2aOIpkBTea%F#F3S^XGAf?>I!C2>w&{3?_2(B!9vS>)ITvgd z3WQ9$&`@7DC4xer7~(=m<&dgfi<`cmu4Ci?rK1niOHj8}fn}>s_VC(w`R1y5+JuDL zatcEYNzalS(27NP5uWkRRl^jibeHLl*VmG)R~vLZhO@2pJ{V}aj5vuWAslV$7#jT% z=|#<|K+@1yb3}XLtbwOcP^$x(S33(=ILzC&+yfnHR?4hSBhJt37LkkbwBi!EoY|%v z1!FusGkDpcDbyPOIc`gf|CCh{WYMAa?W$85LgI&A;Xk+O&x3PEGXVmK@jlRuo(3`Q z-GFhm{)mMrq70EjUkh%p}v`}1D}&)+y$oc#pMlWf&=D)&zxqh}4w-Eo)C z@PItx2vQH)zz6e%oo&Fy=m&b)Y7cg!tw z?TD0wlv_fzDjJ#d;I@SzrAAe3mTftH#qFNRv6TWIx+k7|DKPhidSL%R)8h&KY^sp3 zpRWe$6w>qp|C%*p*LNguJ(bv1S7Mt9@Uz$fJkQppm5*fulJ7xjwE?BoQhHrlnQsp$ zvapAJl~w}~$!+ZAjPw)~_o;ycw^}wozkYTP)m&++6wKIc!w?|rI0z#b7tNB0e6V}Y zR(y%r{BAV5B)fO{FU6wq{3YIEDSf3VqRyP|_2#)1*`on#W$hMd@|wWnTs>k^;h61o zaDm07NpIWyrxFZ4CcPn(IM|$cyz>0ySW-hm3D-lU$z*kat9A0tPOXN0k;NpQy_3(9 zFtPsky_6BGy~`P12Wv8$C^>ns%bi+>@lPnvlAK_!b*jgT7!Ov?PF7f=te1&-o~onw zE7u}NvM876=N&}D6Vd3T%Ppf~+C>vF*#~~S5_OY5tWaVy6Ho&2+H-SV@)S4Vg*gsN zUVP$74vVIB$;$w3(-0PR3kVMruf!(zq5a#=Qy2`7h%2&Xjb3FPrvegn;_90B-99b- zK4W(ITSYlTWD0o%$AH`7>9qk`RKn+%-ecFBE;r0PH8v2yd8_6$)8$5I4UpLmuXXT> z9zG`g-mOu`MyJPAHY+M;zVU zUzN5av-d-_=E(fvnme+h#tiC?HCN9aS0+wI)D%`w##_rm^Lu+Z&E5%Vjkxv-X`yzB zEOL*y4#eEde$%=yy|q7z?%Er3wKcGxwp%?+I(tUHMq*I4a;)Y~p?CExa?67M$FbT@ ziso}q#q2jmjtftrtMnbzM9i?Sr*`^k;85iUjlh@fQ$-ZcN?cwA)Ob`>jx0jq6ru~> z$s7<$p1%*-PwqNb%FvJI06dmje3cM;w*l|XyQ%Egk*(d3U%a$egk|zd$!Un3;$Oi{>EI;n7Uqgq9Ox;X)x2fxL@j8t;(aZ=b+K=*9u6N= zc=6z5bL-VK#k9GU>)toaW|Vp)kunqISs7pPA7tImx$I-#-n$zY>b+&0aNWgACQE#*aJnkMt{AMxse$@xiS{jY-Od z6kSrx!kb->gE^zR#SABlJJUOPkXOg#i+jx@(~_D6b>98ayb>CmfW99NkHk113d9so z&NhUTnnV3EE_*p)0?tz;(a0T8et73evduW6xL#M~@yKmM8ym}u1jVNFlm78~Y81&a zZ^`t$is4f*rJ8Z;sq4DAdK00;8jAF*6RxzBTD$M1gQuAJ+Aul!$4h( zfalZdg@=Zdh3PAy*XcD6^vI3!HHZNfjtCQ50b6d{WF_B#oV<4$$z|?&H99rDDVgUs54xZ8hp>WSd)1GkFhkY^_%IQP}BeJS1*?Yf3j|t`ULEDeql+zsx z*iX54(1^G>XR^}HvS_6e-(s@&5Qb5jGLW4%e!x%m@hWsq+{w14!h$+R?PNZRks>{B zRX99gVyH4JPSPJTu9!u7+Sc#_{zT4?h?6$I1MeM9V<158rea>;*Wm8YI_VHa%>-gV zVcv0KU6`Xc2y^QRP?$p_L1A`-e-UP;Z7}h-ZSc=+gUJoH!Nk9^4Yq^$Kv>x^Uy`hw>B`B%rf07*|UdBnm z@`uX_Ga6VWM85C52aYlH`BLAF)$IBV%T*1t9tGFofxPmn1oGH|?~Md8BwB_tv#RH= zRR>o);n9$xm|>y}nQysqR~ktaxgt6757@6QWW_qo8vV>%{#`vw$Hwx8&alD$jK;&8{tJCuB<^3)Sc z>hh@M9v{?Tc}4xD{=7Opnfwanu$S36JjbS5r>iOk*6vi8JfsWY3H@Dz&2#0=eiBJk za@@)C0n9Zx*3tQfnN4n4ehxuuuAjcDJWDXc;RGz*@q>9tU1gymWow}xWuuv@>%YBp zxa-hty0FHde1=TpQ3{5~kT^d2-XQ}oLrEJ{kZUW4_)DYZOn`^g71&bCd^ZbnX5WU+ ze^<-;db)sgZ~wHG@ZFDK=d*yFFTu(l`9lTm-?pxT3@o;NSS)=|2rsO=yruGP<6UPy z=ECaI1Zqxy($LjuK!aG#GNGbNZ=&p|o0{5$vgF_F0{a@C%oF+$tSg^oTmzd4BcBBac05 zxFD0Q>f4!j(7RJUPr6yYJzVqihs_MfWu#+RS}FEe%<(IxLJRYQ)pBAn$;B~Y&3>iy zW>5QCgBc<|{gSZ{zo5PW#{Z4N2}~T^xIe%s*ZxLV%u~f{=_0yDrOxxiE4#m2AmI{W z8AwznAPJ6^JxlAOMPdVB7=LiIJOM|G1#x|}Fm?7t*1vW3Kh@c4tUq-2Mb>|#v(5k3 z*&B7X#Ri>i{;zcQ0}wkeR`%wvI{S453up#2rEtLxmV3^dYqQjX>FAl??gRF_|IBB; zTwP;yWL>k)#7-u*C&|RNZQGdGwryi#+qP}nw#}P&^8LDN_3G8NyLMGQRnIw%ea@}} zh&xUJ*}>mpB9tX5wS@@M$ynI=-|> zW;qY69*UCpbXa7nrIj$C7`lP-LD!+JT?Z@7a=la&0T%4B)nhak1S0)q<)-&vIT=jO+;3Kq?QrmF3#z4M#ifr#r$e?R8DD&!vBhdfPL zL7xJThH(83Utee;KE!PHvnZea+Dgho%brxa`e;k?To`sK-?jlcDiPFAw{%SQ!5d|zcF{Ojb( zmVEpKT}yg{f_&fiA7@(E~vfZZq!1;!#zDr>*CMm z*+>CSucxi8U@@9WF-xf1y;zCo!!~Vft6SU~7r$p93Yr598fK_aYQj<+J?X8L7e%P9@XN$%ifN zr<02M0`EttQ{NMQwj`cY?q#eMpwna=iD2!+amgHesX{luAOiPp2WDyp4vk zkvz8{r=_lO*w7J*Ec+wX(Gg6~iqAK&WHJJ7vV&fpZ-GzTG4!~!pDZ$cp|VuJLD41cx?o;6wh=O~QbS>{BDRx! zIoS~FL^g>2XuKKCHPNrj;)68Q4S68`>PpepI@*kg&eprxTL%`zXz254F{?oT<_U*^ zOU4|i=g>YJG9XT=BdeLhoZ0wDNS%B3ELzPLk|_~v)yZofos{Z&CDI~u$HA2f9-S=o z6j#H0Tof!VMT%;pWF$o+z~d~3I!bT=$2H$Hmk!>K6hD>S0z}nIQEBz+4GYkHI53py z$q^}_1!c^+^<`LdeL{Mfe33@>v`vOse+9}xbw zqAsf`RIz$N{XLpN+rZryya@-W&za_%m3^SjPGuYfsfRle3O*W;jeWHsR;{L%qx#`h z5cT-G!u4jHHS%(51;yh;uMnKw;c2FS1IwZra|c^DWw;d&6gGM4kvWxa$WTm^cZT!X z_7w%09`hu_a}0W4{kd(lG=@Ni7Z?ra_<=c~ z4>Ut@R0(`qx={%T;hTCVKh-qD2yIud9~>jF&47fBF=7r~AxXj(d#yF(ZM7P|9)}=G zlzY|GcFxAPvIH-jj`h@ElTi<7o?dl{PN zI6^y%CrKcySoy0tt~q5EBbk-`Zjag^GVZz%Vl6*dAJa`e-Zt2`Y77NL)lW5VSd{0! zK=uGY5k$_ko4ilCMI30lRsJad*jj=R1v=o}&fQfPp}x3&`w`J#Lw=NjO0#ZP?(nFA zd-krY^l(NBzTUY_~dP;7|#Wc8?{` z`$rFaLqQUjT{-!zN~WGW4o-4PL3UXlPgeOea)GY&o;waUO#9JO#phmi)m_}vMx6`W zgGR_!1yPS*-Ca`gzVIz_CE4 zm8wu|@r~iCaA>ik^K3>l?lCh2R8t`CVphDDH#Sz=rn9E!Yg_`!_cyr={BgeXISEM$ z`mzDEae*E9nm^`bl!%R%2?Tj~oR+qIQ`AUDcqCCv4oKwD$qH6hgk?yNZ^U6wRjSNl zt_5)_Ma6I)PhD^DBw1WIEZ($gYwmYORugt3eVAQ`5INXVR^;bp?);0SQOQuXSO;~G z*W0V!mF(4a0rnE&9$GE5-FTm~*N{JAYX1WKH91)-pZw8_DT!@j4NC)X2rx>1Y6oB! z2if!RNId^JK#UBv8YM{vzWQ}>1{(<;*`~YCfVYw~%2KYRw2_OCl%)M> zM{6gxtRBuVJ!h*%x^OYavE-SC6z1R^NDG5mI9%GaRhnCLe94Pt!}y+U$lcDYT-|KF zJ+ySQAL$usg(Nj_>48gy08Em!P+bngOC|NljqB{|>|WVxsYP7rRJlP+en-cmZaYNe zLddx^C|X7Q9Mp`#*b*UdK50G9u7bAaK@;eHu);62 zSD#jmSb8JRLie~vnRJYm_qt;EBXNWdRH>=iW_4GUxxi6paQ3yz0)<*(OUc>kLPV}ed`lp7PrA-0&wV#ym!GX=R3s&` z$P_mRwGxF1BoL7jyEFF({dw{B@`loA`ix&$;wtsdS4yAV7 z7;NKyfndI8^CxT@yiFl^)!3-!Hli#n`SNz6_1#JpX2 zSQo`An-jMkd>t+~uFs>zz-^>9rOq7M=Owq-E}qT{lFmjjWe97ZMrxPSd**@iOohTA zls-T{pL&<6E)rBIg70<+ug!kr&wMH}f(jdAAR5zDatm(>wKFaHEHkejs$9E8j({%D{W}SciVIeLYbn?^5@uEBH=@hdjMDz88wNU0 zTKG9*PlR}6WCy}@SXLSJU~x3w$XZreNIr9Mp4p-EY~T@pTs^z=amx9i*no?}9&x_u ze8#@~`LOig!|Hy?srvJ3$*JZOGfFf4-74z+QyHff^cC(uN!$7Cm(HcOk&)M@gKAn8 z=H1ey*Yb!0!lg~9V;*QJ*U`q!9^~lE4cF*a+w58sH#R)m5?6e(`6u-P6c!d| zDwdnMZ9uhe*oGD)(l>_XRBUGb9rn31XA(WibnF3!7#o3FyB>EC&ES_!pRg^A*>3e7 zj<2_joy*-m3G};cy$tSWiY3*xwr1LQV4A57u^=-l%=5C7v3kAZvEwOwQqj zX|*1wl7Uhc^)oXFXFJ4oEFi=HeU5hqcpEQ4G@c(K8R z@{Ug)P=8wnu55y@moY_V8iK)3TrQinVUr#v%FMujbS*VIWdPO9r^|~s(?wL>m!jaA z*$|LT2iIz&lZ#M$b867)(T|=k5jibpvdZ&s%-_==k!N0&U~g7sU@X<2Dsa|+KAEY@ z52`-TMc?J6$&%iKND_KKs5y#x;4|4AA5N^Om03EMJ0qHFW;#{8H?-yL;EWZ};vP7Z zTQ%!81}jrkMQpJn8hWfrFsG0Uv_>GL9hhd;CLcs&2GofowsAr%KAL~kk7|_;#s*iy zIT?hJfmDElqBW$zK6B@DX?mV)j*l|l{g8&}OZh7zSRh)j)|?AIGrLFc0N9^D4}lJbF%;Q$07A;EXc!2ieNu;GmL)`b-S^qqnT@Klpp%@qP zDSR2l^b>0a-KNc0--dN8QZwz}+d$?4*#c&oYBQ>C8Ig|Dz+4fao(BP-oV>Zb2x{kR zY@v=|0UO+-5K%HY%U`?jVxclmrnz)=zP2?#bywT+8M(n6#l-Vl<|tX$cmojBxDNMB zvwcHz*NdA8=*zNw83|x>=_7DfHd8Ul<%sSh#=WZ2Nl1!kHU>iL<+!qXVowQcKG?&8u-1SE)|_$GTP0M%yB`4{nH@auZPWc!d1 zCQxp=MRxYjM^8;*9zi5N5&;w4isxpOZIq=ReK2^!`*#l66k zHiHO?U^&dk7|KbmEo@rZMooy%NfnpTId)P$G2*>f2^&kWE}Tng6=yW&`${27A8HAp z#g4C*r?f$2RlE%BybZJJf5g`wy&mw!&9-VUH( zDA%&t*Uqz z7{eb<#N2NdUtCWPbAJ=olMd71uhRUxnc_tNR3YxNSuk{AAG-=~xl9dYdWT*wH9G80 z(y^>RdPCiiX1J+-Ajt~}=FeiP;Zy|2?Ku}shK05!qX{iT_a7!9ESsPE6kLR>FEo45 zn=pC)n@T|DPe2`I71uwKqR=7jfSl4H;;88|!EKuq;4@hxA75=a`(3#APERWzjc=M! zeVfWt@=I=Q>ct2VI!(sdd(I!+Z!%kPAEn9Ge(hY|XR=8sR;q9*KzC!G^K>KP*l*y) zysjg`Xqf+IYQLuzrQR*uKd>!vKXVz$DzYd_>xBgmG*Q$DsbwhU@X_76EaXXDpBx>0iUPBPE2EC6?a0MG!w ze|*&0R~kNE2K4z+BFX%Tq|-1&etPpE?oAFqge{>QPJ*n}umZM09<@7k9+CYra|5Lk zih!#-Z~)R9dM(D5b1dVDrlc%W>;_YBZv^|z>_)kj?ljZ2#dI5sec5Jz!Z`QzR64oN zQ6j2{ez@^L@j|)-2_L^_bMUEm$=Q{%($c<3Iuiy$t|%xd$eZWqZHZ*=9U6=$=z5tR zEzk&(P(VORSv><75-b8!#E>6)hmb=6434ko&BGUqxib-Y$;$55`MCDF_bR2e@A5&c zN=~l-v7n+K$-1av=UMr6PoxuIjPuUNSu0xq~&Zo#Tf(HY% zE(^*B(;r%?3Aky2_VwkeRpAe0lasSpudXDU>QFAuTN+3Em+{v+3~W#GhCkV=8B^e< z+$7Xi?V_LRdORq{URoBn%%o>@SI>8e`juqE>+NBc9;;b^fO{$7p^O<7T6u~td)*QZ z1|~};?|{w#0HVlMthoA5;o2+qe5K*$;$c)lwf;^`fmDgC$dsBmay&*-B}$2U(iSj38a!dAwg(7sDMS+a<6>bPDi|{ZmZ7 z1cE2XsTsi22OQw@M4TH(Q4_xlHUbfH6do`CCQIm+u#`SIs)Xv^-yHra>Jnm^wCmz) zIqr&?6F(>k2tW()EyyceLE4H{xl{UxCOD?hR8o``(p@8*cz8L2lP zS$NhYs1#rK>IEMjIrM66D|%~}Sw)@?LRr~{nY3G*>KPF0ml1*9n4g8>yJr8YS#X#u zr0qFl*7E8Kx@kygL69@88P&C~b4vBv*i4ia8ZL_2aD{G74 zoEJhpOD;c-1)U-`A@8=A=!sTeZ51PXwNVizS{2Ap>W1LQ6H@;K?OyaDA_VWJXkHj1 zHwmNGjf~K^Jsdm)?%=2%?IRbibWO@q76R#?_5SA6tQOWiXEcyqL0%Ukuhx$wrfjhu zf?=&0Kd)GfrGE`vb>~T@>K(R}u$@z}5|RoxFRB${dOI!mH*G8?kEP$FAl3-0{yBJz zyRzDLgd0j2#&pNoyL8+sQh*U5k`T9nRmdGVo%zlMpFpq8OvTNJitSRlOVNNh?sOtf z*6Y#E_nrbnv*Z8Ago+hQULTK#ZQf{_LeM@=v$ZLw>sUYxnw23?cQ1SIyGXwXa3pWGV zpo4o6quloG9wyPWp4?F%#s&@#Vu&kxP|wdH3G)Rv>HUl~K!x&g28dnoWMhFBC|KCB z;M5Zz!RC1qcL!*9^@GmGM(k^J#=OvO%>hP4U^r%+)A@2#ipG9trhb=J`4$ii(hEL2 zaLr(Z92hrhZKQ}TDY#(BR9&yRVpySCSd&fb(o^Ue<_&dYj=d^W9fIN);cX71-0nZ^ zUu)3!ppNUNWhZF^+{H>`Go2+ZyJRD2A(NzH?L1kb4+^aB+`$ zLByR#F5_ni+8)JqF4(#L#Dyc9w?(s{;o;K&#=w*>?A&DQ?#X)OC!eBUz9%k&f%~>y()IE_3iE`1prVER|ZevJCh@QQw6P+gY zUi1rv*+@2CFn9g#Frvl?jL-F@mCnAXAn;E5R@q+N4mCpKQ4AR=yV~LNUALgvkRKa2 zMVv_|KnH+lZ!RhWnv1uAoH1j^?Y4Ytdei~RUBISt}s2p#GS8y4n{Dma1z$L%}`DLDi&?$8&>4u$*$(gf# z5Nq9cs?PNX`}YoHA5{Ja@Ju^Rb~|_(GlQ_?ctbv7<4IYr(`19_O?M}Yea_b<7;bEM zF+y`^q7hiG3P>|r@GIiX8BnG{D=n$3cvrNp2j=R(N(R8}I;3gb zBQtPI7OfwUwIHn~(XA@*ZL zmhivSX%}sw7`(lr(HyRWpR;~tn_;N5EmCFYLs1k)kse=Qfcq0g&r^aUcF+}NrD-lpGdj5J%DFgvb># zRRQ;~tU))14y>;iJ5ZHxr{XApZ(Tt+Y+EN=e~iM*p{eMjwa~ZP!$OYP^zfnckv?@n zIHvb=@pV8ym%9;L^_LHu1EXqTFZy|`lm%W0l+CJktT{YUI=H(Tvm0bj`6ik$1#;&@ zV1O1JIMsBnn}Wg7LN!h0`G8H8fwhouz)*_2K!~kMqnZp`a^ctS)y_2M)t!lyl5yfz zY1YKzu+C>_m>L4a5nS@bhnM9(G_yj5I)@lYo;3y%3yN5v6DMG|IEB6*O%reV@^IC6 zW*DK+o^w;wJ}WB7^l?d&Vjwmg=DJkzu$<%gH?(L0X16(_9ZVrxKKP2NIJffP3=~rA zpaoQ68*%|>M_QX#+hzL^jIi^UL}^lE12<+$5yfVdAnFRe;|V%=eUe8M1GVP!T;P&e zS?!%r&nm%un-%9@*kS#pgb=mna`1HXt7|}zph~1BGtCH4UOpoNwKYQziC04sV$>I6 zZ`3gGU%X&+c49LvFUHoH)=77RK+nI*YfotjTU{CI!S-^uRDjL^i#*iEnR}kFEGr#G zW%kJ*H}*1`+rn|@@0V7WCB3<>#h(FhzuE#$AFOM3`-$mIcH90{SoJlW88w)6>I%~- zc8!nlMwQE?YMc5s@UovgeHD+!fxFO1wb(a!WVk$H3CG{JQYdz}+tol?aE)WiKc3=d)zwkQ<$-NAag+hgG0_Fdl39Lg7P_IkmfArm zlR5N%5C$FNsh<*(JSdQo5Z77bqKy|-$18He9a`B%l(8rMMO?!nANj{R>5yD~D2_;7*&5OkS1&@ii%?b$sH$3ZAD8j0? zb|+9uLOFeK(bki8j zBLCFu7?nV!9e}@GCb4Q%fnu}>MJ7KmnGvsD#p=CG?V+W z%C>TT6Dki)<7dQUp-@{o#)G_V2qk*PzIg^AaB3Q3geJd){RM{O{ee+me?u;1?{*OQ z?9_lzG9-9-FJAG_19XAO1KeFU+2KZ8-pW>R4}I_iP8}+PN@&%yKC9OXXK!%4&T|JX%^q-m5OBb zl$ZPB967$@qC)i)H}s4N(hH-=;UZr8r#9Fz14Q-L6Xbg@9=7MUwx7MTX>_DFjaxKq z=hY_kjB0-{7eddQH!i1f_+7JOZSv2U7%pjK6w!~4^5c`)B7&?z&Fh!j_DZ9=PnGkh zTBaocA)eT5vv67u9JB>d>G{Q8 zR%gCCJlBpa$P~Bj9yKy-#Tk4=8oIO)Ov=CB^&;HYToq{tA*p!*nR8IC3BrwmVlEq& zoeJCPW(l2-!)dG5ytU210|-$sO?+beqRzK_Xz`O4_yLet-2Pla)tQ*z_t7Xdb1IS_Z6zZm&FTgD+#T3ad+E zW4ZI%7NIc^wb6RlXbQ>$<1g*9lo*(>vli;mTTqW=KhrTOiY;_{MqBt?p?6fDiHgz| zwASt>ynMkkO;T3?NeE9Tlct!4cX0VM#tR)|%K3ctj9sft8Cy~wuPq+n)-Gik=L|r!=E8?kHy~QU6{|!(}s3s*6>hvd@k*Y>?L@@e~r5xZ(Gc3 zhM~p#xSd8y&RvPR#xz!u*TaZW53ZKG&4@WxX`#dBqQZ0%Zq5~|*Ec_&VBVY0%<(%T zr7bWwVt{89T~u*%&{XqeCI^fub6=va$eBnj=GOm(^r)CwhDQEaG$<3-h3%B=7?}hu z`_mK!z9n4ww@>nRxlQ>%~CE+CIs#3MsbNuVd{L3#D!y`ZF;zGfrSnghP~VRDB1 z^~(YC*1Lh+cB)ubTLb`$6O-PUUW^wR2;-S1%@a% z$4nsf7MN9D@OSc4Uf1~)>^ z{p}FV9u}nc3d9&mkTa!;&wJ39`WvjmJx%t7tLs=#Upr2#VQ4?q12W`|Ht?=e_=olw zdJJa@Tln`i8fV%WSkgL!keCosTWIHMOv}8SAGL(AB{rXkr0ENBkwTpy1~H@b&sMsa zY+Tw^hC{H}%T8fc%7W%!an_R#`FSxG?RLf-Jh1q8i91HJSD8q?C03Y7BRsL?ped8H z*e?seI`|dnJ4sIX4(_PWP&&4Lq59TT|Rn) z;D%h}6DhATw94-eCB_SU=7gZr_wMrquN=Pz_DlGL&yy7VnnM56F`5baISB8Z_-lq8 z^vngp*?+I$cwcTR@!svCKi&)RJf1Us@7lF_U%Z^6r9OU(Y`zxa!F(d;{dndEF?req zInHm6(h7S^c|F=peLac*ce}`4B=DktoR(WBA$=*m*j0Ii2&p;c;+^&?dSwdxD0%fP zd2I-;IqewF@sfW`*Qt_6-1i!8Xs}$2nW-(y z1#4}^EIS`AO@Z*J(JU9W>uV=!A?f;OZPGy17hGb_bD;)qkt55meJiU`8;esw)H!d` zt37ruGKUH?mkdmhT^CDVoL8^iAD7Et{nS%)!*?`$?^m@5QdgM*TrKILOV$2@xf1+L zpkeaOWb9ySM7Gxy;BIR^pAc&KDZm>wweWjnJB-~j6KcbvPzt3GpxP>Hs}%P(JDMA=K@(=8DQ zU{LV6u?kG|BgP@zv(B1IZbiLPl4kzYdiBxK<#8S0mHR>|-D_6JCNuj^0vp%ZG7!x& zs-le7K+>m0+zF07C6*_lT$$4qO^{@cG zLJ3lr{f8sI(&nx~8fseq#noAPd7SxJUjr6$hRpO0Nj2r`!pg~WJhnM(d7yJRk^=+v zJyfihx-~c3JfRb-jghh2@x)6y-qj3X6U$VVxlnAY(>m5z)X%->eGvBEw2X#JSYF#B z)jS_30)oazq~RUf0rGV?$=kRWHLscQhiODNfS^d8^#~6pzbn@pvSSfrKPOfD~*V(Kq zjVb{4d@gmbjw%^jj`!(~rit2Gksl01|4|PTAB>xx{{XIjab?#gI8Xv_EprBuo_P)-I20!YZXJ zUzm_f`AIi7#Qy}|Ev2DP&m*@?SI!!|ReR159ws2)ACjxz#zrlNjNDhZ|LWHou%act zW%vtl@goTnDb9gREQ1NN<_C!Y5J1kL*IE|KN1PcW_95oyL)lTw5;G>$0ZeE<#wy>P za>V=P{F0I2GGjx)(dOKe_$ath*bUSNE!A$%dgE)KQv7sg05vpMsSNPo@yKNM(j?AdGnP1v{ADEZ2xB2CE6_C^9HN6#Nb}= z&z4VqFl`${1;4qb<7FKX?8@dFjdV4EAtE$#qip)ID8e zAMQ+Y&%(0;W&uLlDtwd9AMQHLHu`=IYU47ur5xjOZ?6;KZkV_270{!ku9z0|64daS zOHami+zGBx@nxrqrEB>JuoNE8punyg#M54_hc8Q88&RskMKq|iz5Fxic)Xi_GrBlJ zt35zMee-P>&U4-#lZ6i|a%?-V()pn{&J6bK_o1R5u6BD1s*C31;dUQC-oZkF3pCxW z#=55SG+&KgJ>2i_;vKAy#i+TRDz z+OSc1ROm(nAX_xl+~Dh|2cZXPty$x?J9zoQ8GZ@Vu?L}#84RYJw?16`<{4=UPPjo_ z3GVEr!<~!@mUc*#nc24a9OnJ#%g_bxwu3oL$b3Hu%0T6beP>j6^P;XUYbL>a?XPXX z5W5LewU8JM^!E~i{Nj%Ww11OarshIh1c3@o45NE-m(DH(1i-BV^LN^-GN`+Va{w81 z(-qnU0`-zm?$vdYmq92oQxTt$cq}kgl5tBE%fIQQX5f_3!EM_mH>pxU}CO zP-eAdP+4HZJE+-ki;|0Y0^r`49Y;#dK82y$v2LA&%T!v91P^)iB>BJaLXwuo%;hc2 z-evbu1g=C|R&vtB3TrovJ-8y7yT_e(a>$i<7#T!7Hrg!%aO}=O`g!#&4`)i9yU`F% zbj1JZTSn~T-aVtL*0y=r46AMJU$SvbTH5Se77Ih*{g`w((XTMc?4!QMGu z-)(pDoU2uQ7SCzw1m>m^6;%c@+rL-%Ls#SN1D7{8~J28C6D%;-`N>4&O`o(BE+L|O0OG? zNZ$UOw%=$EeCpjSjI6zD^-O6+gdE{1xWIc(&AS~=g4A|xx5c^@B<4Vn0Sb;Q2zSSF z$-_JLU83$PLE4$~p0}I|Rh0~+A%ctY3FM9|3enG>Pwh;+g=4F1jeTg&Di3_!_JLBC z3YMQ&;hBOhuZyXdxn&Ge(uBX*;qMp=@N+>J_Vjf-vuk%<4-FscaED;ogW8!1|AyZm zu~r%+9&1LzrHzX7Uxd3a>vFNmZ-u9!IsTS$&9C*=AoQ{ue5eVEf*NauBY%M3+d@?K zednh)U*S7cgye#oNbv!6m#lF*+PQEqf2dsyj|KPht@|B8YJC$~bwM9tTi6~()|S2o zQz$4gDQDZuy^xW(*dTQ##=iMM$|#vCqC~Jj;2VaBgLT`%lCwbDln-*mb?M~+Mlea& zwp-Qu@i#O|p=fb;knLbdg8gJ~DZ8OMU~Pz6kB7MiQp+YNQoK1c)^$5c0Ql+JTgL&1 zf~2CXfI`9nq$O)}%1MN-Ry(M~{RyNXhmtLH-uVopLT}0`_m}yqsC~;Oi4jkmd8*>%9jIZSMrBVQVrlI=Zq-kl zWltTz`@LS^@ei3@lr0>}A zctT{rNn6aC18EG19;D{Zw`3oFXfK2MDIN<^HDZh}Ag#NSE`2de^F1)U@zuMkFf?Q87i6p>@9*vKD@2~kwOdZQs>14xTtq-ZFeET7+3XHr^irzqTZy2vrf~ z>_x{|V^(xysjKbfX6It0;bleKn=JS$JXI6*^P2S{Vw?!I5j~>Kl93Pi0AOmtz}OJp zPPzeqp4o_QN({CcgQYViIwSd-=&$W?Q_bMU1bBXlqz>=}PdmFC>^soCxD7T|yF%5>s6yjnc5`RH*8w4SXbbpEt}eG*8%8a0gEa#UI7 zxQxxdB4J8vv-!SKK~WQy;!5(Ou^L+CW7;upI;x?<{oLZ)!twe(>nSuUMgV{}am86I z9iBKZ4ZBjKk#)A}p*Qju++lklgBzhN3853A%!|64EK!Fs*1rk4GqF@zc&xB zGqjy;bZBcwXz*)jJ7`t5*v#B0qbfqYq5Z)}?2omFT@UZv+S1D0Ml*Q*D0#1r25T7I zPEl=`CscI+?{x3@eE@uKi4i)0&1yz7x+I_lAUS~_UJo%;7J6q@XJdi>5df3$%A0W? zkyI5_00S4T0HaA<0HiGuD9v%y;VbLc&v+gtLngZNmp5s zozQijExYKL4^Ha=1{#$p^gS=(pp?>Rb+BZ?@%pIa2%dI>`2fc#eGSFQ{@Cc4w9@E1 zE$5>Wh;P1@Vhf_P(|sW7TD@Nb=@~KQm4ShK>S?h1Lb*fhR-C-=QjE}ysj}IiWXM(k z40!sU!RUo2!CL<42I$UzD0`kv%}Zng2?7Ov0t*0E7kFXKys-(lx3zx&y`rX<)&>E; zcCv-BH8>mJYQDQXyd0tOSfqbah$i3lXsY&_%9cTu{_M?&JVq%|>)ECUSxa~(Jt=GGl3*Jh*6;QF(hc;x^z)TBsp|cD zR6O8QSjX%xbW7b3-Xhc=eI~Iyd@Fm4E?nKYk1!X0+aL6JIn?+W3;r(3F_NG|33rzUGmAQ zp#cBF((tuQBw*f?@Xh0NGE?!iu}$Fhw%U8 z48kic9AMAXW%aL*5GL1)ADdmxjWYhi`pz-n{{nR<6y6df;J}cJ7x<1N^}n3=g{3P$ z=X~eycVySCpvzouV@UPCY~_CkN;$r+_pN|Fv0kg!wm4I!iqMAkjXv>T7-+rkecwiH zv3%$ycLcY9ZN4+gA-o0r6_%MO!LM&1sozF%q!M-hVYS)@PowD0r5vA1_~+!R{GWw> z4y?}De@H93SjAO`OI1h6{#krtn)rH&bAL6h_^p5bt)Fl2mew+qXE7IK2PW4}vCZUg)w5-ZH< zeyaAZfb&mbNAnfc>>IY*H!2tB<8O^7y2BV{GZ*`&n+}KX+#yexY_s9qTaSOsS04Yu zriE)%i+%c^isJwHOHiHhUE|Du$xRN@)}H)VQsrInw-?th?D^O6-2X~6|G#X)E_eOY zSlj}~s__x##Hxz<#y;$#)EL2$f&yv&4aLmnKWd?3a&1L?$7L~5+j3nJq`f}$ZD1Sx zjSSB9DLWs1?S$!@2M*s(fP7%Zz6b8VnPZ|`jP#EMZvclIe7|udp&atQ)A91n0yye; z!+#mZwEpL{HXgy`n-=*04iXzYnRw`L3wYm0O`!arZ<++L02W@6T^Xx>C*110$Y>v} z6#w+sg8xem2TE@zRY)qv|W;B8J& zQCw!1bqU{2W4{jwxtGS8e@-P?0WS{~w~Ua!aT)#($VT>e!I%%h+x(P$GS>&bBk2F< zpo}4?;XBpRcEDVHrCpp2-w-Ch6G=WUz50y-<=Y-6eD41Sj98^NtJ5DXdEEcN0kxWQvRJlX&&RVZ#J!dhr_91Meu zzrKS<{I31XnZoxOl-+JZF5dYrGU^@YTLJ2uUwQVI--TP7h?HYghMz;RV=&sYp z|H-VCW|O5|F!A5saMBj*l@I0}&J(`njQ=NV{gc}-mK%PBD1JL|v-_g_v6rUEk2gCn z7RO>8Lb6Zaua6)P7CI0JaW~Mu&VPHTgN-G$RF?*n+6AM~5~i1D@GosVX`? zQhyvklY3&FMAz1uSyvUt6-F6}5bc7S0eDXVpb8Zy!5(8E?Hpr_Rl(>CQTTCh;q6|c zcOh9rRAGSwP?)teLGu*OCY5W>Fq-X`KlJ#M>_cXvpDjaVK~a~#S%9j57NNi!wjrp1 z(twJX8UZ98aDKgWznn@RzBJKjzp$1#@}Ms&5(r|+8_t*9+6>Yf_{Qt=+*{VU@9sP1 z7c5SpkHt5u*ej|y$P2`i#4^cYIHCkgGC4G4e~g9p>I@8uayz@|gvc9%3qh5WO|+&yqYP-c>G30l>oPK0tf^B7u0NGR+7D>gkb#Xa==l zsLcvCpzm8!qN|Z}Z{Y5J!#cG3~?fquH)GS9&iqdN< zZ?$woSMBCthf;bRjGt#OwUnPHff-*(#?Dvk(WSX8S1to=u1iLvS!`6c_^C|nH^a}S z^%(D^*5{LwP5*|sFf5p-t3IM@=Kl3o%=y*T)!KpA&>GHMLlO-um~8K3)dL#8vTGlN zyu!G+*x=p;kV1?ir8X(vqd3mFddOiJe>_V)Qk9&5yhb$o|`b=c|+ZK~`V zxRncZ+??hqcUwNfDOG!sU{czqR)+Z{ZX5Ssmw4Tay1m$^_7Bg!JDi{_8)8sWbFxd7 z_zdBrjKe9I&24siWjdTK(at9xC@{(^US4owOV`%StQ`=)*2vATAv#7h7`he;A_&W` z8;3!uE=*EuZPaTmFA$!KoV_SC9#cE0E>LTHb>EO}xD~Ur5EFG!f8vTY&^)rYSY-7t zH%j^SrcttbCZN3VOu#&Q8&pzDi|zllU1fBcbb#;p=XzsSI#T?0#cWii9)ft=9UMg# zppX^W9D6DQqy*pS6V)FB_P{Z$%)ezCVHcZjEb6m4?U3!%f81$8cJY5V9(oJH7+BL} zTQqeU=Cd}j=}eR8lj@bbsR+H_oB6)3nNE&}x5p2kDSuFEdfsIpUad^{=9L2OEM`8z zF5#jR*vG8=Dq&_ohJ$Z06gLGohUa8M$UnVG^Cb)VaIjGz7{KWlsAN@37opM6ugP#_ zY{)qmKQwxBnM;abZ;-~eWRcm~EN?e)w1AiyP&9nxd`@kp99Dnu;@-SjiXq> zQE!~t{9#<5@D|8HGm~}y!6T>;fQ<$*vg8ka$;!+xBzRm7i1>C_+3h1YMBQRo)JgG? zz~qaan8y|G|Fga(h!d6GhOjNbG#N=~;cP`8x5`wFSA4rsM(nfNrSE!^pY$Mb#)hc3 zn%ty+zw2*v7=4$ou2miH5?+2eCNPyBy(qRmPC`PQECj_yC zd*(=2o<8{0jbz~U5#}2T?&A;P^W8o2zG+vo-&vP6o`DFbj!+3hR{XP}^&^??it#Y{ zSv8}jIaqwXW1@~Q$F*G*Car-rmN}kn30@#Sho0aW=6?Q!C6-V$ALf}mCLUH;DE&pTi$1M#qDjtX=@^LP>0U!bpbZC#+ z=e$c?B`_lVLDIz(3h*VLsrFgFC3iN2nKNe8I#{+E^D3Blv8q8wI=bxI;S1MQo}~X6 zjZ(vfk5ss6Us7Kggj}c5e2xc&l;#f!XYR-of-LnKe!?+v8RJ+3hb9W$9rbwyK^jsl z+W8i5Dt^Vh>{uh8ZTk*6XGE&m@dO+TE&*c#n$TdS%aF40GKyj~ngTw|kC8%L4`P@Y z64K4zbLwbb#UqR_@72A|=DFQ`MUBli%KAMt8_^gwR>3#c`J6`~I7l^S5zjubzwOkf z>uu=78vDsS!8y&vvGv}RhzBs)F>8WLxfFOkIep)&Yk1owOu~B5q!&K#Fd=OtO_L2;jZYS?HUm#` zx(Q)KbOA9bJrCd!`v*JxN%Yeur?Oe7!aQXBrm7?XCDof}im7|`aq;mp5Y_1m<4gxq z%B;@aMSb*9QtAHzNI5r& zl`r$b*Aa(YI&$Z~CedyUgm;vpat4(A=*AZ69vjDr{ozqUwX@TMj$fl9pp0*>Rp_Z$ z$@pOAQ|`(tm1sNBHfdvIVs_n0s{Ikd?6mE)C9>oTIb!OAZsqCoe-$+fa4`ST=`afF zVnnl0vwYEtSV_%`_20U7TICtq@9CB^rxrc?LN0KDMfa5dO)!5nN^;XbHw%Qw`FBM{ z5Gef2J_S*vA+tNRRN3krGbu4T~Qx6))Nl*s0OwV|E405HvpUem%95OWvy#% zBq8=AaSd2`@nl)Tj}Na-RH2mmsh)5WTwfoSO^t+i*Pw$_?c5&9yN`mz!`farfm#l< z<`M3o2}RIQQV3=&YTX>}Ly^P`@W+uCF(r)Jq97pk?F{82{E)!+(DUP@YtvHs^K$%6 zK!;wsRXahLX@anLb-0!2%g27>_`)jk>hq^@p&)%-|HUF=|!s0yGl1a<)>%xc_oVk9RVLLiSsKjxPMeg165gRmsJ_sVVzf zqAe3)^HD9v7)cb7f&)ikEc|g;9JLVcmLDz~O_l$Q({pyG+7qJAf1aCh@!W> zh?4%~S266LuJD7&ERb4!5KdVx*hpyU{2WhCLRJYGw;lPE$TyMOAr+YYmJDm?!RBCR zdqIn!QVPn__u~N8X(oCz3rX_=XfqVKZ*j;YzSj%#0;i@yvEN`!9df8Hnb7uE!zhqZ z#bAQD{Kg-+Enrh*|PN0y^$xyew@e| zAf{o+CNN=N5vabvKqU=ITW}+P#%=P)0w-{#(I_ert#9yw5sfr9MrMXZCpOF7Km7oV zBmup#Wm{*eVyei5U}>`-ULpJyvi&MS>$5xSJs5Lw?;WVge3|5L|8M<^lT2v`h8S+# z@!)OPu|GZ;&9EQDQvTfODs-S@T=Ae2>xj2(9HKwh ze4exKAn+08Vy_O9Vqkoqv8MAn-}FbYCwr%awmgc+K)o`B+sh~$Ing0I7fnB556(vt zgEwDWfEv*5H?+TqJfS0YJ=CTotRU$v*r6Ercmr6zZ|R%3xqeMqGc)t*m3Yim*C#OX zciu+_f>%)+62d>0yURD*m64a#M&P5r1fIh?ubabu3mf@{64j#P7DGlpP2V4ExUllXu+-<;#;IkI=GO-3 zpR4H)z3oxNR6E5&ySC=a^aj*#B-iOh9UYzXRbD8`K#b%JaH?tbZ@**kAUts_7o$b~ zrh)9Z@7KSFv;j_n)|2%il8dyep*ED9kwD`sut6eyNS7|}~J~^{+SKPb% zL_-Nte;vZF7JuOt;i~wBj$2PL4cpBEw@$&dBgxB_kCUdL4XrdjC7}Lp;d*NB+exiM z)r#BH(L+53iP>c8>oizoZ78?^Q^bg`;U>9r@8|dI=YOWxTI-I_8cvrZwnukL&14ix z!sl%7?U5m?ua^MYfZgj(UBr5i>Fcf@*CK4DcFS7dufCsZeW@aCz^Po_)adT*&gkrlnyI#NPD9_9TDaI6$Qhp)Z)7$&TOES@rFU&Wobp5NDEZE>cg~ z@yun?>uKp!$0j232KcO>eC@vT)FDKVU(c)N*~;#zdJ3@ldDH+pxJ(&FH@_V)O>s&V ze009+QN(n`>WISnjg{xUmm9#N|j`*KY#t`k$P6JMX|@YHe+hb2#JCXsl_XqWP%}MGi{N0 z<(4-E2gF`g6r;R{-%U(wmxMlcac=}P%XY5TYL$KNvhWt~fScBNJQ`k?VYlmic!-9k ztV3c)kGb`W#e*OTZ{P+ao5hM3=N!srjw;?Uwbn%N|umoQv!KC4g(7mB_%y~{7q#~`aa{K4MaHu z@Wvj0JFQMFjC^%~o`82IMNZ? zfx^mWwP#(mH6{WtI2e&WO9s*=_S%+4S&%8Y-XxI#8wtYk+7MOP!2_+$1QHs!srQxh z22H=A%gNrFPVFBpk7ib!Pgog3weOxr|n|p2Xo`3X( zL~#obsgmd+qxz?Uluv4QO`SW^bJrdg>8yjGs;?7FiL0MKXBiktSpL-wI_tgg*t{xd zApB%}ZC*{&XJr}!ve_W!UOglj;h!#W%;UU%`}_IRxas%rj*qDqCI99fl9sG>b}Du{ z>OK-B57S<~DYZ{-bq9Vd2^PBRNI4Y`stItlH`PI#Ra=4VBBGIUC>IPR|AMu4MJV6L zdyIIM(*r|AbUz^0IK8dM6pE|W*ss8IL-t_C%Exws4l z%605h3H{v_B%3lf?=aY=n>aX04B9yb+0v#CJawpCPy{$siE(1Fy~ngcs_lyED?{xQ$pRpsO0)XSB z6T?q2v4L6=Du?R3YWP$9UHZD}U;Ty_j=xhH8Ant*4-Qbhj*z-Bc8&U#+Ek*FY7b_d z`eJnKmSLxiZPbhT2U_hr@fF3eT{q=l9q*nvF-Q5%NJO4ARhKFW)YO~RWdfH@JvEYA zB+!%cR4gxkTvbD)l$wb$60bm|`ld#;Mt{aPt=|(IL9N3z;>B-a{cqQ})4q$e%4uQe zjC+ou!xYWs;+r;@>#inQ+9tM(JjJ*VRw(G(Y?g7rn`G(J><3r6(4#-kIYnSw#Yuz8 z5tw)7d#A{XUx)Or4pzjBe5)$m8`DUwNSJmSq*h3*52skX_L_+j>I_%tq(Z60W2Lge zh6WS(dGJuoPpnNKZu?p-zMw(my+7wz1RIc*n4Zp-U}4^ojJ%hhr<$SaSHB`6d{OV zx@N0_6S-ZjC-7@?+YOlmeFtHSC*LRPbp#N*WlLs(s`iZZrnrMpw?OO+9utN@3XizU zlvNsaPhT7MH!K942url64_6(u!c1Z}+oD1eqif4>gRbaj5<%tPfPwa)itgM9?3svX zl=O%~oHu{B>wD<4h@u|Bh-Xa$FT(u02`yFT#)gE?g_8S17TrFz`VF=nzi*ETd24)g zg5;ETJbHlsCY7l5bvUjPx`2njGgx@+r!oj8UiApcKlN5;s&>@6G$J6zwyK>pQM9G_ zRN&dYaTxW}RdY}7Cq8POH#W05>3gj{Db0yCbuDN?^3_uTH1>Huh4}6$=F2vsTUy8> z!TaRlVK2#jFX+1$9b9%r8<4%PAy3)JCXj6sw92F3ygvQD^wB&*u{H!U2p&lB?Jf6I z(#%KSusmVqWZTo2g`1hG@EsJ8!D6!k?{(}x$J6FT7LcdBbn50?xO z+Mv3h?rcgjeoro)_-O1sf@s)`1Ho()H=J6HiuT;8xUNIDfu-A$8wrbN^P3j7q z@ZB5LR6{*MZRkFc?{p1i?@{_Vxyq)pXYEUn!5uQsh5tawMW(Z-0XE&YveywP=N6+iJ!{C zrNU+@AEqh%3QF$?IM)%qNFCAA$70B@;>g`K7jzn{j!enAjM!T(R%L%tXeiV#dzA|c zMJ0NwZ5F1O*;Lf58xEmEF{oI*@F^!sg8E=-r1ZFmmikjn z>Gl|>@(1RtZje#hiBRn!T3J?RA>pm=_*_kQSVNXV?)jH`auy|Xb-^vV3nPdqdE(PA z6G)RPTx}*MHmyn*)%_slyDFnCqK%+Y4?P2K02QeIek&$(z+1~|J8~MGiZ00b^{zxh6 zmad=gMPZY;97;fb-CTILQl(znuIeG- zhIMHgbbPfcTE1k1k4=fNcM7upW8{f_ka`)h#QDaT1JWRKhh4N=MQ$ny1skxf>8OjE zn)&Pfs+X|)!Y!B@b{8JheT2^3DV0W<`p`X}PTJH~M&U?rNAxqX zCY>|I4H$F#N-5YY*uy3~s*BJyjpzWiw2?t$^VEDthb989t&v2uNpa5EI)!O{|C`&C z>DR&P$MYZu7i>mDW3AM6QdfL4X1ANj#{^sB{?AGhU-3=7k>}Nv6ElOz>vT*Hm=Oq( zS zw2Ks(QDM4)&LhCCy|i3WecTtn1*Z(T=9%{!e1@KH^0q3d`+n_2;bvDkH&e4WA5un4 zD^Pv3g~w(pG7b@yA;7wYx^F8X3s+`;O3_DfgyAMsc98 z!#r>Y<*oFzR;o%* z>d-(WcoDBh$dx1L4kh8F^%Gz#5;5k|iv^2SL#L{c<9+-wzw6z?xMR#4s2NGGb7}9I zt8RULldEEa8i1&cf#Pg1tIahgzD_<-X)W`|F3cX6D7f@7(t~P0c&_2ToW&t%4AKRF zxT6TQ(gwFY-H`)5D~~bDxqSRs*R=Jb)Oz+{wkPVPyhcAi9f_7Voq-;todu>)&f5Z#a+5lBrjkAdT4X{7wc6 z$c4$L;Q{oy%_GVFbuS-CoiFp?U*BSLNyox%YviE1*uv+gOW=|tE%tK2>ZnxW;Cup^ z`Xc&!bhS;g7o#1LGaG9_4Wpm}qPp;Q)INv%nnj7j6YXDY0sX}49J2G!02>!z<5%Q~26+J}aR zw=P}xWRMem_eX+1wp0;E)BieDEs}AwjykATnx3vC?~L{KSfej49p>@wY2FbmC1AxEtXWYilIM zbys|?*oFwTI*{c8t+*dTMs2Ku$8ESV{g!Y9Z{O^Vot=Ie8r^Q?FjJ?Z_o_S}Q_+pL zJ5~}Y|9%WhHNxt=?i)ATTHah=e}V+sI@(cTCR}_1c%T{@mhqr%47U#32Faqv%!h^8 zg`A9k`?;w>WCpJd8Qv;@*qD$vE&esyiFR>-X6m=7RafD>?IWJ(2Yh>DAlD{aU4m^)adsty?4UX7;q$0*ENWpum=9T$B9LuU zgNQY_3Sq4YYKYG~S8VdoZ)JZCs_96i&!#|TT5bZP{`;-kBN&0K32#fU>bl*hkM~P_ zBkY zW6@NQPTN!1*>*Nj*%*ABB)BED$EofG{ve|+&8DBoO-1oWWE0c$0(uw=_Y^RouX$L9 zq!7V27)G!S_xnGqT)l|e%3cVHHsFvqVx{YpSS7>rVD^ZN2L55%zOmBUKrmkWEyXO< z<53YYF6&_^{DS1WK%$;6%v` zG*E+qztnP0w#GHKIKUcQ!wX-xMSva7j_PxcnwKOR`3E18gte|~^x;Rngj)-Qva+=X zdi_WnNvuo&GN(m4W|8lQOfHsDVrsvOPam!%am$WaDw5v=g9~{-w9Mg~%dU&cq zh-n(FuZ*>TL=eyVygkY%TOO%C%5$tu2s9FY9FuJEyBK%#C>M3J4w^%rc+djcVc=$> z7gFjD3o^(!RYWhyQ?lMHw1V2j0W_b~1uT}7i!WCWL zR;u@hbbf!fn7>uSF&$B@2~YRZ@)x=g;B{MBJBlBh234i*$m5{y-(sG}kJasSyot(< zsEq3io6wL*K^!Z5d$NBA^~=Z4{>W}HvZc^;J7eL7TTlQ=ZB;^J&V5b$Iw;|G2h6#O z;A1B)J-TVlrarY}b>^vNm5t+anLGYY^CJX^oN0=_V_I;INDyV_qH?fvMe_DsX;UBg zBgr=;5!9@;TCmJO2F*N_tr|4NtS@YbKzG zhy>C`JYu|xd~F`JE*panC7ms~_3O=0N(~(Z{ew~8NR-f z$!21+N&f9OG9pHdSxoS(?hNDc3!KNPD&{MUOYO7ADGN`&v0qyF`Kth4t0Qz zdc3lSEpdM1XJ_kRn^Cju1^)Abx9NXmt!;PYIC}@{NzG_fc=1H@rJMBlx|=nAVXZyq z58GLYs;feH?Ko2CX>a*#+-AG7WZu4L?X9-!iY)LZnWiTORQ+!TqNeNxqe*AmV2ieu z1cUx=%}OZ9?%jO1Gzx6I)CD$r286xtIqOl|$iDO(YYUDmQ6QI>CPq@+<c5syt`x)i-RJ*Vak)XUuygno#jh>*Xc8EceE$B> zP)}CW+rQXR534s<`1!%)qVKiQPio({e7Df^J(`)bE{Hn5>j={Og7>xeHoo@WC*Kpk z$L4U~SnBHsu29|Ry*W3*T|dH7RbuGl$ouf5Xdg4*FZBoNFQ;|;a$bz2HNT`jWj&SB z!{}sgbhQ}%tbZie`?9yAx2^A4@8jNIzmLW}D3fa&YTkQ<=EMH*d}CGU=&F*lY6ex4 zgS5hw+3G-9VmUAD)YB4QenFBv5j$iS3e)Yx1bUl}8hD9$ZTOkqkKbE0G}7i-e{oZ# zH9+CF;x&Ht zW=b9ylvk8X1|usjP7l4G?DZg&RS8OE*=hPP@`Q3;nq> zzNm^2FQkZvUjXGK<#kFslSMLpKF^W@O&DSkW0WQ9yX3RvL>2J4HhH4p0Q0&;hTkxWCBf z&)iUidrGy@;Wh0aQ0j@DF(FetLebA(E_V!bwfA{VhWF$bKjU7kPGm%F-Ft5QbKB@R z8#x3H_mx&R&y2Oo|EjxbY_4Q7R)_X5_tN=U;rS`yh`bMX-ZKPF7hVV^&eGVz6q|+A zGl0lmF=F%leMFS!&}{B>_6jEj<2~;kKZ5{{g0Wx?;QU%tK7-{DG4Nmldw|^V9wFEj zy$X@2N-oVgVob_8_Nw*HqtLVLjxaN+kW6mxG${o;?wKn%+!SCu&^;YlsI2e5!cx`z zOS)m@D8EzH;zsvF=PK`^!xad}L?kr*J*4b|W~md?$iCV?*2&?d+hW-*$5SrW33l^s z+>8W^CJ}?@dHb$Gsr`&w8&fDD+n;`PZ=QM80KO&IN7#+;_2*sU3Xrd8^TqN?ThLe> z@ByW9d%z)TixvEFL$@M@$yx9=<0{8Jxm$8=;5lB#QJIoZkYL`KIz)fcJ%XCPMIxE= z7fmb@DTN7{FJH!fiTEpo`?b}-3k#Pdz#s)ParuX7Y4+Et$|h<`De7<+J~`@+iG@n% zR3Psq3eFmbqHO}}VFs`zta$JZQA9@gR$`9WqXn_{KP+EhuE-vY@p0;FNaoZ=I{Jnu zC_635wZG11U`ejx*trOQt~F@9FFHE`WH7B~+D#>U1qv?h=(gbsER+1c<_JowMuR+I zweu5}M?=){ z(wrK5tGdd-FO#DWNAp|e$~|fwlji-7`5InIFu@V%RVgp2w^{k_!FcliV{s1mlkB3- zG*Jw(VlH#&bf9Ai><-KczFUL3)uhTDY9?-w@uNOJg2vU&)D122Q}Zux%x^^tSHl4d z0Nt%3Dhwf-PDsh$e6(X3u@2@qplid_!B#rI2uT~LLc^xrf`;+r(dz@xzqq>2ry-~7 zY!zvVe(RDb>so{%W<19|s;cW6q8qb=<12zE>HC5gUfRsGzy+%3o*#+sZb?}vBGuM> zP=tAP*Ohb@&m(hKbWhg(>B7t|)~5dIlq1!tPaHmh;BCFHu|v-s5eps&+Y@{f7{^$I zC2+;A0d!I=-_3$X)T*T*x?JsPmLO?VyMB7_p7&@Bzt1^w{pl{UMLt*DMLX=2s4Cb{ zXY3djjT<0_zij$z10wUu3m5+o>x#X_6nSG>hAtqP!a?ol;Jl%v(~>u6PkmmHb9TJa z^?WEz;cm`^K{nz=3;V2dFFZyquzS8R@`9qvDBRf~oEM^;s%i$r+69&E)dhFVaqWUW zDDJ1K?q@|No$g%P$bqJ|IQM6X% zWlC6gnrdNRzfsvgK=q7-M(tXo!oH{TRU2|>{hf9|kPW@e7iPgeNo4y~;)lkeO0T!K zMxUY%uA}u`I zEsH5cUMTl3+3QiY+{kX}`%C+2?hha|Yp_QW%B8o6Qn_GJMwQZ1l>m(xWQ2Vk@Q15y zlW;t-iVoSRrL$tZO&KV5+F~DzhD6paIEL1O2IK*ML}yql)xBT4zbl=EH1;elvb{urPp{w;^6FRw_TTEl};}WSj z6O%{UD%nTX)Xe9HbZu+r$42o2)tNCaIisb3gUcP2RfNl+5s}oyY0i!k@{iBu^4FV> zmffSkt-d-~iazfWCug5e2O=sq$$2*6`$?%>`oNCAYA~yo&|p<9<+i_x9n#zw&XNm| z#!(r*&u_4oRp~$UNTfPU2N^>%X%9V8O(DA z!p_%NK>nr=&2@pOMF2|;WlyDW3tB@+2uW1{2xBU^n9C*dO&FgiOp&E{%LDyJn)0e+ zX1gXxK^oa3tc9_cP492sw(%f+SVMm<3P<0yNHz`@o5-n#$ij54AKpld?o>{(>ouVq zY*Ox7^t7+ZnAnMXO^M^CbShG#gV0Sgr5d56YF$^|S@^w5&wE&b5t*~4U1X|z!bJHU z`eQB?jGs2opkMb@bSGMl$ZR#L|&g?=rB23kR{SL7z7 zT?sI5oET|B7_zYQWg{`7cwhw(NkK3LK6#o>jddr*xl_c(_DVF&x4rd-7VOjDzZ6^S zo;5uB(AY5^DKtHoYgQFFx}hyiFCm8u*-k=&sxoX%?PZ|SJ!~fd>-v@|nGm*)hG~2J z&$0jw>)d=-y2Sa$r8oM3E~%}xi__XQVXR1RSOy77$hQH82 zYPzIDI}mLOvczOpF}%*$X-qJmiNO(CxcQ^6Q-9618Z zbkQI^pMqiV*AbP?Ac|2I-3+UELIumpv^4I1SuqtW5ZAR1YI?Hp>e@9S>W7eH6^32l zze%`Qif%mz5aL`TDXDCCEk0*s1IVw2WppPfcM6Qts)uK|k}B`?2Lwf$=8sJLti-iC zEM5}efNm$cc(Mf~R4hB%P>6)3g_?>znr3z8XUTyEcL_kcv&S*QZjSTFP*-DekG0|X z_ee3Zepu8C+K+q{r7a10IBbR%94QDxBuZ1xB04`-$%9_9eN4O(=vghu<|j6OJEryG z?)kv0H{LEtPM+>2wsIigVRE9_)-&&%os=&z0o%1n+S zJxFrepF3cRtpMpTT9irCXsSch6V~ViA9J725}6-QWPbQE@5Mz`Uk!_!g0s$fJHN)> z?W2O_3%+s|N<%Hi_WZ_F%8P*KH=rfQGYJ@eyo{krQ!#;Cn(5faJ9e`)-eT50ET8Q? z$L;4<$0%#8I)v2zRFbgweO4n^hSyOhb7gkTF~MsYmx~JFInfgL#rQHlyu2Qe`lS)6 zht@Eau+WQ!X1^N7c=6G{%2}8AjJ*+?otDFm%g}62Af+MC7*a4@)9Y$-p>AhaUBq8K zpoNm*X6rjb)`m*rKA1X=@ja78Ti#_2QUH-7c-Y;{zF^@AZqJwY&gVRR4Epk-Ao?lA)!F$bXW?>H0R3H^wd1>CPK#yk zO~;?t`fGwOBuEKYdQjdg>6QpD=&NOyhkf>x+!e7+8_1Ra3rKnViNo(Otv$Q`v+&2m z=M*jfus>6enfY^WF@gpKLfnZ!pNbwfI(W>d6IwXk}}su`j@o@49~<@gyTP7INl z=0AxL^RS#lMwM7piN1TBJp%c!2o-}gHnf#tpunwBcSzgByvCtN-6cy~GPfo3_f12c z=O0c&nE`80oS*=ZGnQ{giM(M6jRDu?t1ODt2~pPD z4$3Y+GY*OVjcp^qBe02R!cp;tqvEEbuhACcfc1wD#GI{5dqMwA2bOldGSGA7=kJ(E zB87lc3Pi)RPl`GGo7$Ukr*hqGdx6T&iL3cWPWmNG*IqMTP;)=KhS|i}*bPF{jg#Gl zrNK-m{cTXOM`6Zras1DJJ-+AL`Ynk42hr+jdWR0F+(085{bHLkO^_#j$3|8v7=PTz zMfW}Y=t)<~o1mlAa?k*{Bh2Y5_?G0VU|RB-|A^WK<4nJA1(S6S^wBbmk$Z*(ue9C0 zXGhN3kqWRn=l&&xq(NWqC1zCiAXI=@*9Y=ZFy^mR-I7T&g5OIfcV*5M{~RL2&#UOP zmy-UgEV}1$-G~yXmvq&s*dNYq%|9N+<>MBK3se_U+qUT zR~^O!o>qwe>9h^49tO2B#06D)H{ z49KRe?$#I3s)+#8wRP&E76+r^b{zTqIdbDD#(UVLS{cLJBCTfsiNmIsdh}}QJA8E5 zuAxrI{Fk|$in}x$oO0Xmt)#U7la$iN=h#?<%q)m)&Yg80xR~s|sYuc@5M= z^0`n;puw%L;(PY(bLy}1*~*05=PmFNnRhuW>N74~xA@2W?rd2eJciM%Zz{t^8m53o z0C~c+%I}b(N|Qx>k8;rPuL&vhgbV|{s+x<~}|=kkJ0t000X zvx)F}#Nq2V;@D0V7{LS;>BAi($QZa}`}3+|JKxhjp<`!4ec+FP0O~6SS{O$#2>GH6 zKmmLs6C_M} z)RtiW(%|bniylkU3z<_@6{Nwzg?i=m{tLivWB6Q)bO3iqENN6Ppk@G#(IwWf=+%Xt zwJOjwOf^)2l1GUX4yDMHD(Sh+&j523ZLqoq+&H z6#~^AW=vohWC(qhwJ$=JL+iJTT$b1*72tjRbx9%(OG0uaZw}@$uK^*cx7){=FZ2T6 zWC>MyOzsbR@C6eYQe0Q)_oVo7&T4o9q6=)qcwKbgYjjTr{({nbV-{&_&Sk>mW=wSs1EyFFaPiX#Xa5dF&fe27wcSNTlqb*Bgk+~wLrPD8U85u>X zlUX7lxdyTS99lU+XeDEexpy5P#wnt)L`Ewf*0HblW5zyGuFQ@=`Aud36g7Yb>D3d^ zZ_~+bdHlCN`aN;TFllUp>kx`R5>yU?i*xM5a6<6EQC)0T{WN5zK+FrOl}AKV=qNAFpK(uUMv(so zRQL4r$Vunr8I@Sq5Nn7^rqSl-jq-@P{2wgRs>GWzg>@=dc^NlPl&8PsJ7oW%6Olj>G7}T` zo5NS88w8m(M3v7lDmPumhsj^fYd4dvxbjZ>a$e#qZNQXN@npZ{I|U{5LgF0q-5HKC z9lEfei+f3R8DExq!_llEC|ikAU}bpBy+=Ixpw)@)0^B8B=+;SMX53h-%^^InnS#? zUaIsuX#4TneH~Ao;he<2tgHFc&3xy)%cgn)?`KCyV$RLa%&1=})HwBKmg%jBX_PWF z0;3co;2?gBsTm}kxU)>p-UH$?ee zetXVHPW#mnzJQLU&Wxr6TrPFezgldocrmqHJPsNl3Vh#Jt>tI1xtGpy8%r0gu3oRx z{7_P-cn6Sf@op^e45tSN5pK}}8-LuI_#>bp5EAwG8MIFRNZD3+#1E;MISD>*&$F!D^>F(km%bDS$i|pqfn){1xvilP71g@*l8yXbL}dA4 zL&qF)mJaafVEA})$9Q>x4XhCP-N)&bBS56LVL#k#Ulp*1d@QLl4$f`i;C1yHJ`2f%oU<-;Kebov{kc?hp)-IvUg>%t>?+! z54f4>+Sc}R_aJe3ovl=<+}B>|YlG)HOytR#^A+lJcginO+#W#m7-k&kLlc4tly%m} z`6E3sFXUgIM(S^)emREWlRHbN%{brb4pA>_sxO7dIhrR`Q;GADi?VLFD{Yp&llL#~}ix-C(@lJu5U~j(zkL0hFa2 zNN!&>`c>!ic(O)}<1bV44(i<3OhyEN23zP$uT3o@!Hd5aaJhUKf(!pFf`mzVapjly zVq&aCaI_o7d%x*ivRibbiP!y~nWwY;C(hJCju*R%EhTfzR9`#PN-PZW6PG6Zu0Von zfXfJ-rxwp6d%y`Ow9oGS;X}V1ZxvSa(?y}SGX9H)Fbqc$!?m=RU2OM58)}bPUMqg8 z%;m`CqH8{j*Wlc7L0W@3xX7-Hr!BHY1aAdwxRv_%AHO*83XQm3<2?uPMt#JU_1CJL z-aE(zQ+FRM(B(kN5m}|-NAFz1jH0*g-o0A{sR54?GIwH;!Y@)59FdH~P6MtYuY5+e zTg2q_p?`?dW5ifZff-CI>gI_Y9DO3LQDjK_0Vq-zkgj8cl^Ve_>n~(#NGI*f-Fee~ z>o8SHBkZKnS_!$VV1f4|1^u|A_Ve6P{=po7+dZUxyK2O&mH`FQCj7nA-F-I z=+@xtXKTh)hlVoiXI}P}OGGaAg_Q>dLA_{^pMRuqrMf{3pAM%+Nt)D}g>@C3!$Z|Fr}u@#Y)c7*s^j%Ia(5DZXNIFa1*Qu_SB^ zbj@ms&ZS1vLn9tg$}Vb%OI;8Ni(=3A-|o{|o8lNM`}REMKH{MDiN=S?m*4%64qhC! znW?4liK|&!;!7`mMgUZjNZ)PIPGd#~Cp}eITw4r+{)VOvd9;SV06I&-JhyG0c{$m0O;Jlko&Yi7B2DH(z|7LH3YkI5-^Rm`uv{ zBJ2|}$)?I?5ZA37KLyB#q}9?Sc8IFHiMcu@5zLYwf^RZ(oGS>AI&?gpxksr`(U6w7 z)ESY6oAW_5GsC z9h5EHT6$-5!3FpDXCH$%`S_;2aCtKjQm9pJ9^@H>SE9KuW+=I{F>A91=gEBsME1Pw z)Q@mzWpOswd(o3Q3i)%gY0#;BG&U%&RXwM9XQ=bB(BjEt!ldI8wJs1BPb95H8Ml4& zi<+%SVE+N9b{4X%v>9Y8tak4%eGvMbM&OY-%HsilsWg3(%{Pr|S#-PxNMd=Y8{4}q zyy9c3pM-o&G1V}?u<;p%?g_^$Nvoj=zthO07w&LyCT!%PHmvKrF-E>}QOB!S1Ju?9 zTnDX_m4+v)|6@Fdv86ZN5YJ)?!(Y6;9CLkZBznVeU~EUg=tmJ&K53F=tlnH8G7Zu{ z$3`Xs+xzkF>eBe5q0Zvj(({ii8})EvBCaM<8aOx% zn@fRpZUeZkT0CM|>kOCniV9>R?nlEHR${`K>x`}x?G@18S}#yi?5G_!wp4=f;ip^J zih3%xyb%sZ#0il(ih_9;B#%#d50Mj4j(OHvu#sk|4jc<*WQ+F@$*YUbJG;|m`rZ-iNUu7_b^f4z18l6|2y zYrl=V3_j0T9Nr_FFdJ}surO4G8Nh#%_v^+s{M}=6$#P9uzDasl7hy_PsR{K#tzWZ4 zS*3X$yH{#sWTI`4H07AnnR)V0VnRLly+)H_@BH%GEmxiy@%2ek#~ahFc<@DpOZvOl zAu0KHIsy)&$8|Op*I1mUD`{=sqP^NPJE^0@bweNYD)t*$t0N0M?EmQODH^)0W3NB=lY__b!-*kcz*93F#L*|E!I#A!~x{IAt!>h+(h-pXtP z#KW5opPu?PDr4ZaCMq5tI}}@Z)c5njN3W{na#V|t_m7mvSlGsuTK4R^IT`vW6~B_| z>hURJB>u&V4`N9!USCJ9r#^XBv&PaD(fCoHbQCqM^Wz1ecwl4Tjj_+l8txs5XB_IJ z{GPwLIsMb&MWu)In7UAGqxIC+Y%ApZV7AiX>t)jCiPH_U0o+n2KDwyidqts+(wA2k zqu&Rzb`_CAW$2ZP^-+w|rFWYydkB~^6;nnD#dlTTqljWt3ln?L{iqFwP{!91R4%hq zp!Ewicz9mHC>j^tc2hXS((@i!C830iF>O*C{uX;)FLYKjA-(1SH5WTL^0H7bU|!BV zlPl}mCVW&TT|(tG`rB89t(M02e|lS}>oeMS#Gb#XQ{n)`XLf=+`ClFSt3o7o5d#gy zhO$*CU8x|@dC1Xhho)xPlb6ZiQ&aXMBO|+YA=oqp>UT+Fm{p{YB~&C4(SpasC?&K8 zpqTGDVbQ4gO=mC3Dk8^Ww7eJ?DaSU!r9F$%J#H;BesuI?1h;gMGs0@ab6Rno9Uar# zGA{R#wZOP};`IuEr!#&hTK(B(&r*5Et9?$TiHZ#7TZ?Bpi?KiVvHC_2Wt!>tjk$J& zFtp^bwDJz!=DDYgxmI5{yH*4idXYMvAAMpIuk+8AC`FMW8 zxm1DI`;!&!y%o0A{nPhV?mAL?F@^NR+IY5d@0QEoeUU#aa(Av_gz8ru zVk9%p-Oju|zH>7v1)o3u#^aX30g_CBVdq<+0c}s(BMqCKYxl%lymmipRe*eQWxCw1N~=PR zE4|kFq(cmy^GD5ky<$Cy*PKboM=$oGFSd}P4(w_B6?4+r@SRu7M^f4MvWjn>ecSGT za7Z<1D)mg&(M51|5VieZ_Yx?(D*e_}1jGe4GX|#WJjrQq7fCptXXY(#rT5zpo9wGq zF@{y4*jsj0F3QgjkQ$unvz4)jdX&GB)C?-(3w8A?65XFMsC`G8b$nZHHU;_?en|g8 zviABxa`fu+`BB~K@1dJ`EA<1T|DA_nF$dH)pk7R&CiVX?$CXGcD*mK^wJ!%T+u~m-1k|5+w+tz>a$F5hqiF zGi-vIKnKEhx4D|P_xq&ZQ$rY`N3z23r#aFWDiv{=xDLK2hK#@^mQNbGHwHCOgeFBi z^sDREmsxK=hv5Qi%K_q!TuL-R@uQ?=i5S22mTGq$kgTAKuN_{z4$$ZyIL7a@(aOze zxC{k*gT>A6k(hw$Cpzc2pB9W8+CheAZhckJ4OD#ndy~zR2{-(KUbjl9$GmtJX-vGx zp1(ec+fi7{#Fv;9(E8rtd%ph&4YAV=GF55O=45bK8NpnSc*ol3UXrF@78d$xXE#IR zIUV% z#C6ysr$EX69i~T0Sk<+n1hxMEPEgg_xu2}NaN(XpM}pvS_mc6g6{Uh*m^waORHlG; zaZ|Hfa0D92;c5Z7!e8T%fQx%cxDL`})&oStHxv@+im#{-tq=>X=rkisX%QHO`#i>g z^(v&3hD+I+;bSyNPupdU&VBfhB0oTx9f79D{MeYN18!(Su*H|`<9V9J+E;!KYkygq z=pdtP3pqzq7d?;8hPiMDWEpmaG>kYLb=kcZ%9+rilFnQ`fqelMBSYjOcZ)C>quM;1`z2bm0eXo?EVJNT%#0}`O2AHF>F5LSXbI5nzv(SC3OD5IYyT{DNIvgb$^)!l)^2y_f z{9gPw7kC^{z5&jPo@GKVZSuF@B}SSExxseoDm16rijq*S=_Cqgovz$Y5w;l_D`Q9~ zKvyuo@~0s{_QOpqPER;gn4rNz2bsIN85P^f)7-Mwqnr#nQ>(B|-F1$8_qO5P+sI)8 zS20hp=z>Z8F(oCdkIA?U5V`WsZz$O>Dax3>P(4xd{?|{ibxvE0gGuZKb6)y6ar(wI zhG>wHfQ*!TH*XeOWe{^+F7n0R%j3B_y;5WxY|J-m1G@BF!5o~Gi^1nEhUbe)w0Ce# zaiAfLAwsSMN@_l()-WZbmqlNbM3E0zsYT2lnlHPvXiPPHyVdq}|1UEcoaWk&jmU2# zr?g(wmfFOXT4lvYYmH|i;hHkkb-qvN@-9;E*C%7Q?wWwiq&(2rrqtFhu(gLX=Vvz_QtI#g#hVpGN^nWIR6-qJk1!#~^U0QVJ z{Q_!d8)OQohl*GaJW-r(Ta9<2Lw%&>jhIdNpf*5RKVr20OF0F1R z|8?a^BjGCN^)K2%6!Xf2QS;m>rly8O^VdP=vnF-+CCZLZ=9&({^%hbFTUI``Su?t3 zHS^W$2RAl5N{5XO#$(q~!Vj^1NYV+{cf0S6-6C5xL9Ws z5Rn7{@)INBZVxU?6eNC*ejt~#S6R&M>)CVb-Nc43U%5o8Zz^vZq#8)T^0jtkb_HBI zcS-&DZ2oKfjkJ-nwGWt23GxMdvi)wo!@*rtiwYS|7_1t z%h=id*q=@t4z5RUzR+m%;JF0eOMer*()ZHk_RyLU`Qu;2zgIrcd2sve+lqq+^7_r4 z_Z563$(jI$2TRb`CYbrOE>DeGNB_`UfUYfj)F~| z+40&uaZTQ#7~B2%sxdnbpFkbAsCPOW?s)Kg`}-hRJm+x0&ni$;^`g^XEqf`D<@NjT z_*T~06ZewuywmjF{;E*iHgZR}wV_O%oQb$2^~N{3kI#xuwfri-^H$Se(Y8?BPCZtp z9)wN?K#G%l7feYuBG%b7{k`iC62D&VqLz z;GV)dt>&}9M`2D+AzG5}3jS3WrN4zQ*D3xmh*|m6ROWH$`qg`*HN59p zm{R@Y>eGrpq!dhxZs5bSSc$jBSFLN=Z9cps?en+22Xi&t?!t0X z(!aYd%6>UwLch^?{R>u)c4Jik(UY{M7gjV4YiIVFJ$XgdF+K;~)tz{K=Oudd&)5ga z#?lopT*Iu9($Rad|5vb;=GpgWy*DMTNnK;2a`t^={j(!P4d=q}eA3T`tsI;-H^+={ z-EBUt$fYg!&PdqHsZ3Gc^uqhDyP)fT&$~J$O7#f0t}RbXdR7uG0n8$s~wDc-pQ&7{M{e{fk&I% z{p7?88(ynZY!cZuf|JqlUTsj}c+dJXL%!|rbh)HUqp76}br%l**TH3*Sx8Kx4@6^H z7q9z0`(s)OIRIdP*s7n2lu!9m#8Om?><@Et_^*}p_JUrIV|R}Z49#zE8g9{4nK}FY zcrZQP@g@y&`S*a`U1QBA*f}wl(!uF!enr?@@;MK!2VV7O>V1hd<$mlX@M>X;qg3*9Pq6ztP zF~v}k;sV$x!r4gA2fg6NGBnr*7MD;84?N=F3<1fn|58$P4F!pO)WN|Ow$%EemwFbZ zNRl`XY9}Fch;E>KDjy9X?B&*43?v@6oWJ>L#CTlSN0*aeVTz4NkC7`=956$iqHRfS z_xZK%l#@4Bwb9YjmzcWH-xYn$W4|fmBb*D%5b??jiNn|c$&v}ROhE~+^%`CQI^0hM1HAj?$ z=lzU$-YUFF6L*tAXm|lhT+(O{n4W<62@0FiX|;2N+jfEA8C2a2hWV;Dy<(rkku_G;lqOJj%=oj%}sRXjHo=;Zfv!F3HK`4gWdP>Ms-eT-xSd&P8(59lB z)$o2(%+>i@q=Ver4;Zv?yAt1#z92G=J}QW6Or;8-~LN5drgZ6VRS!Xc;~tph5N(e z;U@O2g%tNh02+fZ?Rxl7v~ey8sRuafE#l;i{}IqKYn7kDMp&ldDh6bPfr%J=`DqMX zUHBU9>wfY_{Er-*!b4F#@Pvb_t*PnZmzxH44qWtug!eOOH~9ELHnS(590g<0a(=j$ zJ|sa6sn|na!UqiuWy^knZI$5cJ&KUJdR=4)%4i7MDvwQ6 zA?CRRC&gnGi)8z;%Pk z|EA<3i}OXG5pO8?4(Io1_~X4f71?LwPc|~_sHH;BS435K70TIlKmb|j1cLMbeQa(I zXxu%8$};$9vUCXX_;Me7@+-F6KdJhY;8|}B0ZS_}0kE{AKQmwFb%R!df(2iXlv4{? z^S6!ox7~R(Y{5`|?yDgn(_^@o{$C+{T`^^&q}qidTghcSko|fG^B~(EfaL!x$RDRc zLu;2qX%R(hIt_N!eW^hEKhD04y1BG`nEU(e%dG`VI~$iHWS3&*?|aJ|BA0+Div9al zxTPDSI4Uyi_kT{zT#jz^rJjl?%ZD8PrgGFjtmpSRmB7-*vE>GVU#8fL*MQ~M=9bpB zj?N*!Ug%R#XvAhW4<|nf7-e|RxE-kjWqGH3ta;(JSC0Q)-8pq#E36yRZz$QoZJ;Ntk8u!BiV&~~kBn?K1#Iz@_PQSKSDEDKj|FQYi>vx@u6b5Yl zM`l^}fNoM$KJN1F5(%g0X1iR@ZsQz?A?-CICU^ee;INBDvq%+st}CvN55Jj0LAtpX zQBp~gJ0mvFJMUf!n65HCV4U0kv6!S`N!6KzT&C#`_>9rNnwLi+)fH{F^ub90z3U} zQ&TQFk+OP)h`*)3gV2gdqDjE;oH_U7cW~{SiVn#YD|i{3A5f^8_b8SCfkIoqNT2uO zeq1nKF(@(@7?Fwm1Tv94CEph200&jjnJY*SmDpL{I;C)YA3;$>@E%1<^tgyH16t8I zy!31!8l1ELyQZn|uspEtH+fOdfncY-z4a1Ph$d(lvKC~NI3l10|HNBiu;spZN-KbM zpBUlAlw20F%%HB5V@&yv=h1Z*em>W$ISRY(cY}Q)d@2VDPyM)Z%F zZ*6jmNe>a-jw1iNmo0sGxP@Xnc?KNcET;6@fcKVP0{yVIsTzR-orB()CcK^LLrZ6`w${ zAwNZ6-F^>Xo%@cu>MPTvqi{!K0m&z%?M^4?H~cw&I@Q+D!iH8+5S_aCVIZ`~h~$AT zl&ib$KyC&*j~p84@<3`{2Xd8HEb$RR2;eErASa>f(iXs z6)Pqp%wHpc^O9jpF@qExVQ9g5^-m;W172bb7p zbM0Np^h00K$`(SBm=`|9i(RQqY_WW4G7vDGmXY(m)-h8aP!>Ao{Kn>`K0bjfc}-Xf z-ZCWf@^9q*ZR%ZMmY$;WzwcZE)_uc4vcyOG{NvwNETD-K`TrF<% z$hHK@g=N%SzeH%AH9%B$m)@?UmVQ{Jqoeerf7I=tMYb>P%4`f0iZm5~;+qv7wwk@{ z3YSS;(u&`_*Mlo(xM2-#6e~V@K+5v=ojqQ+^|odXLZ(knrotTH+NXL)Em7oH3O7XU zlgIUm3JpuTxbMKrPzNURw_ruij0O>Wax>*>3a-MpKwP3JUR>N_j$5AGm#w%$}*A|o$lPP20JS~Mfg$}tDxwW3< zMyf3z`pgO$AKlAd5t|uSnW?>tTe~$@77&`;;0c+^|4COs1T7WSCvJS_w!Sk!ohF{6 zagg!(=EA@IA5b88+}Shk8#jGypMR9J*`6?NgG71UEGA zKhsyjn zziJOci%G9LxH@%hBG#77eFZ?6hCuGCjA!2_HdG^jraZa}?>v{ouje$}LQ@nUo`aHO z>^GdcJvuy5;RSX@c6OJhbMUF9D;&cHisNcu>aGVW4TZ0L$*Tc^Iv`ntXrNzMvWTW7 z{oNpJ`Za(hPBn2+AEGk-xg{-Is$b{AGtHbAvkjlQLodA@E771o&XI&$s3w-KLgVqG z!6h!c#*+G!?fGQ2cU}PhvY2-3u{u0EQugbykC=C9#J-@4z_YIKFK41*jBcUQlY+>- z89YaJO+X+!EVso^Gm0|d%XogPvNe!!ag=GzGDKw*V0A^LsnEX%zG=>uA3uLiO!3;C zE|5JDUzTjft(9CFx0^a48B2Y*`^S{F%w5j5Pdh(^#6BYcW&6{})1myuaR_aqETYh~lsf%3%}jZF zk9=Kwn0Bb)ihuZ8b{ALd(r>9{T`zk94??zWUx7wsj0CJKV+a5Ff{DEMd7f+k`etM6 z^OfJ;Q4#?cz$!I8kqRxl-m~oak#d-3nWY(O0v|0-R=d8-%(MN z0#BZ28EcI-BfsS^74UTK||JRMjTENy(gX&p>v8R;O?g_>uSkSIHZ zB(^Tp1rQNXmc$hVga`-$LNY1}0zxVf0)#LsOAH|lBqT#N@=n0EDqWuE{jTe~zOR3@ z7H7_!Ip@BA%YDuns3LQgAEh93_37%9OQ%=QQxQ(AB>mdvLuvH*oIqy!&KOoW7E4aB zAfyiilsOZCrU72OKXX>OL{TZqoojF@@ci~M`4&J2owxw@W_1ecv7x=PNB zFetAjGOQr15MW;$7}eQgG=^7~UOV%!?6(cOjyGgSixgqv+*Y>mc&l?--<@@ZqD(h( zMuzZVCxJpK%@Dr$0r03mkuFd|@eVb--}8dZl;F5RztJOy^Iqza-okPr%0wQvn?Jfi z+1>QGG4{aSb>w^k)&r|k4`tn7>Y*gPf`5l10uzP`(zxu=J6oJRo^z8KM|LUF_b(Lc zv>6(R6+?U6Dk)of_pMxFtn1=oz!`e#>YByQg?JfYzI}jo;ZPg<_f(jCPwD{d46y^H zJu1|}YL`kpyYE-8-&!axw~J$6E~+oZwUApi3~>C;EE$DG!HnkH+tl-+7MGKVhvZo>}0%%)iWLFgscD8u*J z@5!x++K{^;wOPe!J_*U+N@ zcs09h|4%*5bry3ME!w#=VB3nuyp#$n+})n%tE)#i3;i3imnVB;0}It#V~bF_@6mcm zViu4uS5+EiKmTo8*Ygw0P>-RwCFj@SD;dWx6sxmsAIvk7wvbzbosRz^Qfxx$Om=CK z0B}SBydRZYIar$F>UUy2=E#pxw?LiQ&*r`C6qL$DTu605TY`I^)wH8Aj|xC`ic8Ay zk6t@>Jz*Qk@nbPB%AveA9}hytQh2wDbKjrTNg66+i89wT)W6JH9bx~F4$~%`m1-Df?g@Xm6-E1th=3rk4+!ddAcmjBzyPmc}fO4aOSb##lrE<;$tKw ziW}=s3br+)bL{%0r)8m)#IT>XnmU{z{C3sA&R=bRz7O4C6Ezr|O zIi}bbsMs&`4<7aSQ<_C#Hn5<4UG8FCQzIpzX0u*R7h`8&3&(6!&~k4LyWh3I!|tS4 zj@Z8%a`*BIr&V>=KrDfrKNPS=>yP--6~GaDf2ylq-rS*=)WrC8Fi2=|OI?t&nY<8= z-^O|}*M)#xhvH(stQt5FQ_@#a!630DvaYBquH;j9vLS)8A25Vqe@U!-#UIhP>Gt7` z=Q9NhlBA?x%^j@QEs|9^Bu(Vr?3KOX%LXgJg*P1GoXDH^d(4I2B|z-rdLFpyuGoKD zhjPmf*K9xW+?TxRU8oiUdD34_j-)UjQKdqF)2Un=Nk1Of*W3ep3@JsX`;*+;Y zWpLxN>Rmu1K{?@?-qW;aovSZom`r~^lZMz3)g4^&vi)f1L#r2$KgcEf9~+82cdN!< zFf44&_Dp}TA;h3bYCC^88^6=2VOv<(8k4NW*VpFn?{6DSNm!cyWi2-Fnn_0Lu70iQ z?+1LqSl6jMkb*mW;mi1^@n1Tk>oEQ*%l?8Uw>IkAoKM=jiv!X1qhQcMifD7nC>Ch`Tl#=y1z{ z-X7w65h>;@zTvOV!;0}h^BKp2Z~lC(HFbBW5cYQ#mU6epgP4v>-@Ff8XaQWwX?R=r z)a|yl{Yyx~!5Z6L&Lha^to2$(zF)o%e>Vg$27&@(_ASXV?j72Ww#dfs zHjbBS3v?1?_{f#3xgJYGR(+k6axsS!Q;KE`#etmoY7YnPY42GNUWm$v(vb)&j?8l8 zOTE*UhHP{JQ1SJmA0k(>8{NG*i6b)SwAa#gll(X-I^F&U(OIZMdE*_uX%_-%bRW_M z;CBu1&cAG;u)w2~tH1qxcB{&V+`ZoO*h8}5{Luvqb}D$eUVGkf|s`TH#B@e_M z+%LY8(OWXJbS}z!sU3+?d#zq}=r%oU{L57>S29x@cixE|&mz(7-d3*1B)%87<|m8p zcAt>7z7=Y{HwGF#x#u21=W;G{_8%Gc7z*_}2xVcD$&B(1jFOn_UFaBUEUiDFCYbKc zb1|f4P5%bS>2?WO9b*{J{`p-~)w*tj2ZGnD2E)ZiM%tWeZ-H&Ag1v&r=%`PX22`VG zT`pn^#*J$=`?P!yfBrgjI-remxd#Ri4pwr&LnE_t+sDhRq>uAMUbU#2y9mEsYojVL zn}no=C?w93y#{mos>goWL_~kx66&|>%ZUWpphD@stnC(rE7a|k2Np61&9iin3>d-v z0^$Tt^Igf;eUss@CoYXbs3bD6^x`*;a&D|FO^$xvnaZo}lxB9X0*=M*E2A>}yPOjm zUCx=yk;}=~-vWAdp-(27nm3Wa&wkDVI9#>F-7y(=oVdblow~bRbqqXsUG@fuU+&%L zbN3ttetlZLTX7@xA{fvFCD%GxL_L&8R74AZi6!JVlzHlE%nOpJN`tg%N|K!3>Fdg6 zV>*(J0b^_RfS@?fd@tY_CB4@*I>zn=((tTbn;MOWNW<4!IY^(N8Yr}mB5s7TFm?ol z8&A-=w!1#(q68wXmi@w4TCweFVRs!>fVZ(YnUk+wiJE z5}A$Xk6O8(Oll4GkYw&s&^sdhn*&vca*}!JGkKi*HMQ-fpQ_RiIds>J{61u|gMbU$ zNuT%uFm&MLr(SS}ui2NH?QPLX^hzeTIjn?Ro35fU_fH66z89Dnv9e1}Ps!m(e#%;Z z_kv{(XLb%gio&`1=GjJ+V~XmIyo+A-SssC`BT)ohS~TN$)@tMriPm+I04yNRCb&%6 z2(uS*dcu&@BF4ge_f5s2MEi=!c;zrv=Q-Le{Uxw!g%W^21L{D>@$ltT>rgCE^BVDrbdUg*VuvEu;7t>mk#_yHCSd>H9Wm&tE9P;bVG&{5ql6+S3R=RRou9zX6H7Hc(|?CVU1hAR7+G zVwzHpgvK(`LT#K$#*@KxN{$~|(=elPC*}&%v~|Z=So~m=+`xA=FEC#ET^6a+4r!-M z)h(1rGRG6LIAHBekvt|>;%VKpUpa=iPvO1wqg5p^VT-LbjgVuWPwgJRu8Z|p9}5(D z((a=V{9*SsKd1`;n9m4DZYpQ{n4&!P*+Z))c#<^X3{K3^@Gk=4nj1Bi4FMIe|M2=M zM5HAXarQ+E6#DbIZ>&8(LkP3{^QMN-9PxZE9-Mo#=Z0Xm|@? zsDHueRw+AB+;;pH_InpSb$^=0qucue{%YyiTMmP`7QifVBW*X zKZNs^1t-L|7q*cKx%?{s@!)WSM-B49CckSY)pcdBChH^<6^R?`1+c$wYcia%J6xVn zn9?MH7rJJR|NQnp00hiWzT7r{;ji0+JJzxZ*#2_DL%Wm5DMIJt%7}(0UePCiHiH<> z0y%vWkXUbLxs2je5#;&!%IvV1?+E0kmsv68d1#zBxjwYa7Q7Kd_~e~c)ws@6pjd@t z`N38WtCCv234!mJEofn6BX;$)B(7G;u=_e?$aqf0*B74GKWhngV4D$VH$(LM%-}2^ zKhNR!EYt=hGgL8+geuS|aBMpjs?<-K86%e*b4xX=++2}RFu)*`=3|l#d&FE!MvI1Z z{wOIc8BvH)1ccYygjC1XH?yywV^bO5S6@3PWnL8@QZ%)h@&_+|%l|EhE(e$HD}C^^ z6wJwoasoY0f~_Z~?f30!EUOdB-FV?8Chs@9vPn+Y{TCn3C;%=KA`8DIZr1srXv%`< zYx1M(c8faB9-2WeOj_gu`tItBEqLi;OFVb=*mmcJ{^k2nYGUL$77?d?A&VO6iJo+Gtq|~|r^IA#e0=t9&uV>r!!Mpds6*s%0WPvQgOc5_2B z0!l~o5S~NQ$NoW`@f+D_5dCCivi5-gQG#Oy#G^cB?)oB2Z;wO~?y@WCW>R_5 z>us^WfI2_S4VH)DSzr6P%&On(nwH_k9{Ud+MT-u344pB3J6x4Fp zHMJWG4b1#0fT7~kNoLD%T*u=7O(h*|D#x!lJ|OEy#^NFea%Dz;vkA24hOR0@5mEZY zjrzE{zB|q{h3i+Y03s`OMsUQ0v@okVW)#PFMR(Fa7v1B8$A$dPtfs*JC;NSdV0o7* zXAqUr*WnP!^1Fx9R-)8ORGPd75lds}J&M~0q;^QV0Z*XZ$stAjTw~2WBgi^qMYMF} zShM3-$-k9eTNjVm7eax_ozk-p6@d-e6;hlfdGt2-JRql|jCG`y&iM-AaV3VjJ=|st zKQ6~tb{?->n9vcMYefzd6yq|Jg%3D2-<9dA#h_3qO=J?j>E1Dvt@CC~00esdOU491U_GiMdhYrs&Nz&ZD2*{A zP>StSRIiTcpQ^8zsbqXV0PpV>v=$V!1yUVWbAF=EB4EtMc@)sj!E~@wb;v+rZJn^d zNR1QW4SDjhSfCsCPCwHK>ee^>X8iKQQ7QyX;+LrqG_e|@y~C2M=6pw50bn*BR?vdq%sDkyjXK4Ui>@ z8!8{kLM`VqkRPl>IU_SlbcE@p5wlW!%xLujH2z83Owf z99Dv(-FwjcdM)~OGH`3f|u&HmYXi|imi8!|8zbOpz0Y7^~3)`ZGjrA^J-h@##A)h5BaZ zj$SY3uMgoZm-rP${O3I3c{kIQBf(j+VZ9TwUB6Mx2xKzBaC9s-KX8pr1%u=Y=p4q4 zI1&N9Tg5=ukc$zUT@8tO#FPOBERbWy=&(Q#9W8t}Wa@_1WMa9? z7BVwGG|x-1C`8>ggMhYIVSiE2k(#}Zs*B_OtVx+FBduYa96U2_|C4%dg6^aa3N6q; zTLw{@=SA7HoM4vtRf6M_@#W8AtHws`H4HV3tKm)mdeSrAIdOWDcSvKuOlXN4Uk$(; z?TM#?80u51nR`~&USuQB5)-FuRyffQ3gq+8*KBRcF8FD-W_eGAz2T@ch<+9I4sCVX ziwF0+0*)n=UCyt^GNPK)8G3R4CeS4{QL63_32+~-fIKVpdEPhJ0_lE&bs$^ zHOOYsFUojDYu^gC6>1}ei7{X)ep&H6ya$d=_(T=`qxzHDnUf$hr0>;Nl#9ywn`&gp zOURP{+?k!W8(===eUGHh`(2=`d7pLtQzhjf?GUaqB1fDqD@jRHAiyf4+oSVkLK0AK zn^m=S%6R#3Uvll+f-c2~2qnj^1Q?Q6sHU6G@Vz^podUk#=2cln8*uPMf7~-miBto>IuXrPX8cG zWE-FTGS`M}xkTtN$2SHOWGjlsElHWVBi1wE<~YX7bWU&JB~Wbh#Ru=Deyv!``Rgpk z=6S(L7Av| zPFb=4C`7xZ_<_Enh`s-|Zea81lO-U*@+*KB`t=9BV0Qh}G9T+ktW|hLU3k39Z{3TY z%9RJ4S1{+i`kS;R{6pHFUgj#et-1Jw5*f#dr5Nq!SO6Axo$>@I#^lwnAD5?IJ3~PP z%dq6yNzlE3UZ`B>L^|#f=)xWf^RYB56N$cSo3mZLVb>=1;m) z8|CygN$&mX2J!GdSC8m;H=lV^a*OQA`^-(nh*SbdHFuo=rhA^)NnN=$FC- zTzBvqFBi+sU(Mcyc!yg|9?LOH`I%ntkZi7!#N7Kq0vOylfr>-^@IgyJ6#0{hQK~h3 zK%6#Fi$v^2=%<=3G#^lg19bkKMgKUIIDktD{r*Qb{bL-8ew6A*O_!^#%7a3{B9np%92bwu|;p1zQkQZfR;j{CEfje@v z-@yE)-Q^>Qi9gZ;32WBg%bdAqf$q&Wa2|Wj4T1}P);;z#4K{|z5Z|Z-k)VM<;$zo~ zIXmH$Utddf+6>oS8C4AJX)T8)m*1)3I0|E^?HTt)#xcMJpOtA(Ea{_hBaFam7x>#L zFN_NP*QC|?^2tqZ!bzPc5WS1Xw)qdB>gL-_pVCry*69p~Hq+H>qRY3~;+8gd=q6i@WQFX5JQno~^^WZCVP~z`8BWM&@9VR%saSVo08*Hv z$R9(Cq1&33Nudr)o4eZmy)SQ`zmfcrH1!E!9M@y$vS^Q_@n|P-I~*<%9)zC z)!l?dyr27Dn|boQw6f5^0c2n#?<7d=Oo^sQwny2`44sZqF$!bz&S>`>Iy{$wdI?pt zeQWR@rP4|f$4f?c$5qAv$iJfRm(>oL@8>Pcy!69_mU-{hS7HG8Hi0})z1?tkH+J1_ z(O^%@9pZN@ZU&kMFU)!cs}SjnBqz*H-CZKV8O;`!aqHGkqZMi8H9Q#^nPLvIn`V_4 z{H3X`EC3b!k^KaU+?#0B^GS0-+CtP6sTA4swqsb4Gv6g`$aqe*!0^6f&@w*Ey?O5> zcz4g1{iaQe0FNK;I+HO5IqbQA@hUo^f049l7YR@wO$&n+qpG24A3gh(e`4vyFLoN3 zCN*{c8YcbWNI+oP92M4Kk-W7WyCrXaYP+1?5hV?SKRtoFR2*e8arHb-0D2_h`HyGpa6<*oR&bZVGRn<$U>==|}tvu|O9 z_@_-t7bbDCfHvmvLBgY}*4{7gu+W++FUK`09h}ej;a1VhhsOf1o$lG(t@v0YFZ&>i zF7pU3^#6P@qC!-G)&M-Dn5Y38w*Gf@Yu(YJYKZ^(<8)Sd*<0TjfCZ#$OExb(xwJZI z>_33vg=L+ie0kogdXhbAatm60NT{r|`fvCTzvu7xuOzuY1LRfzuZ}W0q%F)!)w(WU z(Wvyi>+RRwDiccl8&E_o_-J8c?Lcd^55<)&05PLKz<80nl?bt zobrlzu!a1|2h(N=y^TOpFPDQQx^3ERIg5hD|8&lLmXN%PS1Lu=4k11B=9?}!3E-ru zCN)Rc(8n{gKm~r011-2T6ia0?gKV7pt#GsR6k1a{r#nBUV0mM%5@e|KoMJ5^%%pR+yUZ_m=RLTrJebGd6t|4bDR(q`{wl@L_x}4Vo<0R*KiX+Jl~6fwZrXplcjn{3d>uOdAJ&~l z03Apg+2wA?gQ2I|GMaRCL!$(w*G?Ic?g^iXx%W3d)1oh@L(~d19sgl#{i@9>m#+(w#k-T$>Qw^uDwod(jwRL<@M(4&l zXLUBk)5j_e2^5R64dGp=DZEq>&ld0mR*De<`TlDoE<+Hq#q=#-!=jA0v;7IgnY$w=F13)0CJ$_n6K$~FUJtNI8#}2+6LmpUnElc}^*nY6TcCub4HJjYa zk1zn@6It%bglqp+E~>FDhIXO4vzI+ z0dp{%F)6}>s7l8v)l8`AvAaRW!1=tt-kQohU!4~fm@R-YW#&f#CXe|O;w(NG4)s4D z$QXRk!)azov$`l2#N)IJpl1P_FL$FZ4L1PL)0N#Sp4CL1#_W%s-$lIthCD;vjG=JR zdRjydHEVrYhVb*l2d{_44rofz5?jrj?<};}QIgbpn$w~#H)!-rq+PqLVyfq;^?Nk!3VrKDofys(=43iJQE~VGYwiqEbsxW9o-7dLmgl3{Y}b>))`AkfKnM=} zi^!)N{mb5ugB@*~6u}jnq6kymjLMMVQc`rkf4OyCfbQ|-v6WjR?D2`_DdN(tIKFbh zzU<{TCK+klWJ|AVG)~aVpUPxawwFqlR{Qp}W_j1}tay^##kM$qZooWYo zr0!FZ#JYb3Hvntt6A?vmc>N!W!bboT*5HEs+!p93=q>n`^cFt7d1T8&X-qK6e&N(r zSbxnb?B5#J3aKK@3ZH)n;3{(kYdxvSes^eDfxdGl%Lj?7nVNysY?nFfi5R@zI~P~{ z%YKXwO!7S9{$OebyNO=V1vWwMO!UN%y*IpHQ#B_>Hb}buvLtKQ$#Bzl2`3sg4fT4R zN=eIzU+|!F#qqJJCMN%Oz>|MiI%%haoM>u_r=kz>x5JH{FEB0SM<3O4m`^o}T@;_N zIIr@|VZ{QS;BP|}rUkpPz;Bw6tN(}2Sbf_Ce2gL z_ybGtmaDpVqo3~vXK40x4I`8Mch#X-LX-``h4{q>FQT*1Oo9Va-BD`iRaw@X>-&xN zrCT6r_AAN|GnJeSG_q~l`tei0r^TLM2~dE_V9H{pLJ2Fp4z}TVoZcKW)639((yErU zZWFLjcKxI$mMv?k#qc&f`fb?1)v3*}UnR(Lq`cVr5+4m48o6Zj2bmY7v;YC+N{4IEFj!SZ119 zV~N|vtDg7{?)jnm(AnH4Ni(5G9T;h--RMdZgrI^ z4XzgrVwO4=iQY@y-mXuk04dDLw=BKi>+9-Z!>`mZs#@NB`1)QvRe67CW5qg)A0G-G z@EiIuQM*W;Y4`YXPK9+Yr3xrFYZcIS;AZcb|7;AecYh(q$_#^!A~3O^%|T{Ni87cd zmCQq6C&xt_=mo4!DMqMDjz=_mF+e#SYXkU_z3WRoxS&v=0;Q10e z8(l4#5Z2Pt+7oMVYQj4Xu&y6U^#Is1mULl7?w~*<$sv4aDd258xH)A_hvbeq3#;A` zs^E~uNakeML4B`hueq)A#enM1vu+n>IVw^7F`{~m-AC#?7y^oQp5xP71g@&G?x7lC zfqqvZx4}Z|{T+(30|52nYI(bY7&Ej{7T4!^RV@=3E@&aQnw(g>0&J9sUSx8Gf82xZ zgID8^QV{e8atQB^%AMIW@oWm=!=rOrAD+R<(HMaDkN<~qARFiu_~(wtQ=8zwyy=gF zAYzi%b88^S<=xq!i4zKlr+AJ9w2^`Q{E6PgLoHlc`GJ<9s7!ja|V|e zl$k0hz6lf;s;OcpTY~!r9ck-GAf7Rw=-yAe95q|r7~2M5pAN4PziOei$N1U&7&<$~ zp77oY8Hcgzb7)mXPwjuKW`ERwiQ>hrkYM{1f#7dv+kM_Rr%? zBsrdeO*@$N{z0n=Gw{ck2P6pJzMJ0OI542nCAi<>%-7Yp*%QaN-W~UufyBYP$S@b< z@ac7TFw+-5`+5KwpLf^P@gSs;O!n9`t@m!qMG{))f|pXr2pU8BHtP2|a@RN@Uib<| zp8l17e0cJOCMH7pKVm{ykE|6E$2l-n@vo(}@-QY=T~oBw=yqr701L79n7rcM{LU5=y@`G5 z6YorL*>)2!%UX{@h7#q(I<|V2v3du}ZoFYeuv{oSMB~UKZF3@;G1iofH>1hS(C&0`B1#s$}U1TDyan@QR}So1!w(j0qu`A3J5 z7MM?C>vQKhU95q0u`%1ngZRE%8I{?c<=$T=AfO45dipPz>0y8hk(n1U(cAAu6*oAi zlrR8yjNnv~dX{=`MRBk*^)%y4B=gK(FfVKp;iwcnf}z(TPtU%wk)ExiKuOUo!!m}k zAwH`4d0enjZ);sobDNy;Fe{3=O)wJqP^KJF&x5QQXeQW(m;Ea=n~*$zBdEFVikk5@ zI*LEKy*5%2JKE#5e50umS!s}2^xA_s)KEI0JR#ntZ~y__2Bv6aMkV?x2H!DI65TOh zGcd&v?60n#`3#~H{NKPbJuWXJBct!P*PEMLLpCh*Oz#z@o(>s(yVquXT(Ll^@C_L` zoHieEevfDRnFc@<+5{$M!?JEXThA!&frBJYI(#+87nnBQP5wEH4JnVU?3fFt%Ap?99 zwWu*};jA>r6R%DUc9b~z5LMyPeJLKj&vemOB?9(N*A~JtRQtE(pdcK_n88!^m4jt_{q!T!WcNz>~)0@aGT@9sbNo7*bKPRWfIgwUIV_EnzU zc2b|MDrA~_ZY%IO94*s+grsjLO{h{d?XB(MODgF@QY@e<8w3IL!i5X(Fc?0^0|Wc` zIpkEdTFx#G>ab{3fLBsC$NwzHH}h5ZL4_5Htik3-P*wudBm4x5aMcxvES}{|-CGLw z_EmVAWK6^>vkDBj^%-dv0E=w;!hDpdl4Hj(NnEFecgNfJ=h{@YZG&F<@vA~Mj{8Be zvYG_L=Ryv!JT$_7S-e88WC)Hi^(z0)kPuaWugK7`|Ao+TeZ;oei`ubKbRR0a_OrJQ zEdpu22PJiL-0V6AUeTN6WUzhxxTjs;7%k4?4O}M}j2^)O`_@cU!4>PNrh(S(1wYdY z!~q=0ong3rVr&E2AWJKT14naE1L8>{5u0ClH}ci+#)FYZGVHmcE6U^Q)z>98)ge`M z_u0hOCCfRC#n!=DrbH?}FG&}?m(~LrGSfjpslqa#>G}D2M!k} z8WgRCW^y5JteGQv0M@|h89Dwk0jlL)1=-+ZNL8m@>v)+S2RFE4*>x|)hR^vI$=h5x zi=*K&^JB5Jy*}Ng&ORNqjj2_1xADPv;IhahCFD*Aw{&5aP!Rbgz{V3|M+F0PX=h-u zU&DNxTZo(CDV-ZQq6pXIs?p}1B1kQN?X}D449!+10H>P z;MlqQha^|4xaG#aY<5Emg0%E6i1K#f^K}G>b0Ca$a-c%9?dtT14Dp3zBOs26T?Boxrxcqij6)}bRVDkzK?mY0 zzljSxfG)!Fg>w# zNJ{$2NBN>GDAs8mrt4^|E)gE$ibM@&4LXG3>D5BbZ=0$Y^|6{CVsjvZx@WmyH-vk` zOuIXapi{BsSkLilNV4i{3P@XEOp$wT@uAy37YHioJ_c;|(leL4MsSX(Akxin=ah4Pw~BXKCYV~+8G6);FdONTm^HfqC_F-`I@r8h02 zJ`zxP%R1Q%|FNnesae(VFMC^vysXGeBhzBM)i_W=vZwo(HdkiKRnz@kGP>bbHYwG^ zfE%PNa0#cfITIhXdgxu(>0lK*0G}lVDH&hk7i{``6^TjuPR01jXF6(L)(`4#nT}7) zhVgs-E`31NnEE-0QDBROzpd*C4a(_?93?)t_8i|obadQUHc|%F^?O(c^jB)7gOL$o z-vZ(4mrjOt-E>@hU^gA^#??eZk;1N3aovOlZsgpAMOUh|GcE~ue2ENHkHaFRnAw0_ zX6&eZtuu>C6gOJO1CoX6a~?jkd*w0e@og!5d@hDum30i@!6OwFK8o$@=0?_~OMs;Q>c#~f z*~ztu3o&3v$FWvH;v%~hhD2r292HK49co{!oe@FvVT>!HXc3HKUYlJE$rLtUGBO5^ zOR2LcY94VsKsJ&{T*I^%KWuJ~H6l=O_~S41iLr|u4Z+*3&`c_UjM%MRj7u-s-X^-# z&Ed2w;@9xA1#*iCrOdNTU~aik)*08%f4jAoLbYIob{)pmEk0)MDP)bI_s2V^F2&6F-qUsQJ|5?#i z!Ay}?X#C3v@dcXEi{uzP4&q*v6+`fTsz!B9&`&KSyVPU(a{DMqWfP}U`c7QzS3&{2 zN@BVPz-d0RUdiBc`Wl6veUjh|zlQ!<#jjJsMaoc@hM&?vKwS;>7^W^oprvQpDEK(g zrkr^+G<26-GQQKt1&hpY3mX|X9ow1RUaR2XYi1M!weUcf{Qf})TP{8#c)$3NO;v|Q zW?>7zEI+~Mft{K8xZ>5MN1FJElo(aV%Zze~9KnZ-p16IxGbTG>yBuhRLMsRq+eJ)6 zk672$u=@^oUzTnM+V3GBj?VSYs3<@SeHbt)H#m&u&>_O9zFpig3z?Q}MKXMmn#i+y zG;zZAG&)vRr#RBqFDrf}`GL%vr&OZrsYEz5Is#qlHnh@uyp7Z4qc)xAEKCdFJt^bWOC%E?@C<2$ zWJ3mvug{byo|F?9O;v1leu^C8Jz9uKCKq>GwXDfUDv0%kYt?m(ryn1R>467_d-uC8%40usbf^XyXI&Y&|vTq+#tH&0o;4h11V~2N_ z`B)=%SZn2%h<%0l1N33=8$w_8E6<}XXM~fxZTMG(8o9!WA$a* z%8qq}-ts`C6yt3-wr-+9OAo9Ug$|K;vEETkWvB;BNtka3!=V zFUa*P#vsr3bd;&)fZS;*@!gZPtqeL2E+y_8F{$8Rzg{D3O{bHslx{iBu%38hOyml7 zib*Z=QveL<^*shvtTq$MHmqADb4zE2HSjO0nmZzQSDMDn0)Ve8SLiCL=T=5=@4bf6 zi&`x%Q#A`C!@EqZT`3DR5BvHYGCNcr&CGEPjP+TGeaQHZX~q6F*qTy~dt#qU9Z__J zD@IV6y8$&bHL*{qW41$P?9^A_s@s=ULT?srPfThPr`^2`=T$|PIdwbWwxjq%Y0{ml zkZeJ*S92^_4+#ez@sBs<2JbIDmJ(rvpvc2K&W~kZ=F0|sv{}N^JVE{%Yc76c5Wo_D zg7oOrlVRKg|Hm1|eT-S+K2{H~=%QzU0Xax)b{||9x_xy^ zzmDCV@eMTlvY~tT?K+oJvdZt>^^C|GNL@iB6C?I$ugv0x!e=5R&WOGhOdioIle9KW#0gf zx9k(9O%!G(zO%_t_Tnu9#jyv6<+qsPU(H#ZQAL#;Us=gujYU}!sfW&W^tiWWo(N-U+ zn6H9pq^x6IJQkGof;?2@9H_!LAV~Fn(6R9YL%H2c)d4N5R^fW?zu=zO$MC>yVH8(w zXUGN9LztE(qLxbE5HQq4qypF0n~{k-ZOy#*i*Nw_`*}W@Iz3`;rcvEDfOX*X-vfhZ z91dK?s)u-@LB{diuDuv#0X6pxdrUb(RY?()xK07}I3dzou{nq1UU(BX)%!Ru1vVJoNWmr}=F8)D^dNw1HGLY=nH%40zVES6?1MI!Dx&0|^T`mr!#8oTEegbN z&kjm^@as7e#kRF8U`otR1h3bW?iTJ7w=Fn0(rF$Y(u0cj7ki4@e!d-2MDx7$at?=m z`YVE=j;7&qm4Ssz;W#N4C8HZ+$TKCltom7v#Sa+UkFSH0OF7+FHam4E?@WtXZg9~i z#zX^;$ZZ!m8vbs&-omO6<&MmJDXdkTC=Z)zN5HLU<*Wq@&u;@$0-M8S7rX|56^k5H z7VFn8d3j*ho0Im26So3zt&>I3eJ^~1W`hIp?Lvd3mMn*J)p3R1Y$g6csO-T>#T&oi z&PewrpSLN#hGjc@6ow7_1Pq^M`(vh#)}POJv>t#1n&9U@Cky8q(ifku-h2BTu`J)E zTRm2#zkcNWAYOe*-&U5JY0Fm0#*`ZDZ^$?)mx(;*RADr&>{&^0Q8A)aKJe#`{WlTt zKOM}w!`pFqQ1!a4L{yWMcqAj$!Km|Y>1`+Zlhbq0KeJLBTGjMA`QGjnUNetCKbupc z%DBXD%c%6e-d@%kK33869ckwP*7dUr)kOOT2s+2#mx1v>))+m{NxQF^pBmVf+BtM2 zL)k?r@rwtyI_f)SNE9Ycs8lH_U(`&}Int8ka#yyCn#pK4%fidyq3UxW`U~&mi>jY| zm4r8T^3yf&XjV+PsSIx#YbX zZYm#Ezz8lJfUAWi-v2iUKe7lLxD&0nbe?W$SVN&JH>5Xt z=hiX<=n6Mjw|AIt+Civtl|Ia}E(CZrP=S(tj8-4xR>R{sIEQnT1VRMmShf%EJF@Ns z50d^K>_gwc`>l?-v*8jhGx&k6^-mtRBP|#=E;ERr-WLs`bBVn-brZMsHANg`z*Y7w zT_%CE!*>>}E9fBl7~oXCtMJ05GPW+5gszI+MJVB2%CsSFuQO?3;R^m`1L0@ed}M&GbQ!MjM!C#~=gc3cw8oEi9I$5RPalmCrtv zJn|pef&XWKpTcdfS7gfXah0nRBYR+HGD6Y-aX5AYb4PIuBDQh5XWDabCfAHbGrkk! zadr*+mKx74v5Z$_jv*uzVe1h&AixMz{!InNv;3LQ&O@{XGxux*0d_~TvZ%|I?ljKK zcHJkfIe4A+`c5oG`fIFTbaJeOt=&rsIMkaHUfavy9qLs8$F8DL>eMiw%E9_1%RT_3 zLXm5Dij$0Go&-t=>C=e-Ld?{?zxup#itm#qbXJ#c>sYKc=T&V?rX2qjkd)Rarxz^> zFsqMT9r3(NVsvLvVkycOlDDxET>LtkN<n^gX0SGQ6dn z?w-GTU*?wmx3=UhT)w+`S)QJ8NM8S*^wsVK(zpvNcV8{bwix>^w`jVazVG4M_RlZr z9i}}tuj_oQzheDGn_Ztf9nVM~`{c>O@7J&ofB$X!MZB%$gYRjio~*#g{w$`G{J1}O z9S?T=A-`VcKs2;3pNcTgd`a2`XeKLVAlkn ze2`-#S1_ZKkdarBX2kAVE5{9`|KvR{B_>RHo&*Mjuj$aYcBoq1A5j<|M|yi+s+EY~MuhOfffw~#VR9r2^iHbcZ!?zjJd@k9;~Xp%g8 zY2AHkdTsZwo9Wn^?rQo;`HPCThTs1Bc%uVCNTUk*Xwt|5kCO3t*;aqpf2@Ed6x)q& zX@Z!U4!V>fyG+4wEf{Ou0y6z8m33WA?LMj<*3PpFS^=Ej@XOASni0tVvuH(Bsmp9Je-O%#Q=hPYkNC zk%Q-rsEoNTM~eH;4z(A-C-fbnZRMYRW~m~sjNC;~KibpJ`?;$~(Kp0Yx`h~eh_QQ* z;!5x9XvTeEF!z=Y?}}A~Kl=DN@|~Wq2e!r!FntvV=+ulb+%xCe+dbCR%JGo`yW5K4 z^JDyU^+j}$YI9IGYaYd5Fdpwz0?{0=3*fi}V1YKyr9S}#h7D9L6)@jJejqRmVDqOT zv)BlE_F-R0_jRPl-mZf+)YH8i60A0J&&l+A>9|QHZ{uX&L{OUe#dAh;=!s+gv4SE&yBJLW# ziuFRQSeBE4?$*=64kmaSbj(i-viqvRXZ^M9F7}drEuj(4<@4|lZV||LJkkVm$sy96>FbW;wkI;pO2^l}fD-i`7ep3DEyqNi2n@SF zlwe2hHWXXKPpfu26nz(J8>t#E_meeUV+^K@v9*c1ppP=Bi{|e!*h#$i2EX%}ZBzx` ze0z7p-bN*(xpvPL(5wv#M-aX9F6i2MfkwIXnj86SSXy^G`Cyqv=)t>-^1U2)bW#KP zJ6JD%&?}-ZQ!!d2GENfE=U%gO*B(YW#g6@EDf+I6TTM>~VG7lk% zRU}miQKkq1b|I1oAw&ovBs;^qcNpaNo$K^H=l$!;btxBSXYIY#y6^kBpXXU1&19rM z+Px1~%4Yc5)b!zS?XN&4bm$;{=t`6i)|siK87AF7AP1=92KVuq$u+cWU6ey7M3sUm zm1Bug#s%qbznqL=K%0h7T&danaIrfxu=JghwuF;^kwBu`EfPZo3`@}sGSllDwJaf} zuYIGmF5Hn|g!O!8QB;lF9jl7h;|7Q;>*!lzb`*J5tylH-gqzFglr!K%?{C^gcN;}_ z^*3UAl;{E4d=%<@Kf(FOtZn3~R-vtJkNZ2(ak=V4OynQ_7*SED>H8-HQiTi{t{Adj zfz7VoR0MS_2o;Qaj!^GYyxX5*>J0Lwb(KVUY^>l{W+?ZM@K9)-Gvm+vc1DA3B;)Pd z!>@^yFp{_Ha7|k*&FhYc;W!$-=%x)CTd9M3U?8W;fG|gzG}~j-v0*XyfJATrgC%#x z%rD$FaHAqwxPCzTGsP#JCk2$+<^$P9sl{QwTi(Alz)>PzW%{t{Juz54u`T6~0B(iV z`<8E%N`7Zw_)%RQSoroy{Xo9QW|pYbCOI%M!?5RToGrV4xAVnUj|*9^9`4?E=EA85 zL5A#eLx?7qZ=~~`&6(c z7?B%+MwiK8ON{{*$xNHuMGw1c00M&zXB2T|W3X6v7Hh6@=#<-+xmU786LNbL>Q*u# zgy3u&5sOIqes}uD>hJ_~rek_7*Ff}l&MyMfvO>kdpZ?=&QZ0v(=TrSCkDC-p52?d7 zDKt^w=QGR~x_k7g(y+uXy#T|B!>le0MV9OP^1k8C-ceFd z^IBl^ODxR1Ql2Lw4r@-}Dbx?qZuy&S6vND^GU4rA=;KYk!L=kJsfF0pAx^`mQc2 zEH1BW^twe2g_W&%)SK>&l8@t>C3{Q|DWy38Za^3+dGWJ3#NOsT?y`;Bbg+a^rl|$h z4V!L1D&5ebd)N=_-26%a=-p8;eQIkkx}xyi6% z#7_D#3Er*pe?ay4{{RV7l!4tGyBx?5pOJ#J3|H38NT%XU>{%5X$Ir+ET|3pK?2uOU zrDB0W$8o}jn(3SFccfeXcj&k)f%anfjhbi94tuN`9IlFZeJ?5y(vCiv>Yhw3NN#fX zFY+8JaZA2QHIa0l%M*MjkoE_=R!@;dd0x1k?i`aY%GyT%+91I8Onc4Alv2WR1YB+q zu)ZOou(C^%5H1h%q|MR`ELLz>5Hd`~{C?Ug5A z(|$igzk3lsBT0>-fDvX+C8KS@##cjF){PEl<_+6zud`XA@qQb^I$!Sni-WtmtJABa z|Ac@$!nQv-nl(?C+xL5xo)3#1V1U;lc2i>Fv2F7sfgaJu$mytbOe)9grj%qH6uaB?2!e`#sFC?byvdzPx4WA5pSFLjb!u)(ff{yG*&Ui zHRglcpg{_cb3EWbc9^`I4`%P$HopDyMjt28CRY;hsG%~eOwXUygawq+i=JCf`5Yvm zbI;B+?Q@(v*gY*Jw3R%mbEE3SnC`-5jR~7oo{Ze0>2TxVCI_}fDH7>Fbc!MisTN+% zBYC)~p(KzSPwGuM{P6n`u~DpDlSJ3^O)|jXz64Kv&1M2N=CTTNXSS62h;Nj z`tuk~uSv|DR2oJA=+I11|1HHV@oief3#$mZaFmW|i9CIBe9X5L{Yyng(xE@)R3)nL z^Mkg_fV`%Ri`}~6u|GPI3>y1eJKiZ(V`+aac)f*ag`@6`453oPvqRc8a5|e;{iod@IWMt1-{@ zRX{vzkF=N8H4u>E#PakYtTAvQ`=@gXQY>BRX6+iii;EbLmN$w75qggm;Rore(on&@ z1!-vBSi8XNd%S&j_8BE1kP#V+h5_URYh$ZupAAi_xl6k!<1|56G9*P~bv6Epj)2qw zJpYQIE2kndT}Ggj`3l0|G2-B_ag(}jau#4P`qJE0u}67IF4R-81#f@8P8<}t+l!Y088Fk?eh8lEoJSOL;+!Obz2s<$9R%!W8;2+u1 z5pokP(EKxx zfNkJkIVOgh6|Y5UeuER`=pKn?|5A<*N&PZ4o8mx`KtsNz15%#Uj|48qXKMa&l^m!L zf0W7rSkD~o+mTN_xDP4!gYQHV2)@NGPkK6oqFICkbe6~lUJ%ep44p}e*4+6OtSDx@ zNrWaM5wlM@^Nm<6!IMZDogMfnz26w|NAurcOoHn=@R(m$7*dBm1gaEbhNouCj} zG#I+@<~8K?$W~6hMlf58yoB#Wdmcq+=ML*4LoCUA3?^Lr*Vo_uABdIN(C(k$SDm_h z&!cecx{_S4b;$QWDL~JkYWLndz*ZVv#A*imC|%q9g1n?77!#|yoT$0yA7H}%yR^L? zIGnG7S;puKp+ixz(eh@G$Bp2Hfze}9ua)`3lpm3TM@JQF4>Il;eu-ZZ`x?<}EbySJ zO;y#K$M%+YYFFPFgK}^^dVH{xuqM}R0}f5;QkqWRqm(JKHER@woJ@CADOA1&q9&h@ zZ~LOQggq4a25s%}GWnyJ&5-`)V+eE%%aZEVq=u`GJ#qK4dR?95Fbvac0k zRj!$@$DqKTnpBH4pJ7+ciYvW-a^qW^ImQnf;hnm1AR-MqHa%W@^v$TgcZpHntM{&_ zG%7buKZ~Gt??qG9PJKbrFRx8;^y|~>Y(rk6Yf@wDWn=K?9Zw!%88SSwz2RQ#zEe(Q z{}wuPX`jWenf==2I9`7G`>Fj`M=oFTKYaNeRvE>w*k1k=<${Vs&4KBm)o@B{=Mhwg z14>iUT=Lz#AsrJ^!hGEm&7^rlhDGiu%$G59P^hD*FDJAYp`tp4-S+-n4*FL|3S$kh zrvsJ;w{%)w`0Z{?_uM(b3!QFny7E`voHewa`}tpok>*jNUjBGvZ}a&-S)jI=t)V+M zsyuxkvG7}!Lca1yN8k>1=k8+9c=M)!Ku(lI0$5dBFUXBdp+x8%&p%cYLTUy3J4Y_A zZ^%n`?v61~b@>=p3;lnjE72|e;eH*%Is!?J1dox>wYLT(D^C7UGRBQzn@iq%%>Bqs zT}cNSL(=DmFG}i<z}ArE3-0pf+v{FTo#tH_|48{U^cf1^nf?=vUcIXO0!X zF&C;RTA@bBA?iJsLEOqucnLHRyza4JJjdIOz!GV}9E1nC1d8#5q)=-@9>{Pqs^sEO zq1ZO--_R_Bqc^qtpyfNNE!U!^FQuT3R=g29GRndU;JAl_zkGvOMIw*_#P~Qc;VU{{ z`j2!_>b+B$%{3a%$RUu#(xX&bu)Ou+?i<<@_L>I~<4+k9bho@hMzN-opT4Xt1a++! z|06{q|2sBI^lS74Rc?RaZ)+?TZS|89tuj>>D|#d{)CBd~C-^ph8ui$BU%i`AdLbsV zI>5P`$<=QVaaFBhgURf(z}2TfIXp|#RVxoS zov7ATs~eWDwz64&BU$h6Hnmy}>2Ke1uqkP;7V5df;b*m8i;y0st`6!;orB*!Uz)vK zOZ3kvhg&P+*1Ub`qHQ?ml8NlXg~i1^dR7ZEP~A?b?Z3M8Hr%^@X^nR1J%_JPE&A!y z=?m9(;N*sjG8T{){ImS+VKua?ZcE(P(Zp?4opD;Z8w#{ny+xfqOH?PCKewK9&m`MY zJr1Rt?66!n_Y_NAsahT9^B3xisNXgV;HOjmNObw3p11J$(iok^U-gY?`*=^;)p|i(63f_nwD-6mrz6>#LE)Jv+xers7?HH1gPU zr?qpHzw^>K)L%P#7C-XgUj6m^Rd*PN4L9gneB(3l=R4HAmjh)_0$a|N zU7trjHF&tQ&wZq$Tc_n|w;fA%X>cPSo=Fzx&J#z~{H)vav(#_3jDH#odOqi?(lbL# z=bppPX(!a;+N^3Bi1JuLD ztXQ#cS_$qS``YrhujWL`>+@F8QK+w9oho~=;hk>V$H6UsIKK*wO?R}Wi$_W%|3bHfr9Zmi<=a zaat}*c@0}Xp<2p5*!}YA@`C!Er?Zs1`Tl9a6P5)x)z{%UaKC3U^cXUYp ziTmi-R&%@SW^N`fOE+wIvd-#mzi$c zUu_HAyIrt!v~~C!m+)J)yDymC`t!+&KTX+(1iAC;CCQ~$FTfTb+8Hj0iHxQYvFhs$ zkxSo>zf2g}EJt5fw;Ao~8);qH>@oG&?{+R;X@$~Sxz_2@;tQz7VOs0{OpMy`-Ft_x z=G$%NW^R5s8ox~CaBxxl{*r(I#r10+{cat-5kOYn3s3iv5XbIrIR1x$TAgWT(>k#H zM!s6Ds836~y~3q$^_&U)1&V&L)&;!@hXuR-GMX6J{rs?=`tqC~p2Y51Mw}>E{^d`5 z_NWzmmVMQ?_0ffXc<+|%+08e;^y;92v6}UwAn)MLLwmNFT5n(d!x^88r;U$kUWoq9 zk3;lth30I+_Dk?z$NvBR!h8w9e#3Q^-*D2~sed)p)gyj$)#Lq+3oO6-Wmiz;{@drb zq^&)6egDtP=KZzkYlE-)(cg4jU$;FyOIZ>b`Hyrz*=`GDTsmY2VUu2x_>5a`&J<68 zh6zmc!B9^Z+xjFr`Ng}@@Ab(|mBJm3=Sn}6c^(nNb|cKQ!lgXBMj4~Tk-|SD=D(Il z@DGyM(qv}zRuW4Z;g!?lg7W#4tzLe;sz@quac26&ttm=+z+1vYe@o;$(RyDyb76n-k96$|QT0MN zjsw+o4jeh)?}bu${e+kkcp%%ot(5M=J(hc6 z-?2qWQ}l>ue24c6QxW;)^g1_p+evCAXa(BR)ZN7_umt1XCUWua506F@{kZ}QKRvAO z=T%U?AL}OTf|&SH6843#q4F7_s;9!TyH6nXe^Sp!f^Me zf#CovW#|%ueRu7f7~3E*WrtzwBg2{`k#Ro9sfqQJ$7=gWkj*XP>>V!mCtfW81v;NT zPgdPY)M9?sD9%Hjm~A;+|HX1(zWg0V>&ee(#e}pttYC~B1Z;r?X|~TwDnzKSx8`m> zl4E-R&GWjrFTPp&TVz~K`7QtxzjVpbtl=iK?FdOOzE615R%qZ}n86n?sxLF*DYxF7 zE0tjk6NE5c-C?}Cf|$#98({y2E7oH_b1S^lF#faB!%v^g?vD=R_;r$VvC@vc167@Y zA;hM!Xb-mv{$DXvbZ2z3+(0{ZgQE)jLti)*d&u4*MeAx5^M<-77q-VI#w33gIk8|1 z`~b1XUTm5DCw--t+7Nd!R*BdAZlzD~mrwYAWNo}iu$CXQQHhZ^Ix(;Vs?p31+X3B?(9_1{^_NZ$XZ%py+9pjy` z%%)`I4p*WtgDE_p09#%64CTsvA}M_{xj`v&$-t7CRog{|2m6_A+?>IU7;yslQxSTkvfj z%564sPyQ=%vtZ=9e@1R`aEpUJW5fx_qV3`>E+`mVgwn#*tX&hHcXaNCx!9?PXP$c8$7M`Z^v{ezv$-ERui>=cg|BrImvCXR3%i#Lvd-g;xH2HX}F z`K3(aQ&mOntc<@95s~Z>vEQG1#I~mh2Ch<{LxwO(1AkuhuuvK_rI{z?CU-|a>j?bL zez^--8zsiQQ7_oz!Dh6zQmYqkWms$@P^B<#-8{*YGTXXI;Z+x&1!}AR1oh~QRRC)O zAci|I!8@=ZOe&Pt!QKfI3t?}m)<_9FW*CX{Lt(=V7D+2QoUG%+wi!ep^z~%80zr_s6Bl=71X6J zztu^5EQ%k4j!?#w^QsB{(3~lmB6Nz&7_=Dsy#<^Rh6c=B38TU}sPZR+!(3@zar6`} z6o!f(YppH46V(g?on@HW?&q(n@+h|6kr?w9tE zbf;p0J+HT|GUEaPSZNwe9v7BVqJvG#iV4{Cl*0BA|8d_um^~iRCL)$7h(Jw`@awUk z0i`8@e$_j6OtmL!bi`+36!NTs2&EyS{bI#e72tcPAP3a9uRel^PRl zs(moDX^7UtACfw3u8+YMwuoV&U6Bv3J|E7a6-fj#A!)r0O|DebYvu80!CAj^B%rxY0#6KxH>|?px2~n!Q{5 z%P+NBJ+LMA-m?D2TX4UzaN0lE$GKIK4O+%!%C`Yp#S%w3`Z37wtOlL;OYTyPrZt~o z>%@Q0_K+@Vh)|d#HH#BeT8Q#}j7h!LdV*0tb5r2& zf>POM5LfP08d`kF4BA8r_=PSaq^J%PM6*o9s-7;-_~}(Q>t?#(9^RBdUA2KZG}jXQ z!a-?q^{79ZgsGHC4s=#WOQ(t^@B%0a^Pq_j-26{NV!eLyx9LGc<1h_Wj*}q zi(~Dw*hnYgHdSm6DJ)!&P*^_#C?idKr7Y2!buFV8J z3_I5c?#TF9;(dmg;vdP*kItqMu2u+CEN}UKp{o;-;eD==+gXBHT)_$2#_$=k&^ooM zUE%dZUoATLV0U^0$|Z9fg)B{08lHFxw%ORj`y5w1pT0cQi!Xhy{wN)kp7?{C2Uc1x z{y~YI3eE_!%$=|{kL?LN9#8^>+&CI5=+pFjO1meZw@EP8_HqBT8J5{kAOoLo7zt3) z1Y_M1(p3(TCqawfjL8OLH??cT%aa?^R=9^WW+qJUo^}_lUgF#<&0)_uBjArIVc+YY zOT#=QlhP$x(>{WjS@GUAAG+pat6D*Kmf;J$FlB^5s&&1V^?yO`sl^Bv9xG_%#aK5w z38#P9jczm=J;OMXjs)L&E37oHHYiaJNK40ZNAXg=_OuxKMTJKiG!>b?kTLroQZHIM zGq3EZ7rBU^_Q!ZOjW-^nCo%84;)sL*v7o=qMa)|yqsb)G6l>AXH5qSfMx$fYYwctc zKf-`C?IKXnWzvS^rWN!zBT!cWDt84b*-GigD8t>*HXM}b%s94tqY6RBr-_%Pp9UBl ze6{@+j=HGMJ8Uqm9CS$z8=|cOz>-Y9Np%wbqxF#_fV0g<*<%%_QH@O422Lo!aii7C zoI~?ar)J|A`>!}A!8krW3&;K(7{{T`(OI>>@fUhhc7)tYt|%@2ZqCU$18?(oKg^n+ z6Md<MtpcpEPrMl9%QP0BeW@y1_q4dPZb%m*&0jHh-7YJICE3&qr1`> z`kqco8ZG+yVKYpv*%y-$>J$D{nz&_Yu31*gFh=ifSH)Pg!w^nyCJ15{!34O@k!H1w z;y*`oq`KMKKLIFd17pkx@hS(L`_QVtQrU~oh~s$jE9(O`R7e_xMuL~0{X`|PNDjOa zIg-CDldx7o)=G4n6F}S*n7KwNn-)2mI@FDOqMWw3kuwrM0lWb@gAz|AM}Ej$_wNxX z)5dm2W^FgbnRn4dnLGNW#Wt~iO2V6H2R|jPfj=`AVO6W>UHrXEH~W2ET16S8985Au z!H{NxkNIMesOaVE{*zWzYp|R@%*!i(dv!u--tOGcL4u_;D4<_bjiFaaBw?L-l98HN zP#!b2WKd{g%PPjx0SnrMVn?l9ZmNiy_%@j6DeB||;e4;{gBNDlBF?+f*%9`~xK3l9 zmN(r@YbqRW=@8xKF!~LY$uaIV)d>i3`r<%u-#*BYF}!H zvbGX-$VY&nCmKtUnm<*TxBCf!^U|zCN*Xo#`3d!~;B!j!{3VIhZU9k0uD=BcGb4y0 z4v`(zEbSxGpc@8cJh{F%Y&z8!Lw*U~aktqt#qBb!4EmCgEu6bg`~mR*v1@FqWRKt{+u&P$9i-QVlqU|f6JtA zRe9nsX1D~>NflPd^Es1p%|hfFWMkSx5~Ce{2UA)*k_M#aGXdZ5pK-<$kfA^yizgR? zENk5-|7kQ>utBX%Y3 zsFe}y9#eN4@7TOLk+Wxf)>A@=;WGtmGpzG{RZXH_ai8!XqGy@rox`x{py!X=p~di0 zMaB)*5l{D$+>V#@qzkH`_S^VFRFbhk%A54u$OwOl)aB|qN3M0Z=Aq8c2DkUWg8MBD zZlC{6{x@SfE+0(>XyPxSKq9T#nOakwVDd_$7L;avg80(6$-)STY`=^W{v@=ZvqED! z6!ITEy1axO>&&dIa#Pz!!tmmVQt*~^U{!7i)llX2B520}MnF&gJ4;gp8amIIbRpPT02P1C z0iR8|AQheidrUHH*L&UTljiYJPQQ?NuvH1@G#-rW#4upV*gv^5mR*wS9m#wbY2p|SX2JyMSvOu90MuvFU8mHYi>SMrqteFg zrjO>K&dnx(&%Y9&9wvbAX974UzyydN$sQLDxqpn-^`h2@9QN2pl7D-aaz*mb>q`$d z?i@3?X1OO8v(Dsr@~wmCHUz1d{9nzom=TYSA2ID@>-{Fgf_>*3f-4~~`?}JmF|?qX z%E%>Q;}bISFGNQI=lL+S-BRG>s`dn>gZv@9rhdSk98c6;xo(^W6M%5;s$F}sl7EWQ zebwzehljd6NMEpLh#k+&r_)UIE?77=h+R(ZmYl6K$Mlk~{4lw$W zyc=;SPne=M(Ju*{lqNr!a)LlilxR<*)1JIo_YYI7AsC6J6)}?pXw*KUK<6|e1b7#@7&T2;heCpGYu|Vdt}_*kZ0p4dq%KX` zVFD?D##{k&?R2Lmb%KJ_-!G@y-t0eycp7#y>5V9hMB+)CSkqy_`v)?u`|9*2!5L<} zN_E2NkfpSC;GQJyDFKWi*WM9}`4L3wy@(+dtotN9k=iBD>e5uKCzEX@`pP~L_VPv} z>{T;5cm)zw#*Y&^npgH=j0wbH@ngnQ*pReV0*IFyf*tm=pXmEC`B?BW!zlZTGX_Ne ztvubKB3ftPJ`%D;nT5c#Un|y2kE9&%Id#V2w|VpavULbNdQFP^Vad+>J|t0Wp1PaAS=pMeht)UEBaw|b z^N7R5s}(~L6g4;ReaK6FemW;0cD(g4f z5$A_2a&%$6ah8T4nzI#50-2cP)dBNs}J0r%!swGU>3_}^uK)=p2w5dBaR9*PZXq-(9u&v4r__=V<+DhCJ^?O8L95MK_;VY_Ug8i#Ac_ zDSBiwKY~aRJDrmsh*l~$WO`yRi#ho(qXvS#5QC*` z$CZp>ESnEiOW6%n!{Fq8`4Mitd&GD{uOWU2HKEF&?@ArIw0n*e_QN&q%YfPh)LAJB^EzP&^^ zW-?T*L-rEdKKmoP()Hn6$A^Y7qpLsu{57<=E@Lf?WK5|#vg^mR*R6^SmNwSrP-Mx; z_uIuEQVwbg-|i8VZuQL&G zy=_MLJ!~V;Yb1a-ZqJ;lk0uXG9bkiU@gRpUt>(|^l;;*eL^)89HCR_oc8oUNeE`(= zK&kY~HaJ(Rlw_RIzttx-4j<1QgH`}+lqTLI)s5D{siF16P?1e+ zFr3MTIs_|etoym2pnL3*>FWx*;ecj-IaT*&{{ck%rOlZ8AO($KmV1(>D>(a%Lqz1M zlonH#GR(_i88ze$JZ>T-;|Qmo$^ni?^zI@SiKB=y7QR=6!`g34_Zn8Bti|$0GNHD98<32iEgBEr!OE{kFYiE>zX{Yatx&M1sf5Pc)?Jx^Io3>jEg zj z3hGxB0YiY+lo4?LRc_zjH(u`TM!?X(q($()YR=bb!GDUkFvt?9s3nrq9f0cgDGvC; z+spRaP3@ZS(L2`PK+9S{n2nhS4%DP9Xcx?^%h z>H%q9#GBu73d*_YH*6P9<{;e%J9A(#A7p7u@QK8zz;-$C280GBy9Lrh%U4#b86w=^ z5MvDbcDM918w%QB<5UF*Q$N>rLLK10|3=u5`I!xwH3-G7-c#S`-wU&W!fG~Z5OtGC zeChCv6Z-SMt8QiQ5bwuK&{Npy7%6TS8EwuRNN(~>F12@Q6G6N;`PFbVn5i5 zC}MJ0+V>g-%b}qRtnO#>4@zI!&8}P$Dc$9ja8O8i`C$Th4YU+;TbAZdvf=rvq(w6w ztJkwq0o^dVdxg^d_st92^xSE=Tl(J@uL1&34oGj@@8RkT@f)CI-Lt!?SaK;UqbdH0=+iW zp-^1$p>amf;dgWl&rNZGOP%7vFz1O7sr7to>RDqpb#00kd~FEP=v@&f$v{)>A^0D_ z-i6^gtH1BXFcN&O_?*#He7@GxxhVLs9=Bn z0K6w)q$r1O2B*e^Y+DN2Xu68;<^@n@_AR)Z89*c!JbIjAOLTiJ`?Y#d3gG&0R-=i2 z)1;6Q5K>4rq`-?llfn%-P1SocNYL|NSc z+vahWxBi8vpJo=zOG&fOCIa6W5~IFDD`W8+kr1K2U*+I*=)#cbUXH%)@jsJHHY>A= zy9DL&@K5;oWOA znDveNcTCdQG1K7K;+(2#1_oNHvQsTQgdG0nco%nHH6FJp2asH$s){;4MQTZjn3v!7 zG_(VKi0oL-mH7AM7LtmDHnBaqNv(wbu}aK2xt*yAhkJ_ZrIVTXm}R|nPqKo3xK0{F zHQ=+#&k4y5=y_RQ-h4G*v-_7?TBkV84lIy>2iY)+orBh%a6EGy8F1DK%aj-!YFNGdjx8tXz zUUOc+@TC=@aQaaANJ$0mi{06_=k;{zG*Kc0juP~stR4HDvYh`0z^>}G6nQYm6?Sx! zMbX50|BN9$FyScFjMF+K;Ew?Z=+5OXPMKWLqQQlh-N`$uX7to|Nxzs9Y~AQgr($y6 z@H(F6Fjv3mkVIZ2$!OQ}*1yG-T8EE6)UOt-nmlWQWY{@!`)A)y^|T6+o|ciOrzHyO zH&>wf;WH@)9}(~;Yx>Q1TQ{wcKoe7?Qn7xAL^j<78S9rwDHlTV%S=Tf5yEOpGzcQW zg4aYk9!5A-04Gfz(H3mJa}a@=8R4(0F$K-Cu;ej9+?{CU5ghk^BbhO|{FCSGWkT*< zU9*>xT-RQKNZQ-W=q{pq?ue9E?N0<#JS@8-5!rGyXh}3*d}7spxN!g0HEW`@>-JuW zBJKYDtLs}pSyRLi4mm#~>1$u^u4xWnUyvB2hb9?J9vm|&IETHlXtL=z!~}PSQTZ3R);6%L?kh^@_a#_yuDoU6Sr6$T+cO74$URsMw=Y zgfwznAZ6jI@-B2Q2*_5-=?f>#X;0AiMQZ` zJhZ9yt|!3YT^|~>tsoo6^QRf8drBV}9id2oRuDpwgVPiNl5=D2%b9s94Mjdoe*)7V z>ISdn@VaE-#BPKmK?q0S{Cb)r#`@M3UcOxS`}frX)yUk zzmi!*y=Z9!=h*8lx|>Dw8alG!01||oY@5lDwwX*2mRWh0KyBu09pFhEnKxa3r1!ih z%{0naF#K);ZDmQ$=-P#BlGhb79gL4RilmH3AjKvBwd8muCIfDCFj;LXdgwNtgV#`)k{D_m(Mmj$$>y2mYS21ca)zcqL^w4G&m*;9*o^J4DpJV zMHdKZ-psUovqJ4Dyy;Xa2Y4bE0yf6;cNrS^jEh+sZjRr z@o%OXQbwwHe>|UYE!viF6UqB1Lu z=1f=p){$lvW(_|ODubZPJ0tklA;AXdB+jNZ$Aipw(x557l~mp)d0&a~Zi4fWI7BqB ziNfI>SCbXXJy`+Pd8mlld^TLPdV&%U}MjNKCPpgv;mShyTiVh30M=jK(j! z>@|P7Be4jnOtJnpE!wgst?^*<*%Dc7@4npPwC|g@t3x)VEg}+>Uj=mtBh(yRF&Gca zvv38Hk(&k=z3A_jJj{A|uGG&n;vk3hs*@=>P|?!n3=*;km`6$PLvzL=?R>Asdb*GE z|B9e2Ix#nhzi{h!0V?+&`fAVxkBgW-amGbyOi-GRl&0wSY>)&a-VF{ZRYh<}(O33N z*e8G7S}zjhYhRWBK$57Zo4;}L?Ti6jKqr@?#qmU=mG?Vy3=otO%mb?)WuTs@C@%Dy{Y?>!m``nyB0E##`M>khFuf@%7X;VUvwT#0B@|I zZxg%9y#{fgqY586x!OgWY}r}G4o@gE!ySev01~;WS89x5%tV!8LWsg}{fDT7hcq2W z5fWFjSu8lNkXUBbMlYtt!mwrZbH6%%ytzB}BR{g=>foTl&swU(TSX7a*i8N)Q*`p! zj(!Xt*)g;y6OJ*U&fjTlvmGSQCPhp&U0Mx{{O4*v{{NB&uPI}#QQhj3TC)!67CPfH z356Cy{cse|8iTZ1YnnvAhRf~y?9}oNcB)TXV&$^&@1<~#LTt!u!J%=2G3XrD+WYrn zb9s?ZHECP2yfy-h4Z>2!ecz1W!zZH*0vb(}kq+$i&O=4bW=-V3vPK7HP4sLh)~bmz zuoHX1G&pf`0C8f1>z7+|j;u^waqHBsU7zM&TXZ?f=ug|wkKe9OG~h4gk3x^=gN|m2 zIR8~}lvyyzn&3)x1Fkq=_s#IO$>cqylHEI~I)`oQ?d$s^ykkv}DB*sFU{QyYt34pJ zA$T6y7f3%cXsbWj$PRth5jZFL5U2Qy4<$$=yGh^!40a-?G%`CBcru)$bA1Go%e8WPUc0xTjY!{2#~FSX2I*v@g}ohdypnRMc1<>C#Y?O= zE8t*g(3u;+N{VtuP+ed*CYW?%MxD7c)Nv^%%{V()p!Mmo8tQ~02a-;*HK*$?O0?6t zjn=rC?uKd=CHq!QcWd=pXmGfbjh33GiSEpd@?6-!5P1_wc#{V~%6m1=1JdHK#@}5O z_`gR}MfIKf`NW|ekAuanoVhctcC=GKL4G?>S7Jb~6M3t8c6fo61WpWY4C(dx=tplN z3iY_Wnc{H1riAtoKw5n_U-A<{R)_B226U0Q%^LP|!0fE0USxh*KPm6^h@+Aw+oC){ z5UCV)`-&tg#TxeR86WD6&GNjJGUySiS);l0rdBNBqdf}DHa zVtS5MNRuM8nx*{#PU$oB%zO#dE;_U(JZ&nse=fo$A&c#2WHc+gH>82W28xekZrwNV ztoXEnW|d!J3%T6cb{_^6ZcvGuIxrax{U>vN(1m;`VE-5cN5csw!b^)Da*4*-TR-6I zkBHdA`T0U$SNvmrI$L)#gW*p{o6|jCW#*w`X7eWcUwN|#<_&&Uv z{jR4{$d{ZsNoFIw>4^VM;6D{@LdY-Ml*|f`7q4FJx!7S^On1Cb5!~!>!rJeK%GJ0- z26@~!c_Hj`{$4DTjEHA$g>#%PoyeFIX3f{|CLEYN-IO_fx=DGq0M6~tV?Og{kA^ok zFmJ}?TIICYt_?j#qUAF`aOG4?M2cQOXE#y+=J)7Ym4(!2Lm%s2B;W`;OW zr(Z&NdCZLyMVutzROxGRHPc&2AHn~}PX;7`ky$kNVK42ErUHuQNHvY%5SdwhwyExY zOtnB-*upO~rZc-WwXblgf#4R7-5BXNb0e)_EQUbRBr?Sk+#vcfnES?fW7CMp9M1JK zI{9nV_8-u^VDSl#rkJhiGo#y`+zayCyb!k>%N}Rc{6$#k&hx^P;tOlquHn(PV=zvvf+SJluvl2e9x$U_r8ZwYJdX0 z!?hO-)fjyplQChcv_=AVzc zDoyQT>6~QChGeIkMw12Oa%IcXTnrm6)K{X)ItWPIsfFWC%NYLA?Bi2jh7}Dv=$i-P zQ)2n;Dpq$*eWJR5;;&TE$_6SH|D@=B0H``>O&}YgH1nA}w2hUS5p>0W@k4Z1N`r!4(S0Lbplt-aHj`RD}Ho#mWPDq6bpwz%wp) z;@3$h2Sds6BZ+4P1e3-;1v^v)3YBq1(j8aZm(%jiuU2MzW1YHHTrMtg$5e6nxdK5_ zd*65tFxg098dpXajY|zekR_k&8O!Y3KTPBhjBJ1ti$z+O8)}A^+=v!E$T#{raT~ue z?R|yUpxje%G1|Y;*QGMU#`P?=+Y?G3T?h=srUY@N#*9T%j1XuJLSZ{|g<_}+uN5T7 zZ3Ud@N%y^-GW)>w4c;`p09=8}r4lx8{LTsugEbu;Fe1DCgli!L=RE)6-wwUgMY`^x zvy!Xc9IIb9p9m*7vtnQh1}|HPtYYQuxEX-5C02#_2G=mZKl*C>JRV+_xiP zk=|qfdqs$GQ^q!;$1sHS9$)e58`7|5QW5P@5siCFLnY0;jIwhr+K;s$$HxDNhCQ6P zUrOQiLfy1l_Z^W}CmgPWd^=0~GGaP+EI`=e^iKD=U6U_TCH91${6~dhXf_dOfkRP& z3?|brhT{zpn1+E!ek`wjM0(mY2M$H(!=u*T)vN^!v}m)Uvn|`4Awo_HA#LYyO*3+{ z`pXq-n_uRk2(#G){41N5!)zk{KUUM6#%05q?-P}>1DH??Nk`&V6%iO;uZUKxOh-#SwVbwO%Ov*kMTFvUKq-}p{62*W}M`v8*Jh(&~_HS5bg0`%j~ym zOdRgwVy?6$Ut2C;ryi62Hnrss&?ces=JW`4utRO&K)3@3uLnR0VB3lpj?ST57(MEj ztlV=Xq_XgtNy&ZV{U_QR-bTTMi73h1$||zBUV>?A!W* zda1%@wV|(R+O}dpYL|r5?k9eG599?~Mi%{DMB^k{_%5VI&>9|(K+V9EEqh)Ir*YRg z?DjHG0yf6%fuAyy<~+Mm8R-IL4yxZnsT8J55R?kdojQsr{sfE1i91{=(wMQl$&M@p z%X(IXBaN9GrMkU;2MPMoI?t!Go2^I#7nxAd8xg0z*O4J&6lfn{h$yk)3+XJGJppO# zYWT)O+}tm_e`g$g4ZC4Lq4}jIVwq2(T^nBae7(xrD46%_>$1*Jpi9YRk6C<+#eBGLs^sz{S2Er1|VTId}@4?RGD0HNFsHvIkG z-}m*s&vT#WfA4*F-DPLy%sDf2<}+tzcaG6@kwV{T(dxkM#8F%_*k`VxS4Jvp9X2NJ ztgMlc?kkQ3*7o7AWss8_>}7%;c189`@=NJ-OLPjAP%wc5H06u#` zCd{pN6#L3fhuLmrBxDGzHl$a^4Wq2kTTYW3QJ_&m>KCVFwi3O+Aoqh->Bn2?j_-52 z4Q9c)P|8#gMLTfh{f{_03gYPg4jet*euI!U>oR*NAN9Gt9Zq#9uiqLn80DLj^^qZ$ z@gi1nnrR+++11hXNXWOk6VWCwG4x)&Hg@Lc_C$|tz4ku0hrAfN(NA6sX;^mnOXZ6d z*n-nkmro_7bXr6SlG76b0Rh%E^1)QMWnClew{Ar7fgy}t7QlTapaAMjlti-MxSaYp@|n)^glenN9uLV%QZ2s z>Tkw2yxh+WHqrNt}Xx%a&%e&IktaZ&J*TGamC@$?a!y!c`@>fpC|_5 zX4S-%SQ_jwT>5l%<|rv*V%SM`H;5-TZWh>dJU`uILfuK&De<=2bgX7_po9h@y11YG z38&kxr(HmERs?IRvFQ~ce-LGEh6u**A$v|(*x4AcwYbhBC+;e0Y{cZNeIuqiJ$(XO z0rB+IO#`W#r{K&5>+pE*65M3|nYdlXLbDny=Eee%WoxDL!zhWVOk#AZcv7M*`Z(R! zK~jt?>268at6_3k=j23CV1rqY!r$g)A#JZm50Ua^5tf@?HInh7-q)m#_bE-*Q#X3b4m~4Lf`N~>E>ztO}1Rj-?p0Ocx zF>YS&dy6~?t0XQE`#g8NTyS6UDiFkny)Is>T9QH-IANW!E4dFRI#^p&4^TIL#85rN zM;-w+@|hU)1lIg(XF!~N@OqX(KFQ$fy6(c}`(ccuPTp!+%qP^C9JG*V?Uwh-b4#nY zJz^E^2n>Rm>!yo>K!uPE)3;SCzEt4BPC(uNZvo}|8&LJ2VPf(d{NO25`shQkVQqdX zm14Pc-|=HE8mWADvlSm4VtgQ@IGw^k6ghL?{0q}y^J?#xBdZB&uRpyW&W^6aEoGwz zF~gX~F|rd#X=pw)MOf3e=MT%op01hJZVE5h(EHFgt@SZBLlQYGjgUJ*-X=dZqadQ> z6&qa;M}CR@_*z-PxU+Ku_EBBXRHf5o_gz1WAgCE(Ltg}Ykb_qt^c<-C&qSv~2+Z`S zAp8^67x*^(1j~^N8z_{l;Tig&Z$-<&Thu@F(+aBSs~RjqULv^<%hsstI_sg>fn-w} z7Q?qi_=+TVhGnC@KY3TP!#Xy}{Vx*K?CD!&nd+0oPOmE)oLCHo2(zwpQ5Do!y2-DPQNXYG^fWV)D( ztuwx&I`w+G(N#)g#WrbJH7T=SygG0P+iI2*rEIx=Y^rC3Uqc1wL9fSrCQtWD*w|ov zo1M_>dbrzDv7X+;aB`RC#2!q=cAQy)2Y9b^@r{yLe(o{TIZl6NkQ6FSVh`wT6I_x8 z5OMOqWi7$qYImVTlLP0GS{(8PUS%en&vnZ1!)+&5$2|)fs=NmGSx; z1hypHix1_7^y1|1@I-ojTV+6~ZMW6|RISy;iX>YUpf zDBFyZkST&SxO7V7h~DCVIp=`HB-ecM^KF=orEIx5FYkpAd)WjMg`d64|J?#M1-(^TN$PC)toBcOyq zKt1{ms8YLw=b8MBv2q3mhIpM22$x-ALBAygO;Y|TyC%-!MR@lri=!G&3 zta=~IA$aOtmy-xP#yT7m>D7;`BVJS)eR%7)k$O!wQc5H6Rk-$X-mh4UAYIC+eD9}# z`FXb=gZUts_Ew`h`9M-|buI}`)ohF7q;}r^K;)TO%_8gZ6ndm+%YRtJB<|gCAecd9 z7|y2z8Y!=9->^_p)VkacGewfUv*pi;Z+4xN`)OamuB`?$T)%}zQv zKCpVEL{4u0=y~fER4}$@VF^81@Y_47ecKea)C&%o{8!cXO_^aAMIPpC~+3gM0#mGB!517HdlFjm6V^iaBU2S+5UQj zU9*>}W4osy;HjW!qF07;89Q#>c1eMF(w2kG|JWKkhyC{v0D9yzXs|Ti=Nkm~ms!Lj z5M7AXjf}$YUy=Cr#2h{8u*zdMI>_o(=!kHAD(S-+`&&P?Siw7(GL$8!w|hJJyp+ml16H6#-&abY+KBIcP%>(BG0*(A;V&l+3 z-&DYFC&C{6Bf>;Mg!%8>wbLrZUOgYZ=DK#+ZnnJU8kXXyAu8j_6}_{s?mwZ}bLzxJ z?DkjJ;HKA-&QBT9K?L-meDGq5owiIq+|moX&Uku#b5$Y zF0I?E`>3{fN=ZtYyurDr$+nD{S7K^^mztIgazlCpl@QqZ=~lN4r^rbIOg(9syqoPU zPpfNyMyWJz>rq|9l&P?bEuWGoS}JGNBQp~Jq`ihpDH0s52jSU!QRc4tAk?pf^}5k#jzgHW=+99Y-E!niZH3m zrL73JKw1#o;B@pNc_6TbCb)=r?ZKi~O8E`2T4m||jE;(XvB@J{IKz<)&r~AC0BK=$ zw&;}4_u=C>0v~ZS>KVCm!YF)AC2kBK9zf+pARrtDGk`RnJxiL zAElB`kqz`%&LVWaltl2y((1QttSV*rx7HC82{(S4FV>~WLGhnj_n5KKUz7j9?)R-U zSRzqDWfb4j{{6lA6#2dRR9T{seZ$)Jd-D%d%sS=*=IKSfn2qQ8Yhy+M^5G2{mcO0fB^ud0T55OFZ9vn3*`auLVcA^=VdS80B>PrtBw z@$a2+?(iW}W&Q@nX{bMjsP)VzaOv|3awwfqm)TBQeWZyD_fA6#Fyifd>x%bAdK z#iPoeB^IwytTc0B#ls&IZPhEtG;*3|eQui7J(h55vx3D`&a3 z41TN!4mO1b7%;Z)S>XXx98TUg z`-5iBl_^tjs6YIDW>^Dj_=465X8VvDyypipR$_&`c(87fsOZ@s3g_Vcfd}fOT!omZ zopH9X9; zJ^w{}{fZcZYnX^yUCUlau7*9Py7h_AG!{vBnX@Lmhz`JZ5Q&Wu!1tc}WUdtcz(OD& zT!2Cm3ZnFJGTvn->^Eyn`R9>z;X@=#65IE(-SwL*T_xq^zqlZd&aGO>Ltv3%UT0AS z^4?K-1JF_SXuL|blJ*#>`F9H@hb>L^kX@+u;R>`!i``u%%cLwPmQyZUxiRzi6UXqR z!p%D+v-^^+yJ>KaF|mk_%RQwYA-;?ozl|ym)SL{Lup|+7tQOd-(0iZVE)Vq%4UL=z zr9}w@{SR`ID=xMAV{ZO|!0;IuRC@)bfF)|yBlF*T&uq4T?wFGU#rok7JirgaS2&kq z$_gU;RePYovN)FIJSLmUfZY(&bFKZl^QcNazIJ%HlmVMGE8&v<^==m`zxr;TNvTT5 zI(2H+ESeR#dEb@8vthtdf z-68A}m%c1_+ndyVXG#*xQq6)=ra=kHsELIo<^@{x1{i!M9`kam??5jUFYG@+o#1e< zMix$gd3jU?Ne7?=@%GpV;8#WA4SODXW+Uycvkk$qvL()&USA~@YfOdpIUe9o>h8sM z%-FARqR=dr#H@Ybq`ZvFn(f5_SOD3c!AW{++6W9`)g=}Z{Hi4i535!ZB_Qp*D~Uf# zr5xq5im+bJpsU+lFnP%-6CLiw7532RR)^Zl0Q!Am-gs?ZLEI{WY|;{x$R;h*WJ7X- z1cbP3T$n1k+W!6}CsE2YQI^_38`r!UHYYbVRY7Edu5cb(L2Y=v&*r;fE4z-g3*r*2 zYeARZEA6#wp0b5%UDbX4nHYjgQW@6R)1oGp#BrQXF{NV(0Q15O{K;xlzh1W47xB(t zgn*l|L#Nf}FX2x(+D;Hv9xXg#>5)+8(vjfJ)mvD%wc&cBW`Oi;z#gPNx(izg3ZI>t zlY4+KYcb%Lbvm311ndOcvwsBJMG$O(zriM_S}DZhC$l82`vyj>sp(0jSl+vH;_dc7h`Q>A7oWs8(~1Yb)fk*0!Jbr#fWZwJ_EHo37P-obt> zEh63q2JFvk%;)+fN#@>i48OZ^RWf5zcy(^E8`UBd8cbz_w;dUf?I5x0Wx;~-M>5J9 zz$J69@{XP&D4}Z2m)0)+cJL$8<~l9b4MWu9#Yw5ODY$uuX9)i8uV8OfK6ykT4DXWE z(Xu82Y(&f)IUkOpvvKs1x99B=X$ln-E#nUkB2*i_9 zd^7e~mk}9--y9!4zM*kfff}n42Z>nl57i67>sc}%^q(`Vb7aOBO->JgiE-H{XPycp zwt;h|M1AGo=qCiUu-3i@QP&v|_n9c*B~jl&T8Lg)Izau<;oetSICFqaEi-7?P-=Ml z9ubNkNCF!(V9&!MV^U{C`xj!qhx^1jGS1N_v=&j)4Hn}Q6AIIV{UOBY$S$z46 zdHvq8sR50tm~Jd13RLY1Cv+c{dlxpGD_Jb;js_b&zM*Zt@{#9e(VdulFdk``jG=!SN{v)zrZLrn)+6jOGZPLT%X4|XbYx7&r?O7aF~rnH1pfuNnB z3;ajWse_;k-eKXk--zgqx-9I?&}eK9kvK||^7`-|o*M}X@oyC$?A=qr7VmuiG4Y5A zEw^<_T`PSC_NHFCI?EKLi^H^7i%{#&8Yo{Yd^N5adFsBIa9Q5UT}{q z*126a570q$8+vDFaJ;FfHB~e8k`+2aUrdH4lnje$5Q@a{nZ7fwQw-W67w{Y@`qo~8 zRS}q_qKIzR+M}XFA}tD7euCTumB1dANKP^`PHW!B3y;A#P|D-pBk(bN6C>1Z3_tUQ zB9DDHIvs{^+88SF`31bGr)px?Gq=}kE9iDkvM*i=KgL@Vx(mBBt}?Y87o=7zj$yI? z-4!=7G@hB>o8i_L=m8Nsx8aWBN)K~cw(_2u&;N}1)6xaTlo2EQ)ks8O9hwc_#f|5v z8UnogHFM03&%}v(^Qi^kZXtNnwTiS%GN$huocy3&gf+F;M43nD4ZoHNKCu)Yzyl5v ze)#XeYez393fl(Z^N5reR!^D|M@YA&zf>`D@=3)G_1%uv7%i}Sm)oH4f?>tqEwjSB z3n@APmIg#F*b}$lueJGVt+<*#9x3y~YpiodWnxC@N23o=U-@+X97g`Z3+QUX6fi(q zn-A(cXi-6oT4JXG>x|kS{|{&jl55L@3a+oT#^KGYDYOM@=O_1}IvjWqSl1GGJr=iF z_M5)4BlXM256cHep|k4qD*>zUt$S;l2+Z2LxOD|=ba9LnLOK?!JU1+V@T8!H)IL|y*s*vy8R#nf4 z!k6~Dwyw)L0v8DV_T(}1J9^(~dd@GU!`B9Dke($9^L>Mzn{H7nx!@f0*6OVQj_7xo zndn#28TY)S)3}#dtubF$;X}aomND33!BetiFQi10?5g7bW2;5^$2>>Ag zB#%OojKH>fyJ$rgKXn67!LurY#dWW$42^x~)vh<^-in}SKlG|J4(jC>_o?s)hku>BAv-kXaX zlk(V%&n%%ZoR1pd#V1F#>qfUPdCpipXds>{bQR0Q0eo81ms%F9#vWEX;}=Wv$Lepl z#0sc=Yl%>KjxzA{!va~m!UvL0hFgZmuGrt8Qfv|358P-G-M&O`v;d8wKO=vq{fz&e z_ABzg&7-(8nH<0W-$eO%cjXdRMaP}x3mTeuR_cxbvHOibk^p0s2hoQ?HgE)jJ(pJ6yx2s- zl^&4qiC`;kzul65sp)KfPmpcns{V;D`Qx3-{S;ZEmm2NADGEM4FxY>)WkFWuBcijs zln-C4Ed|uRgn0BHBF%elnoZv*k!Z`UH*2Z!6bI%COe(0c*TrTA2PptEqxWQu!n$s^ z%(hzt5s$KyD9ZPx*KHruWxax**SjC50xtn~VAn;kfBFCv=RbAa&OtQmOu3 zsw@z;3zWKR7i|~>*p^NEU&*HWuVsfZ10dngI{#ovO%HOB4PzlE{VLg?X>MH=XPqz_M=tr~PWi zR^*0N+i?FrlG&tD_2jCPZsmOIO zBiEF3yGa+D%=EwK|DON}&(p1UD(%}!-O8y;elR*1&6GY}OL!%D-G&+=k2Kku-d=@wc4jJsZ@00*bKoJ}* zVdo4ig$%&*kO%y--FwO8+#vippBY*Ca8ZS^l1DlRCwsE!e;WtE3?S@*QzyV`0Z{1g z;{Ttim><=n0`35;0QD@eMFkFKfF{83A4zuscmI|Y0%-p&>25&xZ%L^E{l6up0Sy0^ zbPr(sx1@UklfNaU10a;z0)qaQ^eDJ;{_jZt=KP-h3c&Ega2yA&0h~{o%niZWvUgdz ztBJ7<)W#BOO*S0=#7AMXMbul?cA5Ea4dh{P)?Bklr2V&zL)Lhri=4Nki$Moc&)wYs zkJkfOe;!eGvdKL`x0o)e2lL3t6qD)_-++g@cdmB2I&1>V{q*e_7j78O)3>n#FgV@P z%{+7LV(6r4_TEyz^v|%$lDTz>Ql*o3| zBl{Q7yd?!xhT?wAk5TRS$IUq&dO>{~v8V1%wz;(%mKT@gx!ba<`QFE8_tRG#Z6BC_ z!(zj>7uMq<6qiMpsdhK`*ui@*KhN#9|9Dtw#(mJeMV|fe@`0=f#`{KeYzcneSqHe; zJ*4ldj$Sez$-NQ~g}Pc}b(!gd*=3`}I*WkVLxBZmw$(jcALY9r2$ysTXSqJDxSM=8 z;PpY;XerN5#0RttY&fBR;{@lh{HX00IKh37ySEo*wT%7Ck9yB(biyxQcewhw>QTu| z#Nv@D0!Kt0>G%=XXCX#qXCTWNJP|`tPkEkc3=ZTUj zfxrB;SIGs$q`_m4O}LPtA^jNj>?xXpP5&U@$w!(+4p3X-m?TYiCyEcF6 zjCG$ppK)P^ps)4aBZvK8L9_GO?Yj4VdZcA|waSZc)HbCmoXz9T-K4Y!#j`*!H@)F% zlJ70vx9_vhMY+*%Mtk@V7Ct(p;d_TKvs2rB!g?@0)7MRxLlfOrc{(<4iEU+pF{s?0 zEt6vN$$pwEHWw9daZ?sZT!qY7Ty{8zKhvHtr=2C92Z?%(z4j=9L+Q$z@WZ5n6Mj>FZdOr=ZyAl2s|aSlxd5n#wP0gip<$NA@2w ze-YJ5nV!TN<+CwI6u6IGD0R?@dG@WvxDi`ZR$F%n`o7S(^_-?&D~fwyvzlXT06$wQc1rdOTfs@GdF1AhwohxQF0+A0{1RcDlk7u}eQ|ZY{jf zIJE9i%ZozeqHf(pkKVDT!lFO8>RD&3PX%riv5qZ&oV#dr8`8jBFi0w*wXm~LHeC(A za@EQ&ZmwO7S)jo(q##IRDMCn?k&17Fss2^3m{5m9>}A*&=cU**lkW}HBL(AHjB1!I zbTW9wu34$;g|@A?`<(hZ@C-)g$$F0s4IL8o`HB+cx}6FGc3o> z&NKv1#gdeacrTRMh!D@a?G~$-tE{ta=JFGNjI~!ugg=P3raN3$1}k%M zZmkTPDS&o*$sleE?WSLP)TO9)3AQRnj4jZ=T>lF5@*MFzQ5OoW>m|ABZF985+z~1` znR7KyuHc=y#e!Tx4zU+)lre}q99lOs9?Oe`?ZJQbCDg$M0$QokWzm z946ULmu|S42-W$o#dG!88;I)o#Zra6_?{ukM4;eWYKC|LuR=jNEFwb*sZDiu*ot91 z)_gIx(Jh|ZGrI6ya@Q?c!rD{ib6OKeqCWAL9ES(BzbLelSJEiLos|Rc{Ac8p4i-S5 zn8p;}^BGN_8aHr>R`DS8mhQ^@B(8V2K(5I1_|2mBO7 zi1xG{QlbiwSa3oT4H{tJ5ZM5C>Re$`XQ6g5(1o8fU|c%+?F=Ko&==1u*+&l^YQDn1 zUqb9qdWlJfgmY$2MjDS*1haNaZtt~Y$a}X`M1)I1EiYW@KD@#dsV286^DZc$W%@&# z)hUrV|3P+1ssW{yhd*vz{BNkYpF6yNE8Kwv7XI~wDcPn+*JIyr6yCw@h zzqe;9Eb_D~Lc_we15}fBn41vrNUd9k?z(U8IW@d*u@$&xa_Z|x_;Z&$TFa}KnMT?k zkBN(Nc{K*x6I58dEH5WJvbK#XeZ@?kKQ)6)q-y?j_+p%O)uVCNrrzCSYEztpq+Z54 z!ZQ|*)dvE@Oz#(czh1{*uxhS6g#UW^p?~Yp?VFGb5AtLhV!H5~?J@VzQLDk(nJnYc zm0x*9Ja6P!2nSraV|-!n3`cQ4=~LNm<&tMFB2shFf(Mnlv}KfDjT7XHc|wIfFg!Y33S*MoUn8iMk+%#Oj{$c5_Q%6c#oEioY)LT*t9n4#r` zIZGolS*-U@*9_p&e8SBsmJ7{auBrOJgECH^bVe$_yf{#PJ~dvdIF2?FHl>qN?eDL|t306+`?@ug7O{uu7z%(O&-UM8}Ta(V3?X1Nq) zkCV9So@I~getpAL0*i;oNkn%=cCF6Tt;>^08?GOHo~$M;)%B$gz|{oAUf~t;u8-YE zRk+6+2zfOM?ovQ#Gd$&53U@b?^5UBx$T4zvP-Nj`WeD=$?KeDl|A4#u&0SvSBpDSB z?YnnBPVV&GCvo(8Pn7*G556!`U->d;5osV_wzrJ+*yD`3Kl`)Yzl{?~wrqCHD%+d2d+*-JB zolfR4&x5(+*8>@thF^a*zW$7_BKOeA2-L^hW|wbA))hC6MijokV5WKfq}dluV^^C) z{W|<9)iIJ!#KaV(&RPB0<-u;gYnFB>0xAb|crww}Y@7m>+X#|fgE(~^O&?(v^fmr=N|C{S_aL(SosOLen3kNaS%W=s8q zyRTuKj#A7F=A}Mj?av-#PiJp2GVY=l;1(vH3vtqU5!&%|q(uA#uE5B);!vc^BQEaI z_<@5T1Q~U|_zk69;V(P|2gVUwZSq{>J-Xg3D+hPjU9A)b{4 zqb_YmmVIN2*^t?b*-)xRqmz||trd#$Tkgc2I(4dsAa~4}LQj#o5h6E3Y40l#PdiRo z8(NxU4;#sm%s+eOXp*js-!HJ<=rP;Oh+V}AaXFfLQe(TWame? zr2|r)-uIiJ*TFhC-zUDN{Xp`_jBH=B@6pUc+GO$@$rz;9zsdj5?z&{Bq81s`N1dMk zsyi=fNuHPEbl&jWf)dZ5Ez!|jV#3nX?);Y_GJTN={tCJAAZL>quu)+}mRn$AhfpfaCi%UgJ_hrV1h zwU=3vux4hXVJjzR>a@t73~I#Q>Anc2xJWNPj~`T1PWP$VNlNqD!4I^(Z;+-5Ugtd7 zCn$^JC5n8I7sqs|&BCkD3dk)UEpH!xSVQG00$dKnRs#V*H=)qXN^g_+wOoM zjwzn#?#;+TZ2!Om-!|OM6Y9D!&M$d5^;>X?M1ScsX~mBh)}E!Lls$Y}8Ge&Tz0Kjs zoxpJQzRssnNpx1xJr3iK2lh?|>7U!dHuU|W}L#TS+AeP^{UGLX-J#kO^>KAW&9n(!DH|>n=#3z^IoN?_Jzha)OoMv)M zqb(w#7{H8ZNJi&r5yw}w?8tt`f;~Jv2^(v;t1dQ^-eSxVqng~cEo}Rgn4OW--wwH7 zD^^U`Z*{t4Qsp|Jnl63onwow%$I;G?*2~O7`zl@UvlY+=6d4-b6ra0;65l;#nwWYE z8`Hj^JyrD9AlQf{pLW;bXO~{&=8E2FZfU_+wh3f$Fi*T^&eIj*F5lbxHDnJ>UB&t( zN^4xMFCe^sI_7DaOgO9+a;?_7FUNeO*kE7fqCB&xsAzn4w)(52q*IroqN8Vqt_nEh z>J7*g11oh-;i)i~I+EZWbv^QBa+kq7Tux~$NjkLs9W9F=I3CqG-pAxJ4p^1ceL8aK z3~HIRmiuFMm7{ZPrhnAr@!EQWRfMR6b7NUaz^IeG24$U21!WEIeZm=tODMx+a{kfUmmSV5<7 zSBgrZeR>0&0$H})&Kt-~YO=0b@Uz^vVE5DTVo(;pH?+OU!CzgmHa)wXw}}9A3F>YE?Xk+<_BUgpxH+$}`al`d<#qZnc#@|ix<}-6nI=amT;6K^blzmS zJ`=o2UC#GZ34qwN9an&;g0+bSAgsVXur{PEZ>9mrzJ2?gh263`sY3jXOyuRoRu+v~ zf@kS$Y;uMF#*Hx$GPY;3xtBaR9{b z`wX`4{NB$(42n%s+CgE%h0cS>okvqaEeupU32hKavWJGFX7POEJJ(NLHW zy0^ScvZbcKzTFn++udmU^8)(Xe_Y!UcN2S-P#w*-K2ybdnWbTNRJz!idkvKFJw^M; zmqUS_@Pk2^0Yp71#Ueh`@i!9iqd~v z`+o}gx5zBl0`8$X^Y7JPmfQ1R@-L_C^P;k8;mB8jTmxG^p8SISd&>*&1)-s+&Q-5W zn3pyiN3w?+(&$T9u|}0pAGdpRMB%dv$&IuqJh-;nk=yQ>o<~*k<+Wx5)>^=4j8ZnS z&@re<*JpjK8WtnQT;50NGiD_aUl>IjUkF5{ffp?~V39FKX(2#P0`vR~Q2tx&?+o8_ z|4WANfu9d0X@$J~RPlw&x zLYefkrD_Gp7Z4q90EiQ?-JV^-dwsz6Y~oB;o|H%@u-x#Tkc z?6+8~L5ub?ZR_zZNvDyo>g-=$a4QE*>S>QSuopXj9hAh7YMQpdXmxfer;!xSSGO_- zEx1g<^Gj24O_Ti7cl}PvvD|JWtNmI*WUB4_LuZ0OawcU*-6qUNlf2W&nV_MsV1gr) zGMMo69Vkk&C=TwA{3Y>sj@*Ov)ib#Y5I(RfZvluBAW5!D#eMR}pUR`&lX`=|9SUIQ zQEsm~Y=KsQ2!hY=$T_wvUm;AU`W(NRYQCR79{AV8UCb+WaQwTNg#VEk7w|a|fCzjS z)0w>o5T*gj+t};pQP*D}5zPszr$6s8J|wy8n06Zz99e)eGt<1-ThL2Ba(a_ho#SH0 zXZOLr)&Dqb?Xx5tVBe2o>q&_pN5NLS*N@nOLhrcz6Z#4edrAOE`la5;8!Bw-OnwC3 zy&Dt{W>Dkr&A7kpK47Jin)qelGV>D_t%)Sxo4MX^R0{NpU5Aes(Hz!YgFIlH_#866 zAc>p2{_grIw^NZ5fk=J#!nhGSVkB%Vgx4wAcjNNi?rwrC&*5hedJnJqggXtrhtC#yY>vt&t>JPz$RNP0OvUk9-I@}hH+uW+nBaE$BBW?+toL{c4i6r zlssE6!EkqkgrN5|n34V+OPQ>oo+>D7kUHrA^FeV!j<(E1&c(L8x=E7z?HIZv`d)WG zX=zP;swZZ55ZrodKi$0%QufZc!c2A#ItA-^e|QzcZy8kbDX?O}czmvoFq$SB7Z~kv z&mmw4dJyDii*6aC)ROFnN=ctWCwBFSVAlM2g7wStj3dkhhnLI63%bVYKR6Ysu*=-D znr+1!4o|=|ta|+3%*bH*3rI1}+@ak~t(zoQqsSP|(O z>izi#%?5LU{MSF|i(kO0Qz#lY6d-Hh0F_3zp5oiqQ%BWTk;O+nth%{KmJ8{iz``i( z?cj4{}TjIF)M59D;s;u9rZIi8i^YW{y%JB{7#EUOSY(~h4ZfU z5XsC!4f7csWrPj@S{+f)qz&%X>rg+s#Ll`3mF7$;%YJCux_?-?$)bO(QE~^QP0L^4X8EB zWb&71``deaTR)~Y2=r-v`#5$u{`FY95LTDuHQPTn*6TlZL8ksSX5PxKOWx|6R|eFg zu|YVumEC@lMcW$3KjPZdOKCCN5Bp+lJ`9CrbS}?-Obn9WV2K)gTZoRz)KHPLp3xPK zQ)joN%H=(_mF1F%6gv>3AR;dzk zeS=|sw8Wu;yp3ew1KqN&&b=OU{s)t?WjSRhG|EAS znIJ<+#chVKcQRxE8Lof~*||Z62|yNb7epH14wf%=2bslDcMrkpX{8st>`Fkf*`Qdu z>)*x3?I3Ho4vGzY2a08nAd5`_KK`gMnKJ&53WJm(1dx*LBAGH7$N?;X1C0P>EGYWT z4$72q9^A)a4zVYlK|!x%L1UT=)`VvO;0Ed5?x1_>9>DpuYNCklk?h1}veC`^PDhsf z?hm@;Sdi|6>Z9$JNdoeJ^Go>8{1SlzkdD24n_uD%I)9<$*egvfcVmK}iE3ayKJBPS z(m&Os@VneI@f7Ei|B(BZT)vD3P_DWnNLTc`9x4A+kK*6_QvWl*M4;q%J>LJvdZYlQ zKQwo&oZ@`iADW|aBx`PgtT`ngaPnFP_8AlM080UU9U^bc0q=}VoQE`CJa=e|dFcbL z7s^2rO90plk^nwr67bH*#BoT9^>ScL$N;#Os{n3-$$R7fAOLxsS7pt)P!4SEVFPDU zsO=r^G~c(*Rsj1beSUdqQ~-zTf%qSLX{kVgKexv30-u=xelQ5G9sxQCSloSYeYW=+ zH7Zb5Q2eh`$NxK=I;j4mQ^)pxH99&9uzUR2dL}INW5XKizxBLe0d{2iiw$cEdq%;M zR00q`K!$9?b!Y5`k1|ZZ!z%S*Pz_7U(CZtIIAlTzl+W&WXCGWj(2(N}^fB$alJic~ zMO$AV7$6zxdmTB|3NRY1dm$f5_}nolXDg2qq?y~DHAd@B)wuvEp|Dw{?DrAOM^M<8 zGwYyyBnF{9ac{h`&A%4}?>-MrXyN(F@-n*5d)J##dL zlP~o&`mU5@3Y)pO+b8q~LQ|CGu!JvYw11(#f23AzMN7JWmN`_39RvHQTPA_{mb^i+ zSeJLz zeDX@nt*e18E!H(fU43x@8Pt_9a2glEhp>H_%JamTy&S(Ih&+0O zt$jKOb>oBeK~E!$crW@?tNg+S4YJ^}f_=m*jx;{a)lb;W_5StMlXV+~XH(Tp&6|sk zTI-x-O)9-Ble1_jm%KNxW0G@K{?%qdAz$JP0-UzAEcB!9m`LLFVW$Qc>xr@EbSYE- zO7)hSbPZ#us!}rah$u8&<=!dJFr&rnD_Y++o?921GP!NYdSWO_Gap}wczfphu?VJU zIwD+KaYe`2jl_N>Ca`e z>IRLZ8s@{y8l4_SIL8>=rThlWX^(+nzM#=V^sx#Q_RYpi9c~x+^VetkNS&Rpgfhy3JGtB{%s-P{e++hRXyPv>)%;pgP)|ng>8uP<} z@bgXw!m1q(gw?>|GY9_Hf$;wmw&wqF2STzP`~1r!3IDKTpZ_OzO!)6z2+{w^g^(L; z^RIvh@V_pE|L8tO*4Ecw4Sx>Q);)mSaDVAPwnJ&>{!VGly8s{p)XT4dCh}h$$bPs_ zeE`^-jCT9{@{vjh*n{pT`TTN($^h7_D`b9qJ7of#J%*O?zg(KK0QQ0klFu){rED^N z&u{0Xk05_z_-_xS954)J`|W0w3vfO&tS^n zy89cxKg#1yapI5ixEZnkQ6AR{ra#K#dTiex<#B0(>?{xaB$T+5Kl?;wyU!nC?oWS& z$9*IIpvMh+{ux%f_XqvhJDGn8bNm^m+yMRzWB&+`8l!yv49EXV*yj)Wk${>|N}=I`8%SV1#cOKu=m^0#elW8)kbb2TJM-1UMZddol% zcYnTs)UsJt*txMaUs1FrA#v#b=o|%N%&mQK)Bd&l(AHM4{~YvOJ@x&ex8Jt5%K8Ji zGz`72Ro888#R(jHe1wHXNJx0h|8yN`i;HFKXv}kQqPOu`8jNokb zkRFtjv}@W5q~9_&bgFlw(OcTuYLganr8SuM9?j$0($a?vSt}f~5!!fZL#SWx*xd5Y zo-Vsn-n~T#@}e9rMEfiX)39B{K$=Gqycrsa-E-J-`0&QtMHZ+PAi7}t z)B%w5!2X}@kl6cmsy(n~-=RFoz~x`6cFds7jVW<#Wd^xk`u-V^D)NeMkb z2mu1*OVsT~&wKXS=l$couIKr7hD)=UbU7 zc$MkO*_~o)3}$oYBth;O+mq;vWEe(FBTpdlg;rIGv+X>lfEV>a=O}lfWoTA6;GBuU z)`>1}?Hl$V6M|+QD%{~Nq!eKwCn#U!OyF_N2jJ&%3NW5|M?+BFKTAaFx%t3M#P5I%3JKCAH}ndvp4l6Ew#TQ2)TF-w%=YLkn?kD2&18Ue0B%?K7?o%0p``0 zG}rzrN7(d%?s>yw-KXOi28wH!j_SSyQjl(e3(VsBx9?}_DvuE!)+;Mw)W0@2?Zyw6 zUuF@Xy#~*pqXS$!eFyaY!F=5S{JY<8ZG7ysAXOr3nQaNl;*dUXr^Nb-=8)9UB$38$ z{^kbI`3iaEE5$qcK^O4-m9te|%m7x*O*p7`RiD zM0U~^yWi^Mh8cR3M*N$+IcVD-1&+3V;&MkXjKn#HZ#_p@Z5kGrtX(yi6X^}9L~(E zs#>V_!0aFhu@M;m7-{EfyWnhmwyZp~_{xOG_4|i;EoRQVvS4qvQOz6jFVoiEtE+rh zFIzUua_hH)U8$jpWgC2R^JSIp`6+@bX>dk}LmW(XHf*)x{(`oJ;{spi#9P9BPcwNo zo5A&R%ES+GQX+lmIQdD2q}fEM0mtN0N@PIQa|MSbu?MLiOy}gHxCk4a5N)CF`ZGg! z;!FjDhnVbUNIi;$#$`wy>Xr;I--6+VY3l^U4l0R@8PF|BlwAT%)k^ZlM<~~LJXbet zKU)*KtLsE3tbbL0_-+nn$eAEYpy?=d!JgA@qq51X3fTr>8L6~un0_LbY3xI0C2CBi zEw|buniC?Oq>QmpTS+5jcw(d)E+}XSMZ;c)MLxviy9L!vh)Gyr>4t;@!w)s00;oT0U(0= zV;CE=Ze%2p={dkCR4w01DLoTORQfEoBqh_1NFZ34ha}bt4=~*=Mo;WT2Gv2+>Zlty zsfmGA38#F}d&09CvenU3UV;0{Yw)72Bv?qx;Ub1Tv_?UX81h95B|$~E%ByG6Y0~Q8 zB2H<>T?xB0`({Vhq3wQ+{FrVxP2`U1ew-Uc-o9E0rf5_9wPu2hJ7o4e zWC(kr!gYuXEgX!_yi;PtfVh-^!6M45`*0OUlNwhrCHYQ__ddy(ihH(1< zhr#=k+9ND_n_cz;d@UE_BO(zJOP=m2cKHoLBFpG3Rj2$dQSVZPcr$p~;*UG6r~qPF zG1NLA1H{Skb3joFoK8H97`DFxWRR~FW02R*>l2Wm{h4C!RCx*=5b}uxZplf+>{mkr z8Ut<-A}w%PkzQMG+5I7BxpCs ztDv4jLp?wS$cI{&Z83?Ml{`Z1bz7c7cG!;Cwf!?)UfY`4VCY(8?BL$BT}DVSfEYk@ z{ds%XEaRPa*@f?ZK+MdckXUo^BU>}sRC*FIYda#-jTP~r?>23Hc5Ry+;1Y-#ZCR`x zt^LU!#I9{_9sS14Tqk0t2`OSV+c@(h?IHGv_T5uf!1x!j%ODhh&j1kqMuEuTfIjI8 zOnc?(WmMvX^v$;5Rt6R23T2g-26e;rt~Wg}JuvsW{gam9*fBr~(9rHksWiY%N!+9$5{yx*BbiZ+SyO3$G_e)|^dqN*8T<7+;x2UNwyA zm>elGnM!NwHU}C9FA-(M@QHVgx|GB))%djx4@Z_$#W`6)1iD0I4K=|-!|XckxokIb z=f^W2@U4s?Rpket_khS_8TZNxYeb~n1w+kK+uWqpAmXs| z={{P>XDl$$Vmz&>kx@V7L$q5#P>p&Kh1O)A67&fs>2dKbY3^*u+1F5RG~W7LInQ@G z@CyL{G~nhpI*{QEH8u4S6CMG<3(TS~89$@2<9+t34d82P?T;5EGmiZ7gR~t2Pv0__ zHMkKHl3LJnLm;Z5H%#9%P)9zYt3_8iwn9nr#OI}fOIehafx4>#0 zk`1nfATD(BKp>EHh;q;rw^%j08rsQ&m@qM(-1`he)MraF0tA=o;+j6Exmm8J6kxO( zl?><$TsYfID?5yImkV=WXTua%MIv21&ZfR7ulzFy`8S&bGhdodE^IqM&AUTm4VwProfbTPVd?TEqLdb5II#fF;= zEI>-dVZ-p)oXsy)aW~%WP2Pg4o_0l_0Zr1wpbp|q1DirTqG%r;8o5urLW}K(O6Gbh zy+l3T5VXnHmMp@LZp*FCD5LpyZLyb7B2gohf1i8W5mz%&*0`%3?<1G1xut_J_ggpP zXx>t|>ynAElzB~W$Jnm;Ygh5dka^j6@+J#51#!1fzPzndBfEMutDHOZpgY6m)d0F` zXhU4ZhDQ0FE(rs3vfx!?wV9HRniux#r;8e#_(RXHQg^srLWkT-SJqX0Pk}mRl(*Do z=;`SuZgc0bdfQ(c-oD8lvuGhC@5NUOm6$eNIR~0u6VmohU4~_Fzqna)iYBq8bX1$G zE~|k1)rdu8N#Pqw2a}WRT5Qb3j!%j-4Et4b7ee+i2V6)4Vy?I1{Xs`B>!wzzl6$GI zS6T;u>lbU3=H5>1z-R6@``;7mD~^D_PM13q|Mjw8iYTQ0kzz89gww7?B^ZM7JFvsE z7q?1@e_N&GJ|y#;mF^kGq%J*t7H7-z*0Sx!LQ8UxxsQKi8=1|RcRCbSl#^Q|tSgSm z8bw>Mn6r-!)oPbaV1{zsmC)htXt%Qc$q3MJN&OuQNQ!#op9w7b$_lKV)7$$In1 zc;+Tp6B;gr%pTI)n>Lk4`*^_R=AOkB>=Z}jL~DqS>?_@ec!#b(aOPC~dI5=Df{bcz zdkhUow7J(6MySKx6tX>FkC63uD%A9HV7Ip&jP>9d(Qc)xu&E+-wRmFnJ;s$oDo>L6 zh#Ke{n|;QIxhw&z6R50B2DgPRsj1QQIbN3q8FqAnySNB+RlF^9CKpkER-!HLN}ZcL zBu*W=6gGJ-GX^c-r`UlvBpy8nfrn;o7rae^8YB5?g<`DS7^ZCp5y105UOC*f zp{}~(CbSR-Pv6FoUMtzd8QVCF*k|loF>CwPUEHv7X4>|LS(Ys>5TOsx*JrGCO*8!{ zFYK=Zh?j@3d5|{YJxFzWIG!=WidOzeJFGDh9m@$af$V;@EuHuBZPb7gO8%7j@Nf!c zhpmZ3y51}{j|ny>ium3oc0zj&;vkcCmr|h^;n|?Zkq;Izo6X`yw+4I;#@G0!- z)`wf&#D8DiKA{qqKPk_R(i8fyzI{`8s*Vu!u?sGF_Z;7xn@!`n*Y; z8a#3?(vrhoF7}|iAO3Fm%_MM1+CTK}p_(fpyJ(|mc0Rj7+&mqJMNZ8vi@Qb9bR}iZ zF^8DQ*u4qA59)D#=S4?FO|7oi;0eCS{K)hGx&vASD|rNLq4sEM&(3v%@p-WeT0d?< z`;NOa5Sp5r?ka!)OO5__d1-Xc;o;%Qm`mC(epGW-qLy$40DSH2Yry!1*j>#40RIFK zgma>1w*{#bSr`R(oIQ!S>$Sk?W*;dVa`(-}`e$d{RW_2bhd9EQ^v{*E`=9CI*Q5kq z0Bhc1`&8VonaFw1qL*09EU9UjIXcyAo#w`!s8}}}XJLTq)atgQ1qJH zK?u_C=1i8p7kM;QpM;;K}OL-ehE~EQ?40-hm*%|(AbW{#TE!t2t zJIx%DDdv=uF2o~%yl8zcwEn9*{a_J(+kB8>K8I+DG<|0Q{g@IAQD@)6<#D^!`k*k) zxfwVh5xw3SRFhGvuHmunX;I>`3~h(UE@!w(HTw}lTV~p$sUA(XHHPWQu$mY%BCBc6 z$jHqV(5@83viWQf5k7@SfE_GVyk!embfV{LhjPFkA$Z~_-Nv@LUOfrL=lzHIUu=?U zF2|SRtXDManAZ;4u-p%~Be^)(!4ubDrs4|qk~gs|gcBHf##B7CR1y$e-yhmCfru;( z8`aoK8lkR3E^7t(2u;6VuXybnbeLpoJS`sME_9BC031|UL8Jf3y;|XM{k>EG!Xlby z^9o*s!Di)*Z&#|L(8V%sm#_-MlwAlL4gX%qJOU|Ol2 zgrK<9+>Az2hZ963gaR!d`p)x$p7)Jrw6`;qxY9(q>1Y#n{X!Kob{@H8r{>E!fmHRm z@t;*dmCMh$9H~rQr?Rj|Pt0yT&a(x~KbjiRao=8d`&dc+qQnpH1aWGghN~!gf}de} z7<9$^>lIKsB%)HRL4kHU`(nv<8Grb$x_?a~`ZI9-&~Gk$R#`^gS7-wwPukABggL>L zreddgW{Q6%V*F8jgxyW^YWWfZ-58=6h-5!Pz$utEruQW>%38MI{IW;PLA=Lgaz{{K zz|6z!tW*O!dq5LFW$t7@8V|YalOCBo0#_VZkx;4{ex;6Lj$xjx(97&ON<0Ia_Iheu zmZ8=F%v*=wxCXjW7~5u`)$NOi8?&A5437fNjDqoPuz#O}xY-Ky{p%>cpTmh*j))1X zs3<8HjRh-pZjD&K_NKi0gs{N;%>ZL3(^v?UVR+jB!NRt+=$vGz+($Mhg`KDz4n=`Mt*Cny}?jLyZtWbatFo5m5MN=^TF4pJ}03Qq_{kG&k zIMc{TCNsm)onquh=ltdH5$(zArZjF_B{s+d+$dbq`bsvxuIwfeBX@>XQe`jKL!iLdfI1P>8Bc&nqYX*yrUw zWiwvJL4*RjPvv+_y-B-0F*G zFB(vz07q0~WidD+j^Yct8irj46HxOC8`vhM= z3Sb2A7{HqFEtGWEae$4LG49psOq~eXL;sV2RKO@!jWgjJzt(+BEyy%2?$v!94_Evh zC>#Tr0_YV1C#11vA;%Q+Sea!DY3KwthqprC2V(7xV+$mG3}8wCNAzXMn9< z?=RK6%7Uw&8?JgySi95Tt9KRamcC!A_Yqe;6I}Ip0iOUffIC3bZ{TMCF)eo40Q<-) zl5tJzYOKw#09(KrG8{n-lo~ju)j@WGcO%d6#o~ryl0PNZ<}9|y9{2)+v84?j(=*Et zcH>Ap*V7g)q~wb&Zw_1DS!V!%2;119V|rcAC-ydC9=>?KVOZqv2}lGi{AWZE_8$?! z#lM3H&L2kv7k@zn7k@}Ife+X{euYpuUTvUpCE!uKbIu_AM4oC zf3uG9|9wPo{jU%~_&EdJ zdJSE7Uq$m7Z5$m3P) zNdKRJJYMc->>qrewOcXc_r~zc~vU+7yZ?l{9p3d{C<_!FBScwzh3{lT=I)P zT)+I6{0-pma;5KI%850<>L=Fu{*}Bb)d2Wwx#>6k)?f2yewW*Q|61<)O&{X>*K!Zw zujRhq^alZdEf4>qzvVafFUTV^4ta#@L;mlON9Ny_h4!CQyWkJxvHib79tHmk1Xht?d_$}b0)S5nVEjWT zUURs<-tXFOhd(JsAJBA_!jLbB7J#4;D7xd+m#*<~nTnD!-GID}mNK=8d!=#1a)PnPdAOQLJ76TaH9qTeA4i1p`cB7?EuJJL+TKo*F+DRo^M`znL zm8|08N16TRYmBTi(hs#eh<;k0|qvd|FB+Uu5ueKUe_y`+WmrXEk?v<&5`Od56}HPn1o%MDt?%QnKOGq3%fP zW-sPbbxf`bMw~*sRQlWjHMAYNp<_kwzmBYgNA%^8>u=dNe4)^F7gnnZ=vb%6=VrN6 zRW+p>dhOd=ubHw4(&XBWj?RLpShe_(&Bp2Z4T*;OBYcbcdN036@vA{|ho*zA%@aG1 zwANG5SI&xMdihzzDqmR_kZra=C{}~%E%qD>*g->u7YOJFVka`xR5_z)m^5p^dSzb` zd-tog;TD>dyc_B6!Yvk}08Bu$zlZB%NHC{jks7MIzK%SH(p73HNWP?8lWs5$IPTGZ zV5>r*)y{SrFDx@6NpEGlj?P&Z1R?6WyX_bEMGC4$D^`U_i4d()_p+-HV(z}X__*nF zQe}}xO7mVrLhtHH>}9h9!uC;N?A`JktSEnqI&OJ;J2Uy4L`(#_!!R3H0pwIZyrt839BNU!T5>TZS&4gMs1?U`Z*&B zz9I&b=JM{U*T|`^1j^SAZ)+bJ-R-!z7`ll7`jWQV9UN}!qE#5wEu)>T+qNQ;T6>q* zmF<>y>8xZkWW!8#izHB1lJf^Lb)+rs8=*d? zpb_C-_EumTot5qNcSgQxL%Mw4wX_>8wEaimYu{KbN$ISeb931J#-zvsA5y4fW%>a^ zvNTSGe3+lGq*7_vP68nOnrQW%(RYZ-S0}xSKo}tWc!(EVSj&nIrQ^Tfb)9%z)rQ(_ zsu#|8E(h^Al~y{gv3()oM%YKvNBRc49Me`Lkm8_KGL?h& zP9-kc88M-!MAFJ9dsnHXMXb%H&sO(RSaH#cfbnt9ZA0O16MbWdx(iMNc+TSG57}!% zR)!NX$yz&(>}`+5s8q!lRtH4QjMb#K6uH#-6JIfL+{# z#r4~S1)5(7ele3SoMdL%AEW=i1#p`6el8gQ7Irtahr2Dz@hwzuodTH@S?eAj$2r+M zr&?~B6KQ3Vwx8$HeGS-3Vthkln14yq#4Pcm)P?(jr#Y$5+>{Cqd3n)4rQkZbvt~#w zU-bCeDx`K~OmtyKBL0be>sVP)(Ky6qs=6wYe{5{*D)**Wz>60#V|_wnl!8;>8eVW+ zwbh3#;=JyocN(2ny}7=&LN9ku4NWd>ZqX*CJK!(A|KvFB=+))vjcU-Y@flc!GY~s> zsUhQxNb9mKYD$tz*!Rcg<5d-Uovos^k;!{kYZk=SyDO3hh@bUDAXaJWj6bbh9gW+$ zW;tG?uRCZh0LLhuKNol}OXr|T&jTt~xe%0}W`(j+==HvfW=0}(W7#)PZeODp(xBzn zgQB8m0c;lt0|}a}zQRb+&JPK1pyaH?qrAQVPl?knst|_4WTU(ep?O7^3SS>XKUVM; zbJ99RM@Hz!an-s~Od{SF8|qI3eo41w!db}bNSr>0-}=%I@55lP=cRAEMh#lI$j-tl zLQ?ipFHS6xT~FOHPSImLTja)JKTKN(xj#n(tZbfNe=eL(Tz0Yjbc@wjLV$iV-b8jM zvIaLOpVMHMWD(y~>{}9IGL50RIc5gXXFx$&naSYb;Ps$gprr6DaA|hR`@ovrOn@R0 zD!R^putT{2GCVxo7##K*m6cWc;NT0;5zs+J%)!a2;pOeNS71a6b_CG*+85^MKMnyh zD^OzVH|WH$CBm$+X1B-E9mM*nCY%4n#4Ez$yr$MDO~i9f*w@dj71W4jOF7S2r zMZN+O1R-KY7rySTm0pH&2aYun0~%ftzH*Q2X)e+lhan1T|x8>dX@6#x)V zbmx^$fHa@_h?8YE?db*a_e}J6qNj2-0;FpxUdJSiW0EdYlZ2~P?N-#vKBl`+w`0B^ z>C9ym)nX29F4Ix0b)9}<*WYpa)%S6zPzbsU!+OM#F{?XDsG)@W>}~I9S8r+D5L0wa z2(+^XXW!~wD)9OW+`^mh$5xw`|5~P4BF>XWS^-V48aO6Dee=xoi^OD`Xun4HW^Bt ziV~kHb}+sx)~)+L=d=F$)89fMg%0+J#K{t`KUCmMNk~v(-#u|DZR3>ZTSWKhUr4ssonAgx~=TkEj&IO|y`{$~hjK{k{X?ryKD5{m5q_e@rCI=rPOMM{5U~_n0 zHQ+TEUj}O(jhpra|D-%^4ekL__6Zxf?7J^rJ^S)s*%<6p_$T9e>I9(V(dsl9-x|Ar zJHYMV_`ZMP0T)rNWi~ZBw~*DTC!EpW`ha3J_h~d&)#6Q}HRVKhqMJ8$-WLZwy>qc@ zQ7*kIP^FheI=Ps2P*c&Y=c+{JC$qZ`-$m~3#yIqlv^=qAk3ch>v5hp-NrdRiX~BH`?@cnFm&EjT2^yg zlY-bHP5pr;wMF|`WivdgzT(>t2d;B_X{34R?JX@##!AfICi2M1YVNC7s`eE0Z${qm z#_(s?7@R3kUu&aG%{0>8FN9=Gq07yCHg`ECg1J}s8YEX=>doiP$g8&IxGi;7HZCeI zdm~nE4((KUPORz{qfjNR0%{Y%(`qQ5T$FdqfXTb^agk??cD zhj$XLkV#zUe1)vul0k;=Jl*rQyuEZuGds-Lz!qGm=5o@WIK*eF zfbq4lW9|^QXXC+*x#%A2CdRWT5g70TC*ttTYfV*GZ9$RY@>aRbz{aPEQG>W}+}tZd zpwT;GHdYRfYfa{=VpGe{pe}Xs7vWJof<9v;CCyfFjlD^<`)n-=^~w;wwo-qF;Yobb z?sVv$CTCtKY}Ne>LU+3>u9XRnT6p~iech=lO7Q)@u$B7$*Gwzx187STX66Th4eaev8(#;s52iOpqq_kO}m6gv)lELv&1$G|#&UHFOfq{}S0aN+B- z@nKsioAJDiDEe~^y;a&Mp*fxL8u7JV$qBjKah5Ffz~Z>oZQcG(;DD!APSR{&mqzQv z{J4YK6&vTBb_KDbZ1d|E;=QJemaW@Bgo$OO#5_=nX~ ziHG^}!0{Fzv`xM)E?5K2&MJZi>v z+IGXw=Uf0@0AHa(TqFh3UXp+6MPm;NX)9C$wVbgvZ=nFCS;6syVh%lhzepbfJa&=| z!T3bjP3+On>G_cs=sDxrIaAt@*}bLK$$)bV)P0f^``2@C^^)ARjZu#D)AU~}vN5T< zkn%ptK>}7sCz`S?G8uvhM{SBxBRbr;QI1`t(FQ%daLw7;OP?UJhUCM=AB>l~uEE4t z(|v-otX5&42?VO~s&B=(n8M#YKZ&Ncs=b;m_AWKzv4x%Rp>77h88;I2p_<9gV*tHUs+DSCZIMX<&dY8r8+mH^E)S;OZ_X2X4$TCz|vnN?|3F{y01 zNa^}a&=u^5T0DRyCdGt?te4hoMKxgY%mPOzL@&^QKc6@)cY*!wRV&9!kM1N(na@P#GhNOw z>AjtNll46H)7t8rcf*}iN9i5FH@d$p1&6ASM#qd-pgj5Z7P{IG3EE^XZ@YWRpS)-= z*88g2ulGHpgqEiioF;673F1LQw9dG!C%J7;3tg8Gi+8*(5$(x4rt_2v$bov#Y+iX3 zR!efrI%fZ1kw?SUol1K8r7ZJ>^VeI=2Ps_nZzc5{EF$L23l@ZK!RM&O1TT%BY&i8o z=((G2n^;zcf>_SGs=OzxBUSz4_lik|>`N$P$C~=LfSzTS#>H(LvW0vtbOU%=i=y_M z`b0``=`Se4<$X$EbY(g7ksfx$BcB_W@3bl_hw92Rd-LjHCxwh^r9wgB z{1f-rR zt)>AB?2pWx^P0C+o*Z!*c5rPbDuVY%f$`tqx*ONuIN)|or4!`Kcy-a-j^pU-N3yJ#(c)+b*IQA<^(0J|tyK!#O(_7o#Cr z1QP>K6yI>10AEZEf^x!Sxljm7lNq{<79TiKlRjyZlBQ;!7<@5aRzIm^!<`GEaM_)u zudZfNV|KW#>jO)jNzxZEz7cj9o&e%M1JL5C6`=%r%0nWJ3*znSy+7l1E4w(bSN0RVBDmt6?WAWq<4_%ej@8u0g;^WYwi@ZKJUNOj>sk4jYPNZzvQ=U@R5vo;9XR17vAvAHJqc@w zt@d5F1#*4HF9%RepV0Ot`dui7HH;VO;&H7)GrW&U|J(^+HrrcE#0Wym7s6;}S{z^#@cX(qi@ zbBG3A*vLjq4|MWbtg^wyH>kiB9R$7LS09IQdYUOJc#n-5in{eP+|`CZ`c+ks%cP@B z;T8S>ha2XW9j|w&o3w6d$ckbVfQtQ$6TH0f|q7|yolE2 z5pqn)wNW4NCyJGl$dFHflfXNG1b`v{D7AHr7r25?Xwc|fpPyKnfQwZOd<5Y31xjL- z5XY2^HYHtI<+XsHYwgo2@NS3d)# zkiQ^_(YOeQg`xgpOAl~3-zngq#N^Ij5tFBZ-;hKccpa0c57 za$jHl7s(tQzRMQy8$N9sJ@HpSV{|^S-fX+&VDW z+7W;E32++Qh{IoeLQhyoLtB7XFi)F@>kE=UYj^Z-YnKE#4^#wb;wVQc%rPyQPk!U6 zw!<_*@)vPsUHD$N)7T~efXC~01zWe75)m?lKL=Kg^t&1%)^WgJ)abGOIuYo|wy=UD zP06rLAaex(DX~UR9Mj7bJ0DP39#eL!KsF{F7bEl{5J!D}8+CZc^vnt*-8j-Xediv; zWa5IAQvh)^>NgPcSC})ASI8U^B!(T`lvov(#{fXWZ!o6_Y0+&+5E&pIKn468Fef?i z7|clpJPvbG0V$&atUqB+O5mR`CnfL~n3Dqd56t;L5U|1j&oC!B@Q*uTLO&oFa^Qaf z!3h0*n3D$h56t-w%=r(@`M(_Iqy_#7bJ76+1I$ScJO*>p0{?_L>4E>ioc~+an*S#- zC-u*DO!&t-M*ZKcW5RzQ=41f=1h>M&g(pXuhSZ^ z^UKC@m~-Y&;IAZ9)Ypf*ZfgmUhG*Hd;O;55BWOwP>UT8 zKV?4b+4V>Ne}i3bU{3<{!HQvjpsf7=0=x2K=UDnTfarujHGYR(1+mlRHwy4CU|0O( zu&WSuCitHKy9$1X8;{FK;DqmSc}Hscm;9ZX`Cnv|AM6+X-Al{Ap{-)3VTRzWk^7Y^J`G3n7`Aru4O&|PQzVvVM?O*l3%K82dy9(f7*WCs%;QtDC z75Hu0-1xcl@&15aH~t&g^*Zl=0lN}n%RUaf^8X9$dKvh)VAm?FNhTn^_V-VgHFPZc z6e-uC8_F@KZk->GD0-BQ`OIGLNAXE;nIuL}M)34R>chxa&$@$nt7iHWS+|Wl-WLY( z)|`L;GC`0%`dxR6(aPw8;fDJpsd7|PQ~wj4$`}fIc|=TFz(!0!bsC#3E#cYlTQ{hU z(iyKQmFIbD2VKm{iGi2436u)csARa(-PawZj zV4Ug0!`pfpWj6HWhg|cDty^o8@J)x3Z8txv+j?oFcIEDK`7dux)E%(9M!+1r6f(6Naeox%H34YOQ)YH4t8z;#OF@j=a4+iZv1gd&Y3M(}?g` zZIYKgyx=sjUdFH`?q1!ZR41+T1+mt==aHP!(ofT4!xT`7S&C3|i0gbSrw4LuX(WVz_0EdS{WQ09@e$%2)KtSN+M^#4IcG+>V*S`_>{*TH z_{gb>r#IhFT#TI(R+_h^T{A!HS-UprFQkK3sywT zCE0fEb)?sfkBkq}N&@7H6{t#j)~RiCNLC(lNzQte)h41NoNpPg}S*nCo3mlQca z_RJG(3I+sqzC9xa7u4lGeQj!p-gs~4GrX#RhvR@e18PG0kSuD7s9GB4y>)rJrGaCL ze$@yX{)`7DheUtzPm{@moentACXhXCeV$I#rwZ)jq8BXbuJnBS?Wx~2M)0lBP* zx^J%B`B`-g;6P2#4U9jG!_I;DH^1M7dejN>Nga#Kgs8K zVfS>9`iUU%!b}jR8Z28n8Mnu~i5~8vS6@n)Dl3y+xp?@bfC*w^aen4fZ*aq{+q0Zu8*-{jHlh?`YICPbSoX@gHDYcLj(~4LI{XmdA7K&h~}=JjD~t=iNnv z@`JDk;u$jpq^%~zY%^h3M+*V7=Pj<0Kf{wul#U%os|!R>y-UBGpdk>u2g!osaligu{mDSbgv zE1y`1rOCe6T|UdSKFI9KkbD|LigJc@DhW&8j-iLUd-0aHqr+=8O#fo1awHej8`SWU zsLye}T~?EG=$Tht2fzDb3Ta}^!K~dH`pIUYquthrW|wPnWYC&id9x>|dZRYi><&Z* z4a{`Ur45mol@}&d`?Yy*vordrR3261NE??W*2=M=Jx}YH*J&I#mJBOQc-n4(uc?{W z(|bEa!c*(?Q%o5H`Jq*Q-aXPGBIP&+;!JdsH$zy2-Tiq=`Tcan+~8U|y1oMJOEpf< z`K3WK+&g#R=~_ci={{KE>}(SLI7hR05YeH3_Pi>!utM|9C2E?}w+gI81!xJtbkhW_ zKmgolqMHct#Rdo{<3&v;^8mge#O9FR%VYyIgmjGu<5z6y+VCeQMCsZQ4Dl_CqU9iQ zxPfkJEon`~nB2gAz0yWq5WP34&cVLW^!~xPjJxPaP(VBh&(#b)SrxaVEqR7D)o7{V zJbo?LT6Ln?gSD)e67wb>`W;rbb$Hw1fo5K1H{OITSwP3caw%pHi;JetHtcw_LtS>F z^f$hm)Hn)ki9LvYuu=&?h{dxZ9~z}C`4gx*Yq{x;Se-2#=znN z3Ed8T4rf%$-%7h_gCc_?%xbeCS)~t3OE^=v56m_>a%=_~70u==Fdj)4TEOg}s|^ki z?OXETn*zj2X<|xLS95RiGlY9U%_yWrA|s9}?#BDG(O+pt2+e1hr?ADsOf7ZA=}XZZ zZ_Vq3q0&RG=ObWuTU#q+GwWuGrV-kx8oBpj9pwh&M*f+}-8aj>i+zADI>cl%MFLBK+*oPX)+7zo7x(S`_vq_a*X$p2*jL7R?oXE~j{{ zLRZjkQa@ACE|Mq`Ho#o&kedLjHniH&@P$d1xy8MJKIP+PHqTA61O?vH{p3IvYeH-D zB0Ds4L%KWx=C-8~SkA)!@Cr96jM61EDLeMf=6FddlY#^h6*TF_8$?~wY+MqX%?op_ zR-|I057%u$FY?$MS}wIW(yZ?E5q-)UdxUCOb(O>ZTEy&u>-o2f@pD!aMA#;{LflLq zE``}nQK+JMQ)?JwQ1@Ifzr`CYy5r+XG7DRR`6D@42Y5wIvD-N)5FjQS3j~~>E&^zO zaoFVmPypib9~Z?LiW32l-62R0$3DPFuR{;QNnf1kbItz3S9kJ45#y`?pgROSIFIBI ziXtX{Hs&6OeX9bgzfFv{E#?(x;wDa{Gw~vzzGm|SN1jRIyMT3@jVurM^?i48Ty-eN zZ%+;u0lL)T*lJl0BC^pO<%l#Mba+r1=k0Ow zc>gnC)jjT4uwt4GZPQr>1G_dBFuo{u8e}^*i=Ni5uzhMt-ICf*`^5d*l<7p_G%myC zY-{^@Syox<)-62wqB~BcZ#4i`mvl_P_>9;Bt^t4IKfipjhw$z>K%W4QJ5~$3J!1#{ z4D{K_ji*G`f`&hGFE%~v6CB>!z*qUPBfYGNiP@5wjDmLavu=)IO*`K|e`7zY?vtp~Y-PcrM7aQ1s6?3gi0M#cU~xdM`uc&kLRKJS|; zuNK_Q<3|!52c4UiJ1t|?leBd?u3hTw6?iA3*|O&Up+Fk`W`H7mv@mYorVAg%sKIxUP0a>Y`2-!GqfkKE_L`im9l2vKODcn%Al-yVX9DwXxuQ8{{Oi1sH=9_l)eZPW1?3c6yPgxF;6!G_ zxfl>{;846T$1U%ios@qSaa8o%qB5phI$I~EblADlO!cEK5Fg^Q}7TSxK>huE5^^--}6r$ANy(u>7 zdH6PQ#RZSaZr6R0BjTG?+U9Fo_3v?^Doq+7FYf0zY^p+ElO+5RHMvU)9d6c&tnATT zdRV!V+YQ;vOZ69AksR|VXZKm54-ll|^tP(&jCujnyc;laU@InZWmIA_Qyg-Kb`X_? zFyn-RyoFSY6G~<|I9+=;%oC#-!zFplz z+-jj^ruoQ<$=q#Vna$lN$+fz4I>TFN0M5kclkGLY9Y(iyj_ybGEKZ({mdIo+NCUAZqb7PY~L;SX>QH{Bc?GBZRn2D(#`240>;5xsBQ(#^@ zLNmXZ4?1#fH>&y;QKU&$S8}Vvi=8f(8fWPnpfJwByweC8tm9v|P;8v3hydeX!dl_P zZHz&`J$n4K0`Ae{(>5_#28Lkl$q##+#GyskaB5!)PJiY(d-C(Zji?s6rORm6ayy1j zk`pGbD(%n=bHv1~CgQ>MqRR$rm;#TZqIcG)arj(+w+lF-+8%UXHFEerYR_p+$xN!sX1~cmX|}rLTJVMk}NOdB}SGYg*I0+b`eW4uH8d z9Ppty^9)jZx6`Le;3K5Byer*QmiCoMk*SIU@Y?zIOLen5i+SsB3949ckR)s*%q!kK zNBn33#<;HzrKh?CcPE9>*HL+#Y$5pf$#2gW7q0%V5(y>E^%I78|0#iQ-UfA{iKbn{ z@WJ>i*x|wh#BcciJnYyWWq+Qt(r^rB8>!UlXDs+2@wJ1or(%VoX{i~nMIG)@*r)b9 zCB{ni14^Aph=yTsPv{ zmf!VKHj7X9K`R@z`R+%v5Kgtl#|tj1npuPO!KH;$F8xx*v9z(Ru{6?fkuV8x#}cHX zf0oa|GHuP=V_d>o8a$yYLOEb1Qt7yL=_nkPOGL{6QL;2z88vZyZKfxXHm$exj_A6BZ>&>76UWg- zMFW=E2X+fQNyx=6ZHqy8UNws%oOt@&>x>g0v18EtGK!qxlAzsLt*3A-137QZIF1$(>XBskBHxYOIk;&Yg1DOV3HV11 zd|~$p59aX7Kjp6|vRi#m&HA+<=E(0s$D$;(f+oEH4yb&dNNUJhg1DIix+nSn+AX1anjq z{Z}t^h6kRg)Ya2qd?swE*MYxB>BW5yb8`W=S0y0;G!`XjfbpMVeZ_~{V&XQUYagoQ z8WqV}5OASPtDO3;46}2F4-0OwOKIgiB_>-|&VTmlDdQ8n9;MYs%v|#4IKu~U!>k!(C&JMjy{ zDSl!H$zu~saU7HM?>0sQ0@N2y!0G1n9cxHWbeoELFUWj+)Yj0kiTD1D>~q3au7(F9 zH%eW0^EtRm8xu^)3o^C1$X{8TlCS$F%updQBJ#6SS>)b~g&-sS|*XIK%7R!ZmZxojQ5Y zux`h``R3!XsfRJ2DZu!L*bcjaoAH>P{e)fw*-0r9><{C6Wv+I2=gz^0g=-oji!~SRNOszvg==q(l2V|$fyK^c3pJJE zaUr`jR?uFP9ns#hov`8U-8<8W1Q;UFO(8gG;k?chafB|pY!0=b_sV-Bi>-uaqZbiL z{8T%)$EDF!gWx+HVpHK=aTXD^zB4116WeoA#WnN+AEQ=~P|FEf&t$P_jDmE$Y&CC( zNJKt5bO*195MII)Psrz0h>Yo}sCQ3e^{C;y?+jgDlc8i_BOVp1WoVDTmxH8+3t4!E z5$^#b4jqKR__%!;KM)@TIQ{+8F0!*`w(||A-xfT3h6gY^v+A7!5CA>~2>Sxa06;0G zWBf|!V@3MFFZ20yApH&;UMz?MM+w`x7=PT*XD0Kt_k^w@%Zx4fi zf-UU|@c6^vpWq$_Kl|pSbs-=LAPiIl)P5scuO3s9`|3BHC}au3NBBzuJ^@64xag!f z=$Yl161xncePq?+aZT%VKpH?4t3gNd{mJR9$Fy<-*A;{Am4(uN`Ch& zF2E}1FP>$>dUmE#gzS5KRjKc!Z8Ekvu3t#oWH*j9j`Fz&F*!JJ`zG*bs9SE}Uxd27 z^#j~~g)NTL{m-#v69Do3ro%Ka z7f#bL(sHJH8_sXeoXtB z|7brx&~IYj5B#8y1l#YYEC9MfQ2%Fp34&e^Y_Fvs`3Zpz4!gaCK}UvtKZt<-3cP>I zf0PFbIwr9EnLo;N4fH_R_lGFxX|SKK>!3ryZoeC#=K%HVe(2u>y#&~PKig9bbO+e& zCk_t#VEWY``QHLZ_dOKhUl2Eku!)=7;Gp;aIdSuylDM@`Nnpt|&pY1IVauL(gRu2! zUa|*Y!HrztT*= z(SHpj;po4N2lWIFQtuP%Wtk_;OM`3l?C9+*|_>+xj6L?WX}h1hGq zrlw{V7@3oc70d#(OR|?6ruVQb^JhoF-fac^iyZ~Pzui#)`R5%41i$VmAozc?qk!OF z?OyvaAjte25HN=kC<2(LD~Rr|1_TFvX$vh~J!{-S;p*>A;Gq~5@G<@mUXHMbFxj6a z=KlWDA^RV^bo^%Y=@d{!3M})_mkw#nO9u&N=s5tk6kx-PVRnBGKbVsw|8mx_-yckv ztMYc*U;+&-Yilhh0N2RgeF2E>UAgvil7R0W=HR)vwV+j5 zSIaz0xX2y`z0i8wHA^LFN7OQ$HZ!SObE0#hla_miyH~L9f#uN)CA%5go%|!F&-|NP zm;F`Si;fD-YNDhnO9!$_U#=eGBD`0Tg1SIJ&vou$f8~?f8X7GhF@y2*nv2Z>==I?d z>xgufXeP#++;W|k55#(EHoGlmRVtNhbUA0kQ2hoktnZv->d9A~OpPVlJbBgp#LlPY z)A|`z!KW{fZ+Hj!WHrVs+;j_xm@%njmn~DCi?F8mS1`NF*i_}($S6gTd0>U_i&Zj> zwyDS0K8Wz)lGu3fKI?ImP}Y`b{>WWKUuNI&P>0t`EfR}f6sqJh=L-~No>OOy+(l_w z>Jixc%7Da!M!ROKUXvbo4ZgOfmghPQdMuheN8BwXiVyYwNbqT7L@ zEJipK9|_(K^8X2n15#Pb`!EUg%t zbh>ceAZTu<;q{3tm`-LTw>U@DDWJXVwYW?~-BCVMvSdxS#_$y0sWdP&zXC@W9xq#qeMc@)*d9>tKg_1z8Yi&m_|E3ZC@r(HZ7W}?ZMMq` zM;>R1l+3gn1nua~im%C9YP;<%%DJoIp#r*Jy$#f2TVz< zs7I+dEw04baV~fzI)7XeaW=DP^-&P`bX;~6jUFy23WgqeFsTqsZ6vSf-ez1xNBA_G zw!_gLA6-{}lirlJN5fQTyU@zO>E&rS^0U3Jo8Iyv+v8l5&RwCKdadX3uh<_~T<(h$ z*DPqFc&|_~(;tu@v2#4l&Ns<4z(qqzz$1Yq-!^@|z?_?U;^l@>U$GqK`|&R%bKJh6 z{EoJ=<^)5bj+Mb4_3H}K0W)WgI$Zl0U@7!go@-X!+;hFgv`|F{r7)xdPn|X;7}TJt zNE=*FMbxKhv72}&SlsNrdQ)E14r;aJYO0~sa0;~iJQ+>dl#}MdsxoRgWbiWMZd*X@ zW^!-!x?H?Sz`{FJ7k%5KoAnXnALSN}m%sQrQ=f65wlb*IagG9A<}lrVy=CMy*K`Ec{um)N+DIZkrOy)6< zNd-unlLi?gQaW;*E-FPCHs3}i7H$+Mn~o?()}DMJVQhn$y3p9HFukP)hj-NaeR zL#KC^()kpTHC&&EV`%-;yLxt(=J_0EJR_pCw~J}h8N3;w_@ZEe6fqdp*?+*OqNl?s zrp~?R{+cQ0@Pj`sUwj&R=lC8>#fk${9ngKF2E|VU@7jl$yLJzN3G2)R@7fzEG;}2G zb{QKPO~+~74jeCr^T+gxcT>b@AP(hY_7&2$y9AhVZW83pE4pmy#y zh~!1)n2vTtPQZwWh(+r^Z5EDxRi1sI|vW zYpf3`T~FEO&VAM^NBX{HwG$RPq9O35M-bKTw-e(05X>)WflP8YehY?@eq!w}?*i`> zzvQWh)(MYj4t+$Z>ob1Gx0T5LWL?S!1BK~`oTe!!LE|gAPVYYq>08y5cQKWn9cb=7 zn7$D?ORGX~w^}9go9nxw?BN4-q8`uE%O$QP6RAD zw{WvTsK%{iVxUt9!+DPywAA^BE0KkJ)@^X7wsVq@r4u)fE+}@K+k%~KKUOi9nR%p^ z`R;akXy1`KJUO@a@_=j@@mJ@HCa&dC6Plwn>_=;g5vI%El&ph9;BM>J(Kp1cDeuEQ zn_|w6vlM)xr{nOSms&e>wq3L&ixasvs`_m`Ncpq#8=uJ0dkCrmIo07=mUA}ex|F6S z=+>O4`_jL%T;?|{a~59@@|eKe(6Pmb;tPRKlQIPV#EEfeal{HS1Owec#%U%Kie*1QCFu4v|Q2FI~ge2XrK6dOFnwpAg zY)hh*f_pDSxp*sulKzw0rs^5}CmU}yb@MuQZZjRL1t)Ev3!wO>;51Jag75wv;uy*V z2PLr`bX25Mg!J3dm=DTLPJG8d>J3T8bhZ-!RaJIsQdt^m==nzqUpG*Fw^8WA9U6^{ zo#V(lciOA2VP?ok9&IFScZa5I^>7fJd-5VWj>UPJ?CP4*&X`&SxlYGzRML7teXVt* z?eJEm-nQ^Ua&fQZ&c%g<>5RTZ672}Db$ZI6!G)et&O@X8y~brl!$Y!z214+PUHZB0 z7LJ+tio^)6`GOUJ$knu=QI7h&mbI%pAH(L1cHS0}C~*~k>0T6TAe<_=f?tH*L8oFpZ856LnpeQM@{@&;>9@t=0#oF$ zUuQv-TUX|!gL81h;S$QhY3ckn-bpjZ0{BIT8#)aN3-DJ(=LTxQO9QYe7AMNQ2C<>S z&=Sg?L5J3%rLCGq)te*}55Ab|Zf?)0wsRFNEU^-=2T#|jMD)6J>|7byd-r&}ad0$A z#r95ebCH53Y$0~mZO{aMIcCIWXk3t6!>FrWz zQ^beTHaK%?X5{wC;di!v!-5Lk?@|MHUA~Q?aOv3-%E{qyDV*2&0^c=vqLzJBZp4$eG98>YOKdOM}9(^gEo*D$`P zNnX)NB)?R7;(bb*A{%nPCN5Nhi}}_TJ1^P8MVr#L$bfV-m6;2v40@rzNcD+A#+sYR z;K_Cpb2(-DeSky*f=>n<*{}Lp%qEd@v--LYHG7*xUfvPr&^kcUV8CuEc(Qp!@bQ~kHaDrGheen=gUk1AgJzxGtXoA0H6uM&jA?rLV{{Yt304; z7zhjynN4GJ4ki9d2`l!z$aQJgm1E#d>qYYu6KCr9rrka33C$nU)?d|*6<4b}xob-8 zo*RF>ki+oFnOllHhZY#$KD8wkXQuuD+f_brpb$A~gD9C)aAVj^te7sGc0iOwp~@<4 z77>7IvE}%Oy4-~5=*M+~q)obHXSH&ync}W+m0d~8Y1z&#Jk`*`)|@OUC6!=E-!T77 zsYJKGZ^-CY=-J*69IMT_Of}3@Y^=$Q*{2#Fojopg-D{*I zFEfG+*`IAT#N5AZ+v9H9%`fZ{QFOM3Imh&pLf%4ieRlh_N<)sEM?=yLLeGXzXf?Xl z9lsvLdYf|ytg>AAHK2V2J$M=2YraC|8xGI;!dd>h$8^p3XqIJo6Pb^CpA4K%d)a9? zE@MXHmV2qW|3ser@%s@aUK(Fn>2KS`k)9{MgC}2W_3<;l1EINWTAKq;uNL1bO0EPM zt+X&D5Y*q8cB)eHXkT|Xks;&JuZO)wMmk-#5e;DsS#m+}lLodk87{pk=p2YOY zYH8_c-3R%qJD>TasmcyGEUzyII<;n#tA^BtojyC-m~pC7`KxN4(*L%EsuAFt^G-TMY9DN$o`u{?-tTpzt!-(zr$1mjc|ya=skEy zKgczm;Xu4Tqf8X?RLw<4Yed$q5`D5B4SEl?T1(W-dH?X_I!c6_xsgYY%iCnypz7=} zM7Od07om(Z#LfB}3fTnEBHNgS`m0-vK}+|_DPx5RpcU7Sx<4kMK~pH!tj?Uz&H#o$ zdA~Z*(29511wmDNBVgf1aM6RlkS0?NX8Ob+BbBSH9Yf}@7O6&kzJ#w+KFP+maW9^Z zntPLk?c6T^roenWBC>Wj%VYVqaL5!g9P0lu5hAqJB1anRa$YYScAC7Gg!17FE%MbG zefIEA#66W0mYWtEnJKhAi-fFxEHTgOEnTlh+iZ~V^;qMHY4m;`XE;7qHAgEMVe+vq zM8@yINy_tuVw+u$g!EgFO??)QP&%4KN;NCGoI~OWOFr5TQ+Se_XU^yGI5zi@Q1OHw z>7v`|=`adDGW#Rt8cm8GeW@84C)=qv4=GMRQS)RP->#`fWQB~EYx7-{kiwI6`!@Ch zX~Ir5ukFT9Fnag+HdxAgWA?o3@80TIhLGzwIeAQmX`S&Q*Ut&jI>XhX%~5mZ`!D?s z^bkYKAuiLa2DRx0ye;fp;mn740_pWb$Q3@`ZYj)o>yykadsk{VGiWVd*)-KvQKc-E z+f#nd%I90~n`523XVjwJXXQNa-R=5Vb}x!~IbK(`8R6UCJy@tLli#^3pBik(s-W#? zCR34akoRdPvsYulx?znyy>RMItwEFSZ426&lIgWk`Sa~CRSuW=nfKWd+Xs#n*xMEg zb|OlG^c8!{pHtKf^fr0bGd$Y%@~SL6P;-7xw^g&>o4B z`MuYSJH|EaCtlc;4byoxCceMdcuBYCPIbe~CDKPvSXFYF622VZzrGGB;ITV-{q^WA zdKG*1v5R!10m8dip6B^XGP~O=J7kH}7`2 z$Jl2WkSk~GBpS82Rq{4WbcVMZ*p#RW*av8M%9J2yR{e%N*yor$$2+)Uj%uKKbkDAd zehiVNmiO9;A$KdTa!@kH{j?re7EyeILzcog+e+$HrS$;IW;Lmsb(72jxe zyRld~77f{b(&d{v(w#)%q$V(ZZDs4#(P`hxdpb<($0a$+Rask&3pnT222FV=^G3|k zn|HMOgDpC!$lnutOqqQuIY=>du|&YZjIL=q8Le&eMpY#_Ah9<4!X^3D2gi<@WXv|Q zZ&I7wQGBZ9eZGcN%tL-v`=guuolS~`tR3kD*ZXhA`*&|HtWLk((cpBUaB+_%tx-m* z-8fEHQ`ErzDAL9(fFmF26&aB*j~6#>Wtb^y{i>Gi6!f3ns4 zrlY|tvLDZ~wOXb|S-ZZqp^@=uuB1H%P26(!w|RMP-mts2r?BWus_47k-CHIKlI*J5 zcRai4jM8VV=i_YNUgl~MATstsN_$-9l$J{mj%MVPeyznR-5RB3E#32x?E||G#{=i1 z;^dba?zeLA)wA;_8c+85S95rn`8RQLUn*m*v_I<4F|QL^s`gHkD=|_nSVQm-{m~+0 z)Y>qzZzgNtW1(29Y#3FUX}zwE{;E&C=6fyL2G-_omxQ{UGM*c{tNN?VTKx?<&79os zMwau7%dxp7tIN%sG~8A@0M*yqf(d{&L=!ky1sr`05xs|nA9-1F()cuvhYOsTc<~BI z0CfJr&B^~IHtllaocmRSqTjBX0V6F5rerZVqhF~(yYXdWt#(aBhw2ybufYy|7@GeIh@7hT(Y9gnP zOJJVHV4l%?*p@PumL$YzESuLToaoTk4p7PDXTends$fZgDZ~&U>ECDARI$`j<{6W6 zKSXd3^hdV6BL%IQ{mfGBud+-8%t33XEcdZ9b!=;V1fIDAlsU(1!}qW=3((jUa0u)I z4J<7gt&%Z6UfuBH`g4|G(JVn@l*s_Z12m?IrIyis)*x3bJg+OKG(4RhRJ8i8cpp^M z!cjae0V)>gfQqTnKn!35**og~e+Z!|#%J8-Jr7pUcE1DuIfN$Zs(71sEf59R{Z0r? zYwQr3b~qt4?I33putI3sVujGO#SNip^CyJn|HiOpg#SK-ruEMyE8g#+$E^QG=rK;- z-w&bb@F#@kpAedVLTLWChtPDy3Zd!n??PzWV~5am#0sJL=uZgE{~BNOe{aM<3HQ$7NCREUbg{VOnV#r$WIc`gV6X!|E#|hppUu! zQy^_KyRF#3sO-(^|A7}FlfKd#>eOfczxwuc;Gib?;ozV`q# zjDF(}`|^M}gvP()XZ`L27MSbHKkPpMEFm;2ozXw8D*#p)x$sBGRYma4k;eCKnC5pV zk?)^Eu08~PGR^Dg#B2Z1_%-CJGU#6SsQQ1g0fZ2H1BeRfIsP|PXX09`#D zw(NJUb_`qg1+X?BfU?ht4>;+)Evs?TzwD^QN&k`^hLhgwRRvCZuWRL1*s^DI*<&2} zF4pD>j0}|E)W;*c2q(RVX5nL8xd11<$BBHL^e?LNG;!rzocg@5%pSv)v!Ze3Ox*Nz z8Mx``(s0w$rQ)Q2-jNF6%E?u@a?)d5Iq@2gXJ2su0lUIYP<##yCjr4f1svL^a0oFW8lxz#Cg?}!HB}!! ze*EEx7?Gi&VU_Xm6!VxT{J@QPmjWoh1~@-|0>P)>17*LTLAyJF_xy{Nrp&VeG;x$W z-f|Y27Ph_XzCAvK4r}V#otEy$`+`2uTtVR7Zp6-DNQQ@pcSt;_L9C|gn}846LS$zP zy*|N4w?k6LV)0np;tBX~rOTM5ah*43oHM0<1>KB< zp#`6OT^bN0B*9abGDSmOHYd}7!^;lf;b@Bx5`D14)M7hkvpLe(ywgODL?xO6^WI+Mhda(K@9_`R$=+r{Zf zwdvKu!&OFwptJls$}gHs^nBl!ml)bY8W{)HfVaZ zuE(kCk=t~P^A_i$RfA;W;V z%WP}lRpR6t9B!$3!BclHn0C{d(NhnjSAS)n^uJ;p2vUx&Kg=h^*a zawI`a)ltMN$KgH2W}cjAfE!eZysnPyGAnCK{YQ$jp78XqgFRZa2INCo2RnD86`@@B z9`+zT(aRMpc%d&)Gmp9@<{rRPZmxB13_Cfpml;S9D4b=Ij=q>FN;!A)syofHVv!}v z%wsBkIK?J=TAwn5p-cue&80}b&_AwiaJ{R*orqfAb*5ul#`@l+K0Uryos~V0mY#Zk z6?}lIaigM|{SZ?&auv$YMVEg@cU`zw;FQ@7(eFQ6CS!>f+NU)f7Y4Gomcu+V9BHS< zAD>=beso^QPRY%$GelRLq?4~U9j1o9c_H&^SAvR;r8j|`MqMg2l4p3T+E6CftaO&k zvHF?(?n`;MI7*?VMJb`ucOzvjZS*w9R<=0PT|YJ1q>`7@^0x2lZ}B9!2;gIW><&5c zl0{mys9V)PvUoe&Of1CL={ZvT9{D~^DZI-2w&S37-Su*_(uJCbMoP5~xoHHEJWe_? zCuuzxM1uU-#I$v|gkOq~$6@fukdcCJ zWn?5Ar+w3UG8l@#4USaLesY{4Ll}X~dPn!&9Q?QP1suCZ%TUwlj>lQgchx(!wE%nfykP;`~as{1KasMCraNf0jM zSs64v_Rf{Mm0MooOQ1Bua67#+LF|i0-7_xbhmRE23wk8hG^dVChTe^kTGKFqrU~HGhI@>t5r$iQ*0QX0(=2J zc4N)$0VnU88gc=4H}|PbWYNlMY~T}Hw=5U``!=-P$id58jVbIPC40(C@FUU(Htuwd6seH}Pc*!0X=Q%PG75}ODgU_i)A!SE^<|LsL zQ2aX3mw7<&-S(kNwdOZ9bVr-fXj|t6U810EfZ9)s8S^38S ze}oWMxdDtm4z}xO^{!QNNKi+%T%%#K48A$yPE#?5oJPAvtu=h(rkpSh@6A&hBA=ca z7Popnb;4GJi`9VVEIKylNz2QZc{67#+T}!;%s6&$@cD0a=kn%0t9>wamc`i%-64|d z6gA0oiP(R;rX^ra?1IBh$8XkOj8v-2*3@H{UvWSK*viZE?Bm+$%f)P@65T6A#QLNZ zww?Pl3`Y&N3bvNrcsZh?3Jj*3wp5(&>@*}-a5*E!FN<7nxZH-n7YFB{sH3Ex=~`tf z%*lp&a-d78POy}r@)m>3@d^u2X5beo5vxpm3H@O1oc-#e z@I;G9ux?vrNZu`bs?)9upCkDL@;<+OS>c=KT-(>Eq{bk8v%%3|)ad4s6O;VR^#Zf! z1k&fOpwmAymqoQb@?y24%FEO#0AAZshebVfR%mNmuO2c!G%J{&lvHx~DIMYdzw7FE zO25iH8F0G&PB`%p!d_(S(x~E=e}ThCm~?R2g@+l}Ya@F^IN?gpCcDgQRDz3dG!ghs zj{f;#BDCbeid@Pu)BR4t2RSQ=oaaZV(_OP@Y~Mx3HLIOEgBVyp@8FQVF3j;TW4hle z_@H3oMQZkmaR z*^E!_u#_IT;HETMX2P2O5WMm_LMJl1n`x2mI!rtZj-ZmZL!KIuZV zYJE<w_^M!vV&UYs*B`@HNgDM}avNqEcmJZd@jWLBG=HVKN z$&eBab~LQ0QV-RgR^cqFBe3rG@Pc()pQFv`iNot0UH$u^u)VOj%e_Z`rs~}h217AC zAX{tJJO+3Pxpv?&9vwu~9c!t8=xBt`vC!5R$AU0agE!_46jl6k*Tj8Koal@gFj^N;}0I#z(PM`Qf?h4giiz}gij*y8l&j7Pd0dB zE7lTt<~F>~IbQpDk8F7JlWg$%E3zRLcncb%Fa&^9;8zeKCo!DcKsOJF0p4MBiUCZd zA6ybakfJ2cKsN=50)qY>i9iL8y@A*yLeM^mK(zlYY!HN^`!Nyl6GeE3g(AGeMG@Zq zK@t8pE)O04_b5W(&$m^M?@Ks=e`5)Ui{tlEgpfZd!XFgj4~p>Ljv|C&p$H-W4n+vY zMiD}>P=xn?P=x;)U-N$jMF{@s$2hI9X zsDvKq+5R`661w|K}$WsxcPVF;O5_v zOZSV6n}0_hZvGwlIQhS&%l{`-LI;CNym^)LpP>>uzf1#Ne@+9hen%x-{}w87^>3gO zM?l-ys09B%p%PKQhf44QnC)TsB;Sv}#5rY+V!+fo``I%*1&7xd(7`fHEcLy3D+Q@O z1bET&b{L9p1SXDw;M47|)b~~sJ*GQx@GjI9?GmSQLhHiNy>f_b?27n7F1AxAH?N`w z2a;P%(Sp-iTWRaNZ`^&YC>l0XX@=b^D_3_aJICQ&3w_Z2pUU0M{huA^xAw~LW87x0 zFerXD_(~Fsi9vLE{~%JyT6WTf>)S`&t2IJiP@W!cvp>`s5gj{G$Z|TBu|+&FHdB?5 zo)AxjEKacKsry(k6@!+zl+k;ME*|Q|CsH+c2>DB9TU#N7&q<3jrQTn&Vz@he_|#0r zx15;_tgUM~?;d8^AMxiiS~{q7>z7ieC&&9P z_1Q5w`CVHRvP$BTjV>lh?P8VgW-E1YA<6g2E$+)u`_i+LD>72rduHMKx6F60L!>E) zxenHw%J-Fq=XzOluO2xaal<~!w2Rey=2U8_r{Ca;z#ZG)FiT*7nL>#@&`Ur zZ=_VsKVuobyx2M!3GH)f5H`rvAnCIE2*vjSdo2!gblSzeE!}FE=vmJz&@9Lc^IexH z@pd5Ir(w6Zu4e~v2Bpe_Zt387Y35}cnKoJ7w)55+s{<5e0nVR8$(@@OS?YV7o*uD0 z$4utNzZr#w_EHq34}8v>EV8G)d?t#xwH2X1%Kmq=?i4yE8Qxq^u=^Nx#S$ThF8>0A_SFn&abZ@ zQ_WtNiL(g6jEE+s7C^C*<4x(W0VK5>7!cU)1)BZ@`aeMvCWgSGw+Q`}h z+)HM+x3EiqKJtBFWyyj4wfHJ;2c~>h=Mh@hnqi@gL7QSr8nX1|n}&QHrL`t%@x#h! zsq_xZXuGCOTKS2)bISRwP6e#@?tHU8r(E--S5Jc#yksZ-EmK2KM-h{#rKj{^`z?zs z*j9v}#Z9Nx=j*d2LNRs_C4T=1vji7*OeCbaeEIf!h*El#e;ItnEomx?yKp?LQckM) z1{A*nb2u6Vp9x^xTlv$#to(Tjhe@pJR^YGo-XNQ~;6ZpU_heU?k6ZPL=l#>uQ7rZK z7VsdGw>JsTJwnu>(NDN0O%LB`dz;1}KJSd!xHL^-x@1(7WV1+QoEhG?t~8Yy+ME;F zx9&9UKS56yT#H}Gq`-1E^@Kn@#2oUC$sSd^{SM>LpEG?qq{^R zSt1!RINfFZg_}ANFI*selbX6&%<7&hMY`&7Z<~lD5`raxp#4!R0W@*%o;tTqiAV>(<>-CxY#Pxm z0-Yx}c4h74|AdE>kq;6%jD@kk!=VoC&}z4H0ub+)7K ztsj=|ol)<(P`ns9FOPH?6Y+0|pFbhUEBy(9Hypm`DOg9qUcz~_q@CQ3I$mySQw~-i zI`<-BZc56kG^uUPc2cv~QO@i`-?W=6+H!oYiGr=TFsEK>HPR1?y6v_&mvE^wY|KAg}fhQr~W5fRi6RaE4++gn?! z=jYQ2Z@5%fS3~9(7nyeP(D32m=YD?2PI_#7MoLIXc%v&SgnQ5g_H-XeH11|7ygSHq zqH%mYhEU#R+4)K3!w6Vr{JY0$%%KRY+AL?a8V@*g8#C?O{8Q-GsZri5WTn8af7Hh) ztA~+aIY+0By2W&q&(g}Z+pLJI%?(lop9$vmM)6U`lou`Z`z5?g11gUIL+$O7EM``p zDVldDioJ4=Q99WT>ooJ+?i+}{U6Q$E^^NGhyZ<%23Uqq+Cy^eo8>g4Z6Pt_OstzIL z?83^U7RgOrSvjD#JqHLqr4~_I#SPul6bYu&hY<bcwo<#yn{8GD=6pM%F2DV3;AsWJJVRaLZNs z^U1G>&_z%AHVAvW)+l%CLimPvah`TW)V zh>G}|VVwzv6oc~nJ93|SQg*D~EE5_{iljqheVaozh~z69d?&j3{pTDH`bSuz&IURc z&NuTQshmG7eLhd~qH z<3Fn+I+t}?cO*`u;r-XG zlAIS05lJc3eC8au9=c8)f)L)ELWZBEkQ}{G+^|&Zcg{#}@y=&*#vPmCaBnVuOC1po z8?|}VVO`=|bmd159v-J9k4))<;_HATS`vo(V*P$p73eg-p$VX$9k#1Ps>=>Lzq;f5 z#GWa`L^Dh}S1P|tMwIAsg6w%q>8{%F7decsnQrc?210VvMaIkbcd{zmos0(!xzjfb zgnW8i-xH_2jMtgv4_H<{F6Z)E`R$6)OVLLSKC(V>wK{7~MVV(pFymE}4PP|xu zM#M<%yh;7a!cFat_4`IqWi@1-25W;+F-~G@H)`FDWvD`?LmM9ky=Z*c_pY(O(66x{ z8PS+M*eU3%mk@5EBe$ix6NFl}D)4G6iC?vo?h;SaYPB#q8m6xRdqW$4i5sdA6=W4a zRbH=Bz&P1;>e)AcvZyl>JN`$IvmCtK|EefAHe*rg>L{+OSxKmK6n^4yorYHjQK(yU z1JOwJPmg%!<%nmgJV%+=T&AusiivlAZbPg0-D2sJ>m_7yg^+PStAgUkgAJVw!Dj<# zF%2EOH>dPKX|gP==9A_mKa3&cExkK;-Eva0CL)IC&T~#NwfP$#OI^*amx|&hF<|pPka{=xJ@;rs zcBIk!v{aw^$O|vCKN=9}mycW;be9iHynbDz@#B@w-h)a(hv%lY?(t15@O1WSJ4GHb z;)%G`3|^^9R`4cr73}maav~KwS!fX}@nEh=4y_vJWiXzfDv{ceDkqF_q)FD3>3+j&zF9nN50(1 zoPX_c(a03;Eab9F`^LjULs`Xn>Y1d86(>5att53W z=tN$clj#)E&3$J0Z5QH0*7VT`&S=3C5Q;wk2F^&ca^}P^lAPBc|NPe=a5fPP7AqA) zD<9blA3TDIeD}ijDs5#m>!T?AXLKJXWRH_^X!+hul7JeU4dgyPdGZ^)U2!Wlo%e=A zg1S+qY!naP}XeVt?v)zzTRGOsde3$AI+ zg~OYoom3rlIK-wNQbm$sH zG#UpRdOa4yYe02mYK{(kQ%r|w0;Iqm(G-KF^#XWGBL(Slqw>Z}I0&j`>_>eekA{fG z;zWJXkMtp(42?KE@Uaz00y6iHIfGaO5YafCW6sDJa*MvLFw^H(1Ck zP%j=!&+ObQr;80&#=aO)rDL$HY*6hk0FeaM60or>h@{gM0v6LRcd1hEg4yO^g?>r= z>(DO=K<+-5MO6h6O~T=_Y%pAwABM}C0@d=sZ0#OHctCT>SZd}uJWl76Sl)iI3s1=g z)$&1Wm#P2)ul8t7@ej638kW0jx*3b4@3bazk^a0Vxv?gI4D&Kgkt>~7D`o& zg;EvcqEtnHP^$lp%iBc%9;GV$`E3^W_a*4Uzq16*{rf0Y*&meZ4@&h1rTTA2smifX zsd6^s6YPyhY?LbM4@&h1rTT+X{Xwbzpj7|=K&kd*Eg%h({>2Y{ zZ6F;}p5!0>qXT4M(r5jHn##nKC+A0f^nff(e`oz@FMS{zlm2J^20#u@c?^ME2=;hw z1mxk|Z^l4API*m$g1zT)>^u8m3ciWcgs`{&0J}KYvDq)o%!1VnoaE5t(hX^1sr(9m zS%4FkJu2p3z+Xhz@Rud%i~l#kUl#kY54IfAffYvvl*6*I;>>{Z`z5S6G@u+lR;-CF zM?5aUu@^~KI))=xmEqWn(k#cZ7nKdeDPQzm7>>Q@=t>-W(Mwoyc|bYlS~ZTnm{&Cb zu3U>#znHOF9DA|s^>ny$15W*7A2$NHa?>?j`6EvKVmq2~?RB)^+Usb=sb3sj+cjLd z{V}fGQH3jaYU0YDezDgzhAVgfVy_3+o@F2KEBs}SfxlwLy2kz^_{;p4iEHG~i7VfC z_$%^n!C!p82Y>B7-A6&&*zgzlbpJ|!efT~4OAj7e9W+U$P@DjLGca2m!Mh*e&gO5p$p2@$7<+~wv^e} zzG~^Z%&8vbYD=3cbiUxECZ)9T`#jx**xN0ThVg5X8un$-F-tDk5Ngd77U^!|GE|tK zIoG~AMlc+Uw4`r1&Abitb?8$(jQdKk#%h%QdduF;qD?%&@7{oENDQsWhSl1z(G%J; z?9QD5_fS1kA)nlZ^`=V=>(WP5zVfE3hb_nIB=T9mRp|+!fL@rqINZIHQ0ki;r@QUv z-7qOZ+VaNg^BrisYov*D(^ipQx}}a}A4Q3Qc&(3rXj#2?CN0Gyu2igUg)`BdLnAg88FteN0(y)XVptJ{v7d|xyve5D;_l3^F%KQOfGS+MJ6%OjqfG*7)ckD9jRYtyJ6w~2tisJ;@) zz4N&Gyw$<&$4@9bh|lsJ*m+D{c;!g;U`GHktas`Z6d!zL0_re;%n1zE=RW!2B|6TL zG~lzGkhjD#BaPfypwOmQ1&YrA>eXXbul5$zYB<1`enLEUbQ>T4QeNnoY2cK7Y-;LO z_DWM=6cnEpRBnLa)9fkZ8YQ4U1ZXn06+rR%L8V3r{z)vQXD7MX*{e88`9wrGzFOwo z<{*o>)OXZnYu4z{xyrlr(kZ8l@Vp@H%?3vjfhNrIh9iJk@)51U`j#k52%jML?EAvw z4Uy)_Koal~)T0F-zD7{57F#d+sAuj`DlSi*89pV)i}?JF*H`xT z&9_1B0;zkp8nKTTh#4PC5#X%^7*^&6U+y}vOM zwJO7V@nxtJ+~HCn{})tMO}+&~U{ikJmoDBrdRvIgMt!QRMeA0oa;R&!2Jb-)%G+2f z2URoe)a+nKj~ye|fWh4E7eyg>6PheEG@_g}uB|<2V4B~tXX{(%NF@o7S8@^}au$5L z9nOdem?f>EI7F(E8Y` zp2=f(&oX6W4p0o183o%RON5Q@L34AB%8gBRBoZMy{b^@6Qp6XrGxgaHMcs|$X{h?f zePHk2@J0kKpo-0+JT_6$Fy4Vfd(C^oB`O{xvq^8CpJaeG1+82G zTif}SmFlE0OjR-Wvg@#TpPGWA>=0b!T-{6I%sE=Mp;=ZR_xabsZ5tyJS$c(c?NQfR z;AsKDlV3U)l;Nlfh2g24HR<`m6l5P)j{U2-u8Lk*R|BwjGhRky1t*{b3|9B@q1mth z6r$#4Yma*b`Mb|i5+j?=1>0Mu-PG>876Y>@$_BfLnb!+B^CrE!MXG1aY4`8XT`0|u z=cE!UJJH`;BTxCIQc>sLBkS9Xssod(lanEWA})?ezI+*M62~)m92^ODCkw|hMS!&@ z-}!!LgH7L79!llF0$1jiA>8|D?^fNr{CvzAwfgqN_txEe>i63<5`OxZPr+L|oMdyA z(p3s$M5q!o63BnoR(FrAugFj_;Juwt`l+yMbLYpy9`*<>@4DmCzRbbA|ClwpqL0y4 zJ}pZDI=;_xfMawJ(e{4~wPy~`16QMbh>nxnj0-<|5f6^G0*3&g6EoVL+&eCF#Dwa> zSxTFDo;N}e3KB-jVM3JHHZqnq%xXp}QOPikc^2wL8Pp=jo`?&a|D>u7XIrlVePEgnD zuM&0|(kZ2*$%8M`cEulT@=mM|rRqVW($p1PlT?(I4;1*+3?R^D+m*((W+rjn@4D9} z9aNrLeJZpOZDt>m>~(iVnuzWaul2V-$d$VH@K8*#|LN39^lk8gXwVVebmJ>}Fm*u#3^+~OCOqTg8S$|ElZ;hmbLp}}#wwsSxGE4luHYF3t3oaby9DGG zw%7Bq_!7fwK=Jy(lrzaD%9w{GPumHml5%ymMlMuj-B*pNwT;bU3^m}c7_V7Jw93rc zzjjv>=AffWVg;3^=2>KDKs+ci7hV!>5M2`9bY4N84XkXym>&cGR=;P;W&#bClq+Ne^t$%pKH{jL4#`3Edr5sCTQ|2T&zTaQ4-BOB*foG3YBO=Y7HI< zOX{0F;)1Ew7eo`BAaBrZMNlu|1vT^LUIw6RSXmC~b9tAS^#x^pys~9oahK_%-lWn4 z*5)U!#3s`@b_0F)Rf}XVWwsL!@>aUn>@^m}ZD-kIjlv@V&4~`m3$quND>Q;wqN4nt zaYwZINVFE3=cN0EZVRKhH)y~?$Y|4VIZY8tXIbnd*s z=w%HVn%6OTc9*E1z<*x)|z#ljcD`8CKT(N_HURaSNf?JZR_T5(5%EChc_Yoo9kWn zmxB*2Z0xR6f6^;awO_c*-?w|q@VI%cLv{7~lJF(>sM^xlhZ?1N35$zv(knVnvzvv} z{_WrTIk?%bz)>&Dtlsynn7ho?RV02k_oaB?T_@dbwwuwd0lC4oa?j4Uo$K@H>5yEIO- zo#Vk@ULqp{Yjj-SKtuDA9!NVxsae4KN_d4AZH|?;CvtJGUkxZZxmek-j7S=Dem;iE zH~u!}%I$YIZnfgJ-fN{Mcwl8;XCw(hA3Pu_ac4fyL`{))YV(ndRn~NYlUmv0w33bb z+DtifW^dl&v;3q$N?BA$pd;Ef2q|%?9)f8v7=ydJL=OKkxIt&+~rY@g3iC&w)Ds=kGfI`*K~^IlmKKla&@e zRF=M(=qK>ZWa|y$YxZKOQV7xBOhH{y`<`YaIr7vlJZk6+pcJqADPnN(aER$2SK z6=%IMC4{j))x=DX_}QvdZmd($w{TkQ`kT{hZH2|vrHg+qiuTJxaU$cY!P0!JIO{1= zy0>4^gBHHdiy!tzIh>XRX{?)Pm2j;08G3K}znx!pe~lt`*w}g6SNi$K_soU3Pd(&r zb(%b%)LpX80!7kpd`jW|mX-(hNA;Y6#+^QTx6q=m*vFH2el(LW z!J;qQD1H}oi_54u1Ni>OR&)FfNT&1fR&#N0t2tG)x7DZvZ-H*YtpuMJKw)^;iHlzF zt(&N^$_pyOy+{uM!e9R%1m-qoA788A`|E41fzW^KCwsp zhBUGtQ@SSqgPQPX{NMc(YFpYHx)jZSY!|8jiOtj6ESR;&jD=_?X2kDx0hg%ezCI0I&PO!V7NgYQP^wji(6p{&^v4IUH=cUpThD&P zTmGozHLAb-cVA@rK=?gNNE)T~sr8XRdxV#^IN*87c^24~&Dr8tD>I&C=oQYCMn4}B z>Vne7}@2DlEw z(lN{+x}szLtJvU>yT3>Ka)TK}Odb__p*Qjg&kLh+UEYr=95~~;vhjk23Xic0MP1CI za!y_UwtG@*P1Xl|WzuC-yjb$LD6YFn?&ZjYP7c(Pu4?OQ4K$Qc=H-P2E77E?PP6g$ zfe;C(nYo^(YTr4FVO^ZHRGafsyNX}{=6!b6L${E@MHOt9o7v`royNh~KGu5(ik#z; zA@{PB5cXN+HaY5ZSgyMJ%lamB)vC+VDenYF6Xpvis+EwFA7eI$bmEHaVbt7K^)F&u zJY9Lr`>J;o@?yG>VhHTmiknf?O(_im1@xWWNWyqI5o0z1^y&w zLDgc~CgZWyZ9Y`{Q=IL|Np+QtyOAf&)?{+;MVn1B^252O(pJp!Ty|rnVKUIZ0l&wA z@9&pa#_ZJ$Rqk>QH(t#Lbok+l+KQhS1~Nt?1WllIsY_-Z2~|@VsnyeuTzE;u zq@%uL9`j-{pxR%{d7Dd|c&rQt1^Uu@6KE1Ra!e@D<})iT?)T&Ecrl#KLuI*i6I?Mw zVr3$fvysUq$X$hwWHuVvNE6u${pw6QxuJ9oCAk-TV)Z!YrAPQIm5-o~ml2P2#@}t4 za(n7=VN3J6Qoq}_K9ce>eI&`4Ce@-{-wMG5IzGX_bycv7a&D+2%&rouO|mP|-kZ}R zUExU{x_WxNn8Lpfp@=jK#k*hCc|7L9N{OUA=3h7Fp+GszN6<}s*m;8RPbV7EfC11W zfbk6g)&xK@{RbX?Wq&*WtkCqd$lLxlir4wSyuA7jdU*{T@bW_Z?dA3V%y#s@#mlSj zkF8FK|JPR6_it=-@!f>@j%ko{2~TcC~5zJJPgKs$&f;{p5CUk))2Ko^MR4T$x( zUzxx^_?0;lj#Vsa0(@rq4i=1e#u?K|B3Cw^t52mQ*P5cc~2qy5VMsi&FqPtT%* zavFdC=s`KX9$|P;&d47=q|baadPtvj^~WK7*2~F5`fPsGA$_*j>|y=4`Kt%zoHL8{ zhh*F3!}@y6A$=|t_K-f;aQ(2}5Pw*ozkOJrzx(E(oCgA*IV>MJtXCsBtXDhs7d_cu z^c08nZ>bOK-_ihw<&$2AWrn}#PyI!I`Y(Fczv$WiqCdB<-yiz+z&8*J06O!>jD!K- zLCgRV-9h{^$3J+YIqi9(=^?n2iMCED@x&t=HViXnqvKYdqe zc*sB9f9iU`J0AucVejh!gU{)|Q8Qb=c!wVaXDyCjMy0vCVQW!KPR-+wJGEY4LfuTv zJGZscfoT9uR7a5wqoeQ?Ev?Y_WQ?b=L-dJcl!QiThAw%uc!$^3T)(672G7s*LgbE` z24A|SU@3qsH*%vjn_%j2)~-I*bzLFgq^O3oG|7 zM9Nf5B>8hhz)!tWs*19hxT8(Vc9&;8+EEK)T9A6*&?z$lZO{EK60x3}FY{@QG+la( zJ5H4c)^?oRqedJYg%Ow+mP+SwemgV-34cpd$;=U%oBOJ5`_YJXT@dt!{u^{8)9LoJ zLLM+Cy1Vp2-4ZxvC({z+xm3FBPVt8@XtWNw)jDh)GQ{2?@NJhYq5YX{Km0+r^Sd)B z9&|#d&)VRHZ2cau*WI(b31TgX*rFhloxWjYC(Mdr8(G!4;Oc|z1VL+mJfjGGD)&fb+y+L+1&b_b)f$O%nQ5mZs~Qq@Hm5?VQodW52Ifop-gdy) z;-1)i5%qCc0J%k)HWyBqKRRI5va?h$X$H(lnp73yv=(7Gksdvx?)gXq<==dO zS%pnGXjI44+0WTLV7XXslOctR3@}{GuDx7&Nj4dA`FZU9%1h86iiMXV+P3pq=0EBe zUYZPHDZF%L-6{i(HRpARs)UUthMqK-svWt#oKQED7@D@h)5cORG4y$`_k}VOg{S9qY4(Gt}4JXPYzdmIztr z+b?@=RV&|a{}#M>Y;EL61^Vi}+O4{}q&n^!VaN{;s(jzghu_Xpiq8Ig-9cyocF%iD zPi-fXJFaEQIJU*zY@5lIh~yF!GE4>lKR}SDAld!b70#OK8Z7=8T(2dvt(4aIgt5?# zyFoR$5qMrY=R3~h-(QD#y*SEw@#wqsqt9z_r*!6PbU(Dp@v`{NHLVSAaK@~>e|tN>Cel{s2HG}owyl?qe_%D^{(X^jbW%AH#BJ6w*d8&P#-@cley-}yRE^)bq$B^#HJLx&CmQx9+ITxPffd>w5 zuksJ>n3C&W))qr0YO*;4Xoou^H2pZ>nsDZQ?q%JWTr<#4_u!S_WwSHKC!>n|){ZpeBw*c2U0AoO$ze!F*cT}14djAlcF9)5m(+Y8GOd04E zMvQ$`~Y;h~Zc%g}gvws!TYa<=daEU{$c#ZZ&S;CDkA%gwo7&4Is@xZn!Xk)Jw zD&Gn%W{GrWk-!?%=MvEu;78@=#oUg;Lv@>KlQnEd`%f}UdYpWw;^zC2Rrh0Oc%SWj zw<9yuort4-r11--&5!O19Z~lkk#^nkr$zMW(V>(oQO^xy-Ew)5n_T-}Hj<7U*iClX3 z2b1Lb3UqyCtnA5p54+pi8oS$e5_+kv3^|UFhmLkSLr1I7o{c!@mM^QPTTqgRYfy8j zXHy3hu}D&ve);}d6d!(6qakyAX-=bQ>`H@1^LW{dj#?2=$Ne}jB-hT4qd^Z;J?S~L z_U%U6sqiJU2g=Z`Ny6_vO^eGrsp~^JJ5O>;p*#BU<2!2dm?Rt3Pjw^I#G^1iw@Q6I}X+FHBm73?eXB*%^_Q<&mL$%PM3 zY98}vUP<|W5J>g0U9UF9fhUUp1AL4^8A zRgO{B(dsU1kr6At_@_AWR+-_DSD9$%7uRc4)YALJj;~c+Pxj8Y5IW@)ER$^gV%WG- zv*0G>1Ljz4kZh6ua%LO6Iax00NKd3Y>Rm*>0h=~X^*Ym-*SX?*mRI;07l_X%*BCwf zfKivAhzV7Z6_%jX@#1Y5Z#4m z_sQsTht<3DP-&uVj)#WzzMmMTv&0_#I6;PKoTKivEiSJBk8Bo{avgTK?28 z-rWx(d%4!2E7(MQT%+F1|Bi&|MD(2e?ObhHx2GDJjt`BVS46J+<=&YK@GQ3#PQCuf z(IoSZ26!s_gV5V_zE>91>D|#+Q<^@D3ks&zt6TUM{V0j0dDk6(J7wyTqkNVW^-b;V zPV?Kx*!&79B6{CNe|M$L>SospFRmfbWH0}x*6Qug>a)?=CXs7A7HwxsQgf&-I$lbd4v9O zeJ=kLz8OQb#RI_&Ha)^uAVyrJcN;eGU;675Oc-@aYYjSdHY2YDbBFX4T9N1^mCa-a z2Vpgw2X)ZyQaxr;omYn1ZmD8bHCVE$o1T>geSG0obECuErQ>5c?~_Ut=VGaWNxRRB zX@ikSh$=$VO}p?a8b{TSzuST8nX4G?)K%}Wn{{E)S*!0v3y`e#sKd8EsqOY+5>{{E z1JgQclJQk5dgQK~-k3SYyT-JsV=z6{lp!5UtVjVCJ>6H5R1FsLq7u%io>jgJG(yMOmR*EDIGm8dE6@qeiHKYH4L9@6z=go~&AniK>L4iNfSL&KsUc{gBI~Lmgm^_M#DtCX3b^ zoT{m}SyBD8$Mccc(P@v|;ymt-1uEwi z@jSU)SRbA@Kx6eI0COkO{Zj;rC$x6%QeK>vp(JI{L+>=K<5yVd=Lo4IrZSW5VAVzH zds95$V8JrzQzM~O$!v$nIOhTFnf z%3W7=*BNW0fy>gXahlH#mULX`4u@Y~?51%Ztg6O7*WKQgjBw2JdHJ;#+0>^}9ZeM21{y$6}(6nVL zH{34CnBs0Q9lKy)#qwaKgsx#Avq$?DYIN=XcLjADJ@Yt)>dp(dimYhO({Ci-sCv|` z9xT&_jkP&0(U{qL!ilzN?9u~{2a@Kb5*EEP@m}J3LP$ENgsjbwe4Te+oU2H~)sb^& zmG0*t?ut{QahG-SaBksicpmsM@9)-ZExh^8M%=cu$9do>$FE_*!g0FMC@lV@dZzL}!aqDHFSH?x07u z5b1(@;Wrs!rqfL($;l2|#~n_nP))rl`leA7Xv15n)IEPOzW7c_+&4bek}BIm+X!@Q70-3&&3~Z+e_8EH#rBe~5eDGtS)qO9P zb@b`IKmpPB46?p&nbe;h|LA+3;Q|@Gwfbq6v%|jBMQtJRMFSJ*pD$gImp@jP84?g_ z{jr~6#wjRxn1c235JgaU6S{tVJt6j(guvMcQBy;DOZSG!k&VOAoXUewZ+@Ss$@IXy z$Md_?YVAVs$|^U-4DDyHjmh+Qsn48M(m5v;H1n7)l~v}A&^V{50zK=e)=$ksQOvS0 zXYG!du*m1n9y`J(<*oJIg!RnzO5G1E%I@Z8dOc(*Xm(zAOshwX zJB5|)a))JiCd^bLNxoQUSJG&O?@?}rmu64kb3HhZy>uu+~(2{HkXOY# zAJX-|%PzdiR(RDY1`_t79USl(d~E-sC$2?r*!m!)h4o!?;G1&Uq?RV$S91R_TQ5#} z?(*JGc0nuH;yQ)GLplYXqN_$0dWONRU>(ANvG+4izMlzQf5S-S@8td#umw+1Jsq|e zGNtsbu>MpGJzBy4@|C)qO>r5YHO7dG0 zBz61UcSrBW%cO+#%arF97Y`yLT?`2ZD|q=)-eM%W1MFd+9lg0Ic?z#K?6*i_s}!5X z1j{R_XvoPV$ZnkoC!S}Ng?cY<2Q%-SIYQ0Qn)I6be7~B{r?6cA&$iU(%P&)%m>w)J zVbNqm8jLQM7@KL0&hNe!uX3{FCSBE+phNT7;sy(fcnH9U6N3d$Y`nAjLSptC3~AAX zi(Pha{%2kE&&4JuyJ)o z--(qW%Z`f=5T*9Dx#Bw?FdTy4?Bb)$BHZ*Gg}xM-X!*TFnY*+nM!DN$qN?Kyx8ofz z+N&n^NChq)Z3{*}X^%TQ5wjUH1rwGu9%fU5=i=eAQ(6uoBOT_j@dS7FZOTX-&)gVW z`MyQ*1E1?M{K#tA}?GP0KwGsz(eywe=s@eS*Nxx;_?s4HnB8ZOY%PZpx zL_|dT(y*t^yQwwGyE@pCGfO*k`3wpnbWUHfzT2wWkkziH%bdKBt}_BJnJ>*NY4vR) zJ#K96h9m^ zn|DVY1?`N*7PM7-SL2R7g*aWi9Q|!;$IWvaeCTOekfol+8)J0Xy{!@+(r+0!;frMh zcW$le*fUk+ydJt?&7CqK;*P@3t=S7m*?MeMwOBQEEa38VoXwhhV5QT$$c=z`49Ap? zb&J(h%fhQZx13GZ?UC<_)?ckEl#?pliz5*_sMC7QW)%@#J6cR;24#KN&P|~Rne$dD zQ)!M#iYRyi(xN=BRMh#_!h;=EKmsP zfFaZQq1+0-m?E?q%;2)4XZ8e(!Iu$bD;+UBwFchJu~yL@;eN9s7z;zzF$oeQ~h7t25s zB3?t02*6&)n&`6?Fd-7^xe!MJ>z&i=Xy+??B_q&h)q*-%x=`w&Vw6{tY^=(J(aV#q zAjeE%hhbf^);NCCIjiTM2}wC$LU!iA7Ay$UIkp$&wdp07NFwKrbM+|uRylgERJ769 zS4}*5ERivEYf`IwS)KTL65o|FGe($$by`T2TkT84=Y?%0&H;m*FZn~TUfr&YW%r9^ z@~1EnHDSp+pRLx-D@%E_lFGh5|4bGriKJxGf*=4u?J+1*?X%nubIaN>G~?vgX@*<_PGr0ieev+p*#iH` z8e3z1k(e?UE&bG~5=O3DHzPTf)SCRlba`S(<;ove>v|-h(k^wGN?0`YCT?O^@d;fS zXp~zLMxwk@R8C#ZFRmS(d;5WC%FqhJWdW<^7Q7biOh!5}ONHCMB2shF54^g09x=90SjE<=tAWN1U9!4d_IbSdfl1%+3-jTP;pvmuYz+vynQ0i4-+xK$lqU zf_WLtM)RYB+<9mU^`*WPVzJm>A)iFF4c!hA4I=z>ft3-hvc`&80CC?I?uUhx zD9c+!(zTgvpJ92FO1{>*Am7^`->nj_R=*&+avxlg!IGKdK{h|DndW$`<7`Ua%VCby zft}Xpc{R6_#WudTwX7b?(05O3TG$eDX#%$yIBdn?^gD?j@qR%}R_sULf3{XaTirG2Z=s(>X67#Lr?*8>@!b zTJ3j59Ou7WrC2ds=&^u$rIh3D->o0@1(j&rUVPHfe<-At%d9A0$n1367i}g%t@tlb zykeRVF=9dU((DAexmEFb|RLeI2&&$J( z+>v;P&uzgw-5mDm)#i}BBsMg5Z z40hWZ*GH7I5Q*r^HiMT*Wm-WIUo2Iv%MwuEpHxPMqet+S)>cgDot)qW#RV-3#TI;_ z`+Uhl=T4QgbzTXqqxw`yM{5Dg1CM<5j^17?cNIl+$0~h=`_{74rBL>~K+C)on{0QH zhltoO3ye*Or1ED4J<{ys3#xt3icn5YRrdIG45CxO)TUM*ehIxu6(a~odW*d_EdPq>6s2GVV?0t#TyoH6c!{dm$Bm+ z#3(z%5CdXK^YN&}iUb$*{P=>J<3kH;bY~=?$U)();kLzQ$~rI?hvC6+#MI4Nr-V3$ zPMgx!g~X2O)`G8AA+d-Y-1(x8xe{rT@=5nEearW!;#Vh}S_H7gS?(^9Qm+J#+r zuiQzyk+>kN>VtMVjjrN^Lyf2LVYyr{5%x@dw42dr4~hE|BAd}X;fP$WM=i$#KN&4w z@d2I(v4WzTi>62nSfW+0yXguHjl>0kueBcbZ2{ukm^yeHkr|hdC^wgYy=VmS3RMS?}Sl1 z3xfCn`!jh^$NJ+LD!(zFHpP~e&HiVL&1&3QFD^>zk_8yovM12rdf>$x-LLOiTX)~| z=V$6O4xiwn7wPAcGM8bZHyqqog}Oq~N3 z*V@`jQ>AQ2I?8Q7$`oYbad(9q`8FSY`%x9mbK9$CqlPUKH%by_=LXpE_=gmC zFoO1Oc~gc$U4r(v3-fO6Mk1=zl2RO#?XKIEU~x0d^EqnP!>)GueNLe(HET?rNFHY9 z8Vem!g*B}zeKnr*#_<79yVu{9n75I-wqg`0LRPP^la%1DWmcm$kYOBCvmLH16Du3+ zE=G+qiiyz{X%oDNz>JbQEzu{Fg2a_r*!!?8@AhVIXY9P5FUHIEs^}SJDvF~dzC;b6 zF@m`FZ;Ab=9+QMb{O`oy7&hkHL?o02;U(@+$T(q?%gkRjZu(8{SrHhtGj zlqFdtG4?4qyA7c&c?}C^G72n~{9=)vs*`ZmXBOuyss15`q# z86C#BP0QUvMZO$&3DY9Qonpq>7sUcw=oA$;q2A6#m)dM6@;p>i)C*{mHl|B)Whjw@ z@%6M9*EJ2^go|PA=O=-jm2^f-hiWob*V9#HakFzn(S7$TTV-eo%<_ETqj}+t*SY6O zwO(I-`KiLfOkFWFQtq+xwou?urLMVwb{%N<(yspAMDW6?qcZ^D&4a~_kqk8`WP*@3 zzgN+p16bzxQ+_JQ?a--CN$p5Ir%t@)5hCqkQst~K)%EgG%K|YkN7r4YZ%|WHzY1gY zmzi31=YyG_u8W4}%!%tv+wo}T8`|Z_^*LtYOxSwmb{0F(by*~&bUcfl63KmjQW0|8 z&SC=%dMa>dF|%2hSp2FI*U6S1I{6#9D7s4_SQR=RHf_rV$5(SkGx;T`>pJXk3N`$v zD;zc9aB3%3MfYnueEjJd24X|LHbu;L$)N`%!=c9CIE{LJKU_|tXE~~r z-odJH5wpq(0ClhL7*QKPJZmve!yif2z>jvq=9<5y%bP26hg;N*%-XHa0R(Xr}y(9RMfFfoyvA&luVgMNJh}X%!zW-^2 zeyhF97sFAFtXhLYf(gZ31VJQ!c1T|Vxz`ygf3+LNLN}6&i)~qhASnSNw^pEGHeOK@ zFPNHZ$!~_OTIH0ao9C#dR6kbUD5~E3Silvzs<8uZZBbD;XPfT{P;|q4SG0g$Ra?vN z4}K`_{`c|8-ye6BBkO>f{vV$aCiJoS5}_<8=xo|KWqTbu() zAwM`netcGA{zUj$Hj~%!u902L6t$<7|3k+a!W^;qh&$i;v);)==vT?#Pg_B-6ct&& zQp8>)ixPh9)hm;8>POBx-`h`_EgUD#&Gim~LgWbLT;3Zn`{9`S-tJM*)aUO)W!ctA z$W8>C6Hb!WqU!!41ejZB!!LelJA!mhBCA$`(|gQ&xWf*lI+CnT@@o@IRn z#{dB;B0`m`zIo$2$1afhh^?e`5SpdNK}N(@g~VMqsK3xjZ+XHU6xaQi z6vnO*G1O4pM~S2EA1+wk`4f2EU=L{dPg0`VvF&20Esa*fb-y(y2qroS_WyZ`i6-<2MSV02?4fK>W-;-No1eT*z~w#OKvxQR1g* z{N4lUz$U>SB?|y>je=x;9Kdz39CulIMw40~$s##(cP}sno?uY)>b}A8g9fPx2Gj-ve79O+dj5uqKpm;vnr2m9@*Isrm3%Y}RFjY_|#7QYih*cJctMU5Suwa55oV z=IFg_lYyQ6xFkmjxlSF7OY-B`=vz^nb_m9AFW|`T&qy7|37Mh}Me5*WdC@qQFHVc` zyGqCv0RNfm^naQw2)vi;p1qkvxq1_FwWNUTnM(t};70)MZ2+7|fXyDHDd*%u6;_=V z4(NXu5+Mns0z}~b;&B*)WabVPFCpJQ#AsFfB3gHo=~6{?D!@0c!%XUi-vX z=mWS%wr^bcILN&}Kiea|N&}7(>P!9YXML9r;L@iF^&Q`Lc`Q0sETM^=0ENEnyoAKx;vK{o?ydHztxw#ck!gKg>l#Wf%p82)(Q%dE?ZL( z^W%6w*2f+a5_Jg!^Yd<|sUMwcEd>*M%uAM$CcSvLnPxw9Y_KeJZr)=1au!sw?aZV1 zor3JHr4LhK`r=kwt@pF;t!yN(KAxHSSY>)N7Kb4@ndKgD8Fea{nC!;oE^Ph8w$)~P zf?Sp9%8+tu-vWJqWS@HYJUG((>#Dx;?nqH9ZdtfLKI`&}krBOz&0}Bsr9CP8GXk0B zXS*mZo$)st)+N>y=Z6#Iw(8F;xd$MV#TQ;!={y=tYu$n(~Md`)FZqj>Yv#>$!xv`A-HS%a;OP3#G-IzKE08 zi&K1PH@-^w3u_8vj!QNA_|G~VpxS5NgltFQM=!Dd%S<4%6MBAV_2^1;z(QG&Mx^$hJs)-m)ZCd+W z?7E!pB0I}EiyIog6^?@wBR|#?a#)f&axxID*NP16O;5vXzLV|?Wa7?t={NgO=dsGD zvg|In0(r&vJj5nDj{#Hj{Jh?}V}DOXQdp#YZJT38FL8R4bh-u26OSeLo%Io{=YaBh zBK_T{kB(2eF6dLQCw?D6EJ+D_F4dGL&=maHZs`neXnV_ghn<~)K{4#y8D?#ZSoAo$ zPDgeZQ}Tko79~(gZqw4fOs(29)V&S1oO@=^=gjqfslBYuEY%*->e>MJ-P*OgiaNikN)crl{pZ?zmo5=^8drjiBUHy_g)^#C;igcd?EOc^6$b zUF$>W{`~o6_e$s`JO!c6WWO=5??9(d;wmx#YVa>M5C~!Qq5>ac1EEU_JWf7n)&M7- z{YF?Dup|I*VsC9=-1j%sv!T7m{7f;3^&@3{@O6j~dCIww^ZW zTve)lG+4Rbhx!`L`HQE>&%8UPAlneA5$ki)_}bfITFpvLmpN>39b9FgQqOrR-UX2` z?C$X;To7)GY85LQHcb*MDzcvmCB5^!w6xT3(mrU`)7sqJT(^(@>(X1|R|A0dB)SAVQ=vc20Qvme~ySH9z6`7JZGXgs(>RC_O0w`W1tcA)b{F*1) z4hv@@3H^!=->y0*)z51Y#oK98Sf|rxGb>RwiZjmOVyp^}WXdRZu*njxtkIxvNA?C{ zV&l7;?ryJF8qnh~L!4V94m%&Fs!2R30Xqyn9r_U#4+82qj@0o@R)D%(h0T)Ya06mn z*@(~)m6qp5x)FB^jpr`TRp5<8^9<^6mB=@1GFy_vXY zA=aLjRqr>iJj!Dgy`9(6JwtAP>8_`dp}K$g+Iw`q}1h<*O%TVysX$#9uXhNY#fGw82l7-55>uwL-zIMkfc5SQXB8r#8 zVLKvjhAf@}AK z`q`Ut*0Q-lWh>g0P=R zvR~I)2Mo@46bE=A$M^ow_#mU|kg!~@QC#~&G^u9hLW{RK1AB9}Tk~wG=YAVqTY`_! zV8kjhj2cI|Qjn;TB4kec1lVp3KSd+8@(|y$vYIxxW*@)ZHYbqplF%?~v123YTZ6o| zAl7pa5goYZ{Cuxsp-7so#0@yiW7_q8YN{Ej{me8%RQdy&eI-_-?umxJ#8%>#sO?p3 z!dz!dCPf_%RryI;#BK>M8Wghu2kOzwgo5DLC#ph|V5|5#m6ESXqS9Oi$f}49Otgxl zH6~tUZNrLWTld@Q-7+D!9!})Wjur*pAwioyb$1|Scuqk0v;@M%41rb7%hTYXfO|$r zo7Q3GJT{GInf6#A=sT<{q^e-J1NOF zU#=vyxZ_H6J#2Uv16u5Y!jV;CIXQUOVQI2D&vy&wZ^qwJXwEymYgZ}Tm*MyTUz21! zfr}pGC7DS^!UP^HcJ!jTOmYV5GVOqx@&`RjejGd3iPJLJN1T7a|+b36Tl4PnlDY&pzC(IyJHO zG5EW~#CEgL+?}2b#}q6aVQfAgUAj0k>A1SG8J)Xv)Phj)sWWIu+Rm?0;LGo6@C4z; zT4aScG)ftQizZj#Z3~b{IKQB3YAqk8`qmQOzBUr5%UfPJLzs3~YSFJZ-Sckt@hyB` zgH_FceiJ!|%k7)HHG_N5ij$uVdr)Z|jnDEIh{{63D;AIZ8hFyYDB`Wn?VZwy%XT&w zJ{Btt8O-BoaA|9mb%JYnL?Uj&ccVoGGr6(m$5K_Y_pYttSebi8&Xu+177wKbiA!;% z1q*eEHS&}dJilIXcOQydf2dANe`8B|0G_FMq8a+FC6jj^pLenaZB-kmKMy1SB#yjG zZcJhC35Ra)PmX5vv5ck-{59B(in)Ya5fe5fChNDK^4@Dgt6W;aFMFn*kH}CQPKX@o zr3Y`gzeNqS=EY5=*OX40SPz*hl^SEZRLgcqqwI_F_yZ_B}28WR_qg^Zg*B(K2v@XrI0va5A) zdE^TO&YT(6J^E`FYv6JJ%F0?&TRI$=HYJg#f#kbVSH@Vxs)3uEBP=-vFLthPNG#h) zmPYVTiQ-QGv0MzIlk%qKVcXIY&ypPRoruSbYC&1{x122XOr)IAJ&rZ51qOALvlS0E z-M?7?@620FS@(zZ&!IJn8*4|#**f5j5$AjAWZ>KN-mZG7DmE`IVm4`rk}t$G} zL~19#4wVZZj+FLKU)_Cf^Tu}C4#k#L5xeF(hElEhHIW6ri0%GkyYuhYnp6g-F zc{W3^&2>jV0v1J6x%0Kn!T$@ypC!EiPBUxtq)YHEH0%DvCX{Af>g@VnJIf4;_f;sd z1h0N=Gz?`%7O6zp=VG{h!1gw(b9Nd9jg=N0e~ccj({lsN6Ii!x?mGlQN7BOiQ>i{Y@Em z68tx1*#CtbEoA>SWf(2^kFNm={^C)g1^*j7DuVwSWfw0`pExEGU=Vr&G9sjqnjSFNgl11y5yYP z)}GSPr+S=<)*pCZvzMLAC!PF!so&3jl5YN5g*~a$Tipss)$QCNA3aWuJqUN1A^q0~ z9Rlp@AsF<_xE8cw!C#L-di-wd3a+|+UCn(`U=+Qe+8-Q!>8ri}8`|qU9u2u>*uEB0 zUb@$>pWkd=)U!4)FtB_3=KXagADyE^*KVI0(&weu<>cg|4j-ihmr)(DK1)a*rSqx3 zbi|v0*hf*7`_*6C``t?dmwm&H-aqP13ORq?XyrNL#4gRT^QrdR$j? zvb(6_T+wzfPOQK83;~}r=h}Nk3K?XBQMNFyX)Q?=miVl7qbA@nw9fLo-^5x14-LlElxuhs! zZ4{?ud2}2RubhiulAh?=0nC0_p?}oU(0nv?4{jQxV4vGDoI1=|lwnRN=)1*14T$N@qTNW&{Ca?G+9FZeM zX)nH5GKY!n%Birntgx=9g~6sUmp6IJbK@$kKbOQ@Dc09#itB7FwccWEFTn^u+qs|% zd-|kCgHmNcxx2%4(${swRuwwqNrSCf&WcMML z(N3?(*gP3#(f7SQMGxk7S}!3zu{iR4ykE*3YzF?7=XGJwrru`fC!boyDY?bTNSUD( zC#>`J85b>DBinx#={i-BOGDx~rlINjZH;nfQ6d_z`u_`(=|?{h-G_Bn=s zXP*=L*ZIOugZ~r0Fc$FNd}04BzA%>G{U`j3FN_8J@AHKT|7+cNpDgZrZ=00AFtZ!g03ez3j038w{?;j6uWj5i{Az_e(#36nt>M^asem2iMDI06F;Je)$}r03Vz$0RScV*L>NhjS2#2!OZWT z>i$8%Byjm3_}YRA$6Dq@c5kl(kiYV^g%Xaa`?OU5311u8LB6(^gtONFoqTPfKl!%~ z%3(6+ybj9G4)S{uWUsSl&K#6oy-&Y6C_8#H9n#y`FT{^pE9-u1{yrJtU_+eSb(!9Zvub z%i)J**?_;u-iNQ3b^epD?FB#$W(J6i|5z~s0UCk~zIh05`wx6=A;2wwIhozq>%Ya< z7V?){nUUXoZ6d$;+D85@zBZA6gRhN(VEYhX+vR`YYdZt}m-yQDd@0X@A0Aef{M zRXY{h=nE45%5&ftxn_gv$71B*kLQL%cfQI5s-5dNf&E4Q)Tdxcm zjX-5f&SylG$j(o;eqFYTl*waW$ldjoFAB$>y^3W~;JUJ$!J0e9-+)j9!eCi%pb*`? zGCFzGUVV(8W@nNG{W{tMF#PjSE_I=XArk zMPTxoIvEjVwv)ogc} z0yh9)69CDaJ@CNrQT?V1?=v#S&q1OFSAqAy#h)-q0*vhtOwxtdzg3=%f8Yu54&VkW zfL;O*2_W_ZARd2td%G&pp@-Imgc-pDHUv2L-_6OKI{JN)#tJ_=XZa6Y0kKa{q|KG=|f37n_@`$;<(SZKzcv@>!ECGKR%Qe zKg!ap!j|M+i;rY(X_g?soAyi_p2gfwynZE~Dd?5tGm6MCaqFXC1a>hjpY=txIhL1qB%bEx)s@ zuC1BOsuWvX*bb{%cEr=$xd-u-MClnazAoGC!Q$(5Hfq06BuMtgA)cw1l+w%&%oOoU z+lQgIZ3B|q8PBe>q-aUQ5m(Ajnzi97$A|9h2OD!i;jO>T={#fK*g@b0)=oCbhpf~n z>r?xn)nXUe-9mA3Xsh1X>%$-SV|$HkjF|4|SLTY|wM**lu`vC_Yot)DsOxHBdp zygMUPzh2a3)}6()J!Hsv#SJ;1T#w7?Yb-`z5OdPhF13(OnOVDxe5RLFK9>Pc7!P4R z34P4Em(AFI2)WO4wH@}BSHI#qa!;%2OuCLP+^X?Imt73z_rz~)z8Vtrvi2+qcOT&C za!NqsMiiIaQL|2Yy`k3Qc%eZ7f`z^Kc$9nb+7N=3?KTL6`b@og>W6~fjwO!ag20i|@1yUPT7=H|@h;meJa9q?u*b<7};kqRlvM>fG z`xyYvdddA12B&7x9fwaYRhFu-*Uic8Q(v}eL)_O{_vj(zc6}gcv)kBjXI$&-2eQN$ zK2Fs5?)m6W-H88&?gTzvfLvpJ1S>`tUU@n)RasB*hjQGi?kGNgE9DFB`}jv(=YlRR z;vibjl7=C*co>=#*3noO6&L1&2oIG)NC^W)r zu0z@V=+Fe7^^n`@XhvHD1rHF7bb`_ZCobbWOYH zFfb4TK|+E%K_a-@00|ZxLU2oPcXvsEU`cQYGeFSb?oM!bcMYzCbB82vzT`dk|IhcG zwa!`V-23(dx~qHds@hexckia3-L+kGtELN935&#N(yvewrImF~sKX>Ol{)878ZeBy z$z}L6&)m!jxU&G^;p}X!n*#ln#qMP$8l%IwM?2a<6Q1&=`OE3Oh4sTSO+A3I=gYHm zHYf>4x9_&2@~Ku?Z=Y$Qa~-6|m3F{s=h=``($XiXLEG3J>SfCg*uZ|+BjtaE($d}8 z$(~tS)np<(l;K7R5&DZS8D-j0z;md3@A;&TwyI_wn^6}mmq~DH!Y>83IGzSA#t?Er zpEg~3G&>1l9U!6-9N**rR=fY<->pN8elw%r6zog=e)IsHL`5 zll#}ZZ(IFQUIDl|QESVL)s0vqjJnVpV9t@VD`WWZ$_+48!ta%1cCHbYs}%7w0W5#P zCvJvb=0D*R>a?Dhf30D>~~KW;McW zsV68#(Vat|@MX3_-fF<-@;%l;|0Lwf1TV~w|9dgJfNKN8esz3FE?-ZG^4?cZ*@71J zqu4wIPqNwhCku}|4-kC7j~7-j3?X>}d3ohejEVxtTF0eZW@curS zn@)TS$%);R9`*Q0E#yqdLO18J@O|Nj-psdxZ+_vYeExOy3=)h=@q>kA@bU@t!5Uge z`n7ardrZV#Jdio=UQu(5!tI|&DuZn0ba2s7>XvVnEh0kkA{S4Xm0k{8)o6v3n1-;! zjua(Z&v<5`2LpT;b{i$*Ym>35hFEaUk^0S( zdyiOq6BgqfEln=Rw|CCMgh=)lWuX?UT#~u*wY)UhBq?E-mbaHStKyrbU4kI=cKDBQ@xmPkB!k2#9bJ!#m z2xadL%Pb{PyYEDtr4(DbtYkf_mN~NZ!Xsy)renkzy5KG$Vpxw^-09ECO*_N~;{-8v8JUrcCgey>0N9+hLbC2HgI8>^hGz(j*l)T%HT znmSHHMPrUPnOW_5aCa=|QtG52z@{|zw5FD9iO#I0aryDosAeZV|BSnp12M~BuarQx zt$<|9`jrvMg=IpHdbGREHDSvdzpgO}y5-)0E5>5YU{apZe9a)ICo&Rx-UWJqG*ln4 z$r0SS!bm=lXqXP*1{wkI)_$a0AnTCYztB5@BWbKo=2yBk&fnn^+`qvmc>jS< z{D0rw;{Pzv;^%AP zhd|Np4`~u7aaFx==r_Lsc( z07f9`7r^*m_WS@~0+P;JO#yzsZw?2r!tL>X^cT>B^?v|*M8GHDq*IA=I=>b9JJ2Hv zKAHahKKs7`dffRP=n)N{>;2ye^oaWL;{JDfyUE<^H=5M1@3+K!a5~iMPdZBOPx{l` zpLFuy>ZkvW&Sv_P&KLZXE(ZKbmy!QTSN^Sh4c4D@-P}a|?{uTipLFy4Kk1hGKk2sJ zKk1IXKk2T&@$3Fu`ChL->3*y~>4C&Q>A}D0JM=esBY&$uDmOv?J3S`&Cq2&eCp|&_ zH@f~$dNTh{dg^cdr*{9Or{Dic&-_i^Oy8gM?BC?i{!RWI*7zUsH>dMAI{#049`H9> z?r(JB|AgNC@971>|26viQ1TJLas!;v^7`%i`*E+o17#v_5*y9~Ms)s{fHIMPdlV)6 z>rs@Q=_gQz4EP@aW!Rbi1E35hocA9<8P@*+C?oLi0cF4_0DvG6#0LESG5%?Fsc=K$ z*1eg4Dw~w^J91OqPX)MPPMbZD|_PyeEf14TOOACA(peHmXZ~_;j7M0l74rH zILyZKUp3((P1cZ!ea~bA6ff}MlI#MH!OU}S14yUU`?069R$ztq&&xPN3~ z;!Ac;jvFTx)5X*+E%QoiYr*=LmzNXB$jA|QFffqychUI}d+S+$?i#jZ`NH3j z-nkIPICp1>x9A%eMxkzTd@JJTZq#(@r=oax0doOG^WGnkQWvFJQ}-{CF#6Qd||rZda*@t%)`=~e?H|bTHI;pBzk-v zYtfrOx_qaJ>>%1uPhdmQ`R!KKRO3$3SV8P@uo>Bp_N-iQ6YTAMS%f&H(WgUNNN|QU z1VriY=qkQsmRJe);IZkGaZQLCCy*CaZ$dK~bYacWOb~q>1x@2@tW6RLs*P}YD*#h; zdFzN~89Tlm8%qrR;M_91$hygH@Y+puC3c(({L}b2Ymk2a*2z7Beg>9Br-j(PO6Csp za@nXeXuF1Mbm14za^rE26n9cGvf*Gd5S=1f8J#g%+6TYKhE~O?5*1CYz8!Bmx^ zd_9|uvj*3VKO-l|P)`?J+r`PheUT7MOKiti8Wj4qc(8$y(0Ip?{jmL5Vd6|4!CcKS ztt3mq__XlFJ=`e4AY9Va(*sO}wyB!yz2GkPYE|K;lWzo$x$`iQCMO^kHOOzbX~j$O&OtTpTc&=gS?NHF{dncp0(RKbsNNwHOoCsn~YH4kT47qTT|?3qE_{%W4=bFRzZezbLzt$ z@xvR*0d88|E*f$cEhAMShVD6BcA4!5n_Z&wvGTSU>e)*F)knJy^PtSs@kYt+KF6Dd z{h?u!58a9)N9v%`S;_>);{)Nvde(gO==@I)R<_c)DRQl2#SJIdyUUV`A@ifXYkX9p zoog)yKK-mSU7QVn4H3J+0(_q_?E&?Da__RU@2%<(n|Na5gQ_cu^ z;#TX`Lv_~)SY%1S<>i6QooVt z)|u|t2kvwx;L-X%Q>Jy+0CpaZ0cpaHvz=Vit&0W^Wva{IXQ#bkBbR381Hz|WRMQVk zH%hO-70-j2Ij(l$TkxAxBG>0F_(VP6KrPz5cJ{ah!F|8X&~}EGy7e;5KT}`COh+cF|aTZ6q$74`7NmdmzSa8Lr@Sx;+4d>8j+bs;voy zq6P7_qrTe1Re1MRD^(@gDf*RhoxXY}HPq$_Ec3nFrSmfNuL-ovZYD9{r#SAg{Na zY9vb43>g!oltCkUzC`c}XWSiky8}XFMkD`GOp%o@nYwq)b~pG#=_bGB(tSyW`uOG# zL1Tn@8a};XoLN8IhXtU?yXvVaN+;BsQ6Cv~d7oDRJ@q|_*gCu&klrgkWIB2T985_p zHoYYg?SrX>_f)*)&MTDm2b={5?`_bMR6ET5NVcQhiRQ;i6l72wmZz{OZQ3=3m!?Hh zK6+wS-QRNGqyQ};BnQa68?mRX%*SC)Sxd@~z9(?^bvyPxzO`5+Lvu8pZ2nHn^TxgO zrwge2QsR%Od*3Xv41_H0Tcpt4XUx~m+-yKl81^0d5{&#>itkP zHj6mDbC8tpK8F9dl~oACqad)qS{n@CpZhf&6Bv%H}pH1ikG zp(%f#6~=)I#=gr&=>;0=@bc$V4=nC-2F5r4iyUyW{CH}0bDZKin&NFx&Dm~~&E7ti z>{%_VpgZ$`{ie+I$b%ADmYo5o8Cn8Yy(X~n6V5;wyawt-3e@$RwS@qP0|5Yd3IzFn zNB(XN8u9{l@W1X^ev&_q;vWco`_e&m{LQA~E&1^Xx8SBrKFI#a`MJjE4$%dsLOUJ4 z?j|FtY{+%}y$}juw;YmwvlDp)&R~+9P?y-#RFMI-(4-Oxo()txj?4}ZHN`D*!>8R$ zfyo9B-l@$K+xL8QQI@i4?VAgggm4k^qZ+e$)37*Du!ZkQCcTl;NO~D7l^o)f>afE; z;r?;P5%Dr&h}m6zi2Iqs8fDQE#dJeY8FzXi3z&U0YvF6FaI6LK}C&$<_<6ZYoW6tFO&jnj1U4-|>noBD&Ez z*iQho%J8thLfK1l{MzRnrL3Ob3T+Db$F5O8{RA0W07MZ0*}xwVo&iCWfbXMGPuU$W zrh9(#!+dct@^tpLg3mh0Hu&>>tSrfC-i@^GmB(VEBXU>1%rsY>);&9+jQqUC`Tn?f z`cj?zgzmC5JXrrKVW={W9={Yc_x|;L4TX<)w5YdsP1gncG!*^6$&uvo%JdVz;1K}b zgFk8s13@%DJ_8-&E;k4xY4sf4%H^$cDB9ZoGT=X{R5GFDYMSS0tDp?ibIh7{SiMpq zdE}54uViKMIPyil&zrzuH4wIhHw7W60R`y+pTGkOiWq=5V4ebt996sx@wt=J&OtZh ztG#&#cBIzreg2tKn!4FAH|;vu`N8=L>^wPB9w|&k_tIzQ+F3M=ulEoyy0#+1I9)P~ zL3iSfSoBV#E@{m!LhW+@yXg~-!H#K_a+cuHpjS>)saAYf3S1B!7w0fZS(co$EXi4l zOU_)^lGEnpz0P>^S{rA=#n;_U_J#*5mCCwOkd_#g1C;1={*@Ko?#1YIXIAHnO1$Xw z?zGzK%l#!Tbp~zQ!&*{AjiS|kv1!lyxfP$3Ybv%KA-kNTnp&q^p53FfNq|x1#W>5` zR-kgA20|`C+3Rur{khv#m)ADz9p4g7l>mh3-ghDS2 z$#U_c6BSkX(lr`yFPQY#n-KU8^S!fswsI-D2-W%Jm2)G)~Qwra&!I!5}v z$I7;*L@xF&Qe4?q6XyBjTQTLntD>n$K9WyWTFhA|Y0?1ky0Y09P=bJb|+22 zI}*9LLU-s}_grnkovAPPs!1e+vskQo%Gwi%bW&8LwY-YvKeBNoJ^L(Vd5!h9b(3}0 zI04W?oE?h5dQ|$*!&Sw6j?KK8$I^<&}6#hY84qn>ZkIE zgy!K8urKO%Qp2ujt23tPG>hyEWVl>8j~0qdUu~BH#_3~SsnVu2MvPN5DTbjp8bPeA zrzz834YYCXAh`CHt5j}&vn^jmeq3`HPs1eK%5)Si>)xEKFZEdvMn792@$IEtu|sl} zCz5Ui(H%s@ggkG+p#c~NF~m8jbSI#vg*9)drQ?qOZbu6~-=44L9Iiz(?Zc-k4F`5O zvb1|f;v`hHwwie+iNwQw=yA*oO9XayJ&01cGrkCqd+oWT{qpMY?`(e%w-VZ$gM8kw zZeVb;E1de8O0cXt;g7(cY43!qasMdeV`kz=Y*HN+TACKmj@H?fSg@H{nxUr$aB85p zK1T+zYz+$|B|ykO(cRBbp1|7xks04@^-)Gdvf`8vuFrZ|`G(JseGp#f=Rtb6k5csr_J^i)uhzPxKo?VN&eN}>(uh{W9(5ZO+<-(F&U{4DIP(NHD2Xod*<7wk?$351qbRUr5#wX z@2}?BtTxyfQ}x;@`dV60=O&I3t$$y_TI7p}dG9^FXBVeI0qLb-JNiq? zc*{pC4jvwJN)LQoO#~bsD0(r;Nw-D}#^1d|{vh(GD>N&&5}nL2f`U5lF2QJOTRLUt z5EljET&xO>eHZI~etEY~y3b;L&8J{cgW+Dua5{D|7y*<+qu9@^uW8pS4vv)5PF&fs zb<1=O8z?;3Yp)=zG|UwKHjJ#1u_g4OW2M9IG%p=PQ+{dfP0;s zk_9K`6r^gG50iT`77yB6KFpelxpb3%d^gMmVT4V(+g%hW`nBA) zdXSDwYx`x_ITz{qXav`bsdw3N9)zRsd^k{UPbSc%x^=cgi4-@Sn-4@p$YeBL%nuSj z3|$f5-8*%u<9BS^$g+OKjT1i;_7xhsMD_L?gOFT^=f~GQBNR&HLQ|lJq1sB6IW_=p z>2R*ctc!}TctbTmQf4TQ#JI2m|(y}?7f1%@I@-k=0)}`OEcbg%XL%!{&<)7dUGe(XnVsJCT#Q! z62!**t;fo_eIUNa3#Vi?{>n2GLA$!jShVjK*qHT))Z0EIKXIYIhgNrvtAye|S4M#y z@Q$B5eFG3ItJoxIMS)_%wkR4sAZAQ&muwyc#RxNL`FTVEg(Qk#j_@c7wSGXao&W!#2Yc z(G&aQdjSwGDgYn?pUokBPopz!DEHEkwAFfctE;C+Mk`x2q&$N2%E4Rg4RzPaJ zLP+kc%$u7owG&Rhy(XOW78h0jwr-G2s zQEBEIACaZKe4JgZFO6no+Vs>r_H$ty&gyB+xS%qDgdk7Cm3eJwq|@rbsYKYR(TuM5 zfGxtzR)ySp2^M|IOb|MKDkCn@On9w^kCGZR)rkJ+<;0=pTaL?!(#xpN=AO%!2#?>n zGs*4O`wx(}pOTd2CwioM5a=kK4kY#*G|J0OJLRCc$?3 z32&kB;)MLzY*2%PL||STG7++D_*3*}pHej6CJm;_q1$789gXX>Kp!;NY~UQ|;?IvK zNb9=oTl0!>Qxo>OoXr(FuWl?;KF`}OJrRbzt%fAp^HQ{%-%I`=qW>UOyeS5x5Yg}| z>E0cGk^U1cbz)yK$cgpy>_RqN-RPEwoeNABs?~*jq>HKdQSJylC-q0idC=SRHc;!` z=TU4fm&f7NI85zgv77NKW*rg_+nMYm?e4u$Ci}|P#LSiRklB69T7TM_D^F5sgtkfF z{oO*e55d4&#U`nCfo>+r2`6B#TK)5`D2|7=90`q|y5CK%*p-{hPn8+mizlMfe+?;? z<_S5SEP)p2hy}jk?WGek%%`K1MD1x@nA47UubnSE5gC%Iwx;@I&;iUtjzz_TR zG#r?wCFO3}IA1=4RMQhptNsrTQq>cq&Abb?c+!VPqv)A5)99JB zSLo?1o<6koJ{_Q^GcN#{-7py%!CiYR?N=^olO)tqaBv$es3%MWTM5C*dbpJ zcBF%>v9p@addcD!u$Z35WjW<&==cwdILR7+^&FM@vhFHzT4nH4!oRyykwjyWC8ehP zkGIEoL^$o2g2H;s+h8X@dWsJLVIeD5)}1sE>D@47gOI{c7%o5pXXJ*W@xLE4>+g1)xK)^ zTC+Y>%~4~;IzC|SwEQTM3#I(witi^M*OQuE3Li}USH9OuDe2ToeipVb)^qeVnn9Sw4{^IG!yQiDicE_OANotG~w_7h4#+g)Wnl&d=$m8cr` zCZBQ>-9uRCb`&Nf)g2RNd~&1`6#fu(7>uXlveiJSuG7x$%HbXG#9oVS&c|xok-SRK zZXUyGk@>xK$*uKhODejDD9=QDo=Vy2r5gBlK&W1!bvSC)X16}tj}umOOsJtCB-eXh z2Q(DMwAn#S&*K+VP(nx^IOs1uH##}B%qeu0c0fJnza&b3IhEV!;%@Kgrhb ztvDYMgZ+`=K7~fH&UGMP_0UwBgu0-xaEWB$TK%2|xrkYK-n+cKFAT(8wf^o8mGk-c zSO_`DnsKqPhhMb{qkQ!H9R2n9wv|*dxsY28Oc>!Q4rBdeKD0Y=lZ{`ygU*8jGD3Mi zQiWb7BZx6%nkTO{dS^e~lq&a2NCsWDoXveTxSX#wx(~y{mM5_nFP=-pVpPLoT=C90 z2*a{_LKeT!Q*WzHqh-3|rIg^W`>dX0n~^e^=g}Dui>f)0l$Z;4i}z!0!%n^N$ydFG z7HTX{j|!AcVhwDf?mACVVMS$;KxgtZN-W4FzIQTW7R<1b^U3{C(}lg!mdiaE6xS!P zn>y)+46*j8Ma;B%I_8ru7V7dU&O=>{(Qhw%P*Q$bj6zA*QQfsJH)`@HvK$AeQKS)=~c%X+XdlJFy_hk%7+_QAX@Unti>T-Hd7F<^Dj;g~IcPs-GgB z^b&qm!b=^Qs5CK))KndRl%*z}-Ax~%KIv*?vX$-sj^}tNJFtdr){z7=q#9<^^F{!J zn9FLeey=x_qRAT(`h<_M(gHC($blO|d%@aD}xZ(zTG{3O0a3*Pxt7t3IEWtiX zdj0jsmWuc7&3#u2yzkp6|79mhMfuHki0ZhsaI^715IUcTtq6cTZ{FJ9%pdu`C&v1o zU<~m`g0UjhB!M~E;Ag1BfYFCQlzJOp2MK^ zLg=PnRWHQNtTjDbE{~7Su>r{{QThq1&h-8?z{J3~TV6CKlz_Msqu1PdfdFCi*V~Eq zl=UZR#tWF62|zaooRBMV_d#JVeCb22!}GL2KwJjAQevPHr58;yoN~JKFs1}haWI!8 z9g<1&ouBs$1El#(yOl7d?WPfgOT&7AGE#TCL_q>*%%XpVd0#VpjoY3$m0oEsHq z#BsOkU&g8Aq1uji=$5Xix9-#^;UM6b1m>{Muu7YSV8^TEg=jhgtal35kM<*JMzl?f zX`;49g#o>(_cWE%}4`<7OvKHxm{$&%=LLGJpnXlni@{gTTf- zo7c`EjTF$|d{`9^mPR_cpt1Qx1FX08^c@lgu*u^f2;v|lPB+_V;UEM|G*1a_2m`Wl zwi3RZ3h>|j7;-XqBMPz|U4IpaA_^)x*9|ev@N1ZQ)V{U$-dH9=3_!!k1V{p%03aWD zpbP*Igam(E@3esg7;t}hV$}%=LgG@p$>Svjv;v^n001an2tq=?mF%=ZnBPsYb)c9l zquIF0LnVEa@XHDC{fi7we=GQf4|%n)JibuoE2%{pAO#=;Q~|sM0G!~(p8ZzLB+<$F zQOoAD4~iDmfK-4iPzQkbBU_d5Z>8Ssrb8sK2UR`=Eq>2dB?tVGq3tGnmjsmVftW417)uFaN7OvGB<+asJ{jf5yRQxx_6^ zkN%?L;d5Dd`CtC}1fR6R%m4BZ1U@Sze$zza_1~kvRu>O{MU1>V&Gosj z`uPxD>xy(Tngna$J)FWMAsGc`U0l+Z;;ATqvt))*sc7~tLQ)gc1>;7fNE@Rl1KrZ0 zu4jI!IhDa(Sq#t_OH*yNc)XGNAmr;Te^}WyEPsb&MN3ss`sK^}e0$bskhqfB#q~@6 zJwC;qq3okF|A4D;v-?n2;kTI2I++M?6BR;}3y1s^)&UPdHCXyYR&-kHBb<(*W@{TS z!*=bR@2?ng;NP(|DrXL5X$Le%Bn*aROYsjVsJ*X$acx~HJLqdEnPuUw>fHmGj8fJq zaeJEg3fE*9zxlKV%fOM_%mYnkpAef&IV{8IYvsYLwnxL-B6V3UYZ+hJtFhu+H6!o7 zN#N|$op-tL@_Zva_E#p4QI~>hvyAsmgBJ%FdrXoJAfW_nYB_Sl!Q=v?0EB`Ur`_TU z(=7!m_c6pC)!$(hyOoYFB!p+QXwVA$Ho2;Kb^uFT*BIsqnn1~uxAi1^H}bG8J}0A3 zN^rzTRJDmq!XhLo|zWL`0V$8-C=^!Uo%=#d(B| zLn&Ov6sh>6kTKG433-Ed4?01E>Vib0o&IukY?X%suqOk~GtM0&<6F&s$jx7eC_0Rb zg0S!f$GIKi8^o`3pxn{5Ld@c;p&kZ_LkgEt3y;>*6?DBfLkXgv3#5LNALzvq6R@v4 zD89l-OpE5D0Bq7xfjiUO*xjK3J*5-ASh-| zjrS`|ncdp4l{#pI9E4^CY6i9WHqWf)BL>ujk4delP8cxByhbs+JU<`V^=N{@q(^yo zafq<31w-Xt7x|>_!tlmn1}@y@;MfNzo899>m#j{Xz(y(h0_t01)Mw+U`so9%=lT0r z->#;*BcEzsVc~(y=kg!y8W?zW(_9w$sb6`_Y&xA?@72}KUjSZ@I3NjtI^j=h>Oc_U z&y^XgFBA>$wOVUY$7Te^S-cJ|;M}ZvwNsWf7M8fkBdMWBGAYR&4<4x*-@X6BCqreK+(lXuHEmR680%5b7h~!#(rI^xOFj;# z%e50u5Oq0z*{8`O_)`7Vq`>&l!5mw3XUN*AY}>BM^~eBUV%U&15=NA-+JSPXh&@g^ zRb zwNk~*?n=fN-||V#xQF%mRf&f;mgVYTx1aff_ujsBSM?dlAXCp|+h)9*+3sbA7@m=d zA0gb0Ol^AAJ~SmDLiFh=eT1S3^MgpWcS%`oVRv-1GVi1HsiCCEZ_KO3&zoj+-^!sU zs!%d+70r1u5r(^w*@R!<%@bEJ~AEd$P&L8>XaWO^>nU}k(w@tew^MD%YI zKCBsrR%y5&pVvGsH3=_Mu;kE>AMlr+&OOvmGDA7i9UPPS*4tQ&@T$tF-p=2f)xnh2 zaWFB~wOG})O?zDOst7iqqfd4RV^-{$aI**DBTCFZCfrnzFiDCR_rxx@zmZchhfgZ1TGuW z8J()qZ$AOGCJZWl`i!;A_of+|-u`6XhviL<9-i?d$)Tq>jPgbwIq26}q$NihRXXnL zyF9A;(xpOOXtZKt9b%Bm-KAwaja7S$^Q@W2!IyGmHc@<;M#Q50x%}(J^bX?Ebyn&) zbAvJ?21!HcU^P9)0c$POleUY2e5=P*IZq~9Y87xT@w5j&l8igdB;glqV0_)K%-X7z zlysaOJf8Zj-{G!S3Io&Qo!2IDl|tPmACDo>U)4L_^OTe1I^m}#9#AT55}*s*YzvbZ zkl(|hCc_bU(P8aBgj0vFlyEVee|GO&`Z;emsoX>?O0npt%Y>14wwT5VT-WbMpq?q3 zPQpYCd?O6tw2;jKvJM)DQ(1l1s>Z8iJBP?iX?2yTs1HY&`Wk~QdDrT5NuWNU5kfIQ z4M6XOD~Oi(JJ~ji+tztuGe}BIy+S2m(tK?H_l$Ir4!J24o zzcHE12D!Pp*(}MRMeN;iO-9^IBQNs`=2Wk@C`Z(*9tS$Sz)}-znF6x>5=zHKU!O<+ z@=;qUNRM%D4WZbp1a!MmOHlL}D0?V~V2ZH$7x%gG60a;+c@DiW6;U)w_x6a6(GGrY-7UqVbgwr;rLzaKgX5yblW|A2}lMK6OQ6$%V_r zeeXQt>iuaOO$7#AIR|o=)EDtk7&V4mTFs$q=)!pjCSW@xT&8Gmh=12&1*FW81AM*@j86X8un?| zcm1mYDfKJaHa?Xz(a|slnRn-XN3V-~6|a+5#Z3Ij7>bZ5+=tKw)S7p6qZwdC_yxLJnYXjru zij#%ins;hM$x>F~%00j@;_kh&-@G1+tr$}0rR;dQnH!%!zUkq*3{~9B^=vdK8aLyJ z@BXo?`QVPIUFmX50Mv~Hx5drvT=2(2ON&V+EJ1ljddbd#{n%a)JAsEjjb5+h7G5lD zpj-711ui!~@K;V*Iz2sKJ^%5Utj+e-RayXGEG8@rKGDu+9uWoncbf_k^eZ}`p7f&S z1KJ6n0RS+P$BSj_9o2v4^fdcki~sTcWU)F4dv7II4EivX>{41oHzVyt<+=r+R|Rka zPs0lhuyWf-+X{gpA33a*YQs9_vFK*rgfi&?*b3o-3~eVR_yaMX6MrtVQEuB-IKAza z{Iyo9z&7OCX7VNJ0x*LJO`|>rvd(87ebovo2jDT`=Ee;^TQw4!6|nK{vwhv_shxf+ zM&6l;Ul@RF*S!KxS|>YQi75d)8_Q@5fwoU^>%!WBtO_km#!`wFmPCV$YG z6z@dln}0=E84u)`WE4f=Z1B-m4=DIe)+k6qbH1zK#mIdH4V@@kc3Ti$U+tx4;^8MT z$UIPk{QA6t;r&O~7bBp0P`TGdbR~xB1liIZhI-I9*sZ6dcS~&$bRD)#Q7XJHM)wJy zx*}-+E^|rvD)SQc!s^-i&!=DDZ}?NY%5sll*mzeQsF`?*uRHD|;{k$=jkMR4H2_R$ zN$yG7nv1|X?Xtw9J+DY6a4}=wXYJJT8;3*>*?W(+9fkDmy}_Di0=HN~6(HQOjSVy- z3G*2`dvCQ-tfyAq2@|WaoD~2iTkp6R1m@6|Z%ENFa=yF}jJ0&otfF_(M6d$vIe0QXou=z@e_gZ#+d?NR`5?xvDXZN(lx<0v04 z4>XvB>d^8@bSr7^DTy!yEu|V}*!%pna=E%zLfzkHqMu()0|57aao2}TTf5EG9#VmL zOto$?!-EL%NhphCq zjVf{ioVS))yDayT$ACAA62U?LK;9?2ad%!!5U8!B$Y6b3CWQkVx9V#gHgN0q+27 z_A}Gp4*X45@u831c1RnH;1}W2;k6QX2;Jy*(sS`5au00a790T$Jw$>#?x0dIXmk~L zQ02w*W^_r){&oYXTo4n_sK8MtOh*PUpd^#$jk`vDiSJEVV33K&p6As%?3!K8BW-EI z8^Qp{ctIy|e5aX^foZ`lOD5??SZZDqJow9dK-*f;^67F3PcvTJ0sw{{DyGW?6pVnH z`L{mHP;6quYa-$GfvH^|X#lpV=78|Xw4Z2oM;faKT_I2p3gQWX6yZUweKVkcA2+-H z7&pt^(PgZjVkj)3lF=^>SLV5>8z>16p>FJG&4#EYqw>E?FNQ`_Y-%cIoL%}z?#?ujSaL78lx=lN`2 z9^*<9c+#@?WWG&xraVa2qf|_Thla9|mbaw0?lNyLVz0f#&1Qua2OF$f;a*sRL} zi#TqDcu-=^BGRKRvC*=Uy@ezD52ot_>~>p~l^iq0EuC%FB4Ozqq}z?O)HLhH&|8*s z;Tli}#q`D-X6+L8?*_&uznz=viXXejGS@k3Y!Gy+NtN1OB0;;f1-M_EepjtaOTgH= zQ5@VpqASXzyv`c75I()?D6y*d04fX%lkK=P3zYt@42ycrgANkqVcA^bbE>282?sYH zSx5^ly~7XP!4)1Jt50<2!ug!G0d2P^S(jR9j&1|(iQis(q?^q#tDJU?&+#HoT%LO&0a;xOTtMz} z_)Kr8?1Vior6-x~=GW% zJdVrL^YUxIy}(t+fL&D0X)t8=6+V{Hg^m`L&skz{)(%>DLoK z0=ULSC2uF3`ocv%)p%IcT%r3%e0wN%Z4l<@2!6;M=vL2t0xz_G;%Xv|BE57q8(C)^h}Z(5~j7<({!W@mnz^ zyOFnqH+ahIk!q@{+H<1k(9US!23IvUHg*}WlaWS2AW4H>#e+Eu+QvxJNLy_3m;Kht zEg!f&U7Tn=;Jxwpvg%To8YPu#+EFkIuIWMGjkND^&_J8D_meta4(~cME~%|{ye#Qb zd2z-a_hG7oB2+6+tfxP=dYRRZU*^?-)V3IncX7rg1!LDI>Wo{z)x456P-QXGQ= z_Z1v8uV!?sd9`oBy&?{!`EJx$>smeG(yjoFc}Ri4*|?g0=;PA|@x2$qVB_J%p8e-` z*FXKk!kDh{mG<*WVzRFDN>NDm*WkH3aQ_=D;`}gt)vC+(T=?dNjBJZ_uW9do`|#>v zyW8E^#}V2WT3~C>CvYA%j?*cy*q%1x=cZ7qlN4G^Zq~ZNGpYVlND+)OdL;+aLHl7R zDOYi@HWO{7<17Q9_vjz;oE-DG9FGQR4y0y$*)jV zD{-IlY&>Z`;2qkg6|0ry*oU~?HHW3U3-Hx7!EJ*DH|>`F8`DX3^Wk{vSn~r~cd_q1 z^C|q|(kR3C{&Qphow>jn_Ht1@Cb9hhM^Eqx1K8MnryFciGHq1r4ut#F0B!;Y!wBq+ z4y_W1TdzIW@~Wf3V)#grEAKAcb?~@C`W&29r_n&mn{Aovk?f)H&2Sm6J6wXE3^pH1R?|(NoBoY+z`NoI>7mWBor&kq_F$aJv0XXG7X}+ZW(YKYmcCdDY|Y_M@9N&|WUSG`%RSy(B!~ErKidqi3RuuCFgH<7GiJ zpi``MR6mQ_?xW^3z*WopWr1*#73Z#<&2G2}80t>=-4?D?ZmbA(OK)L5{kpOLy+c&f zK`$`9Zoe2109AnifLHLl;Lm%NWauLK&An=Pps<+mI3J}38o^@pP=cV`i_EKzip2gg zCau2N!Kx2;uczlVpSH*P^|ipI6CXrdTf2SrMc%dIw>|pQTAbnalHS>Cb7xCq^_s9U zH%+i_U*>b^y1Za33c?Q$&HV5++91+=U>G>NBz&h#mH!>Oj~cnAVW5!Ra;B7E5*xl_!*T z#uSZ;Bs`0xD$n$F*dEesEUn3g3%pZJg@}#?~<$xPncs&k;rOh#A zvE~D-%EC@@f@!B_UonVYxvw}(h0|{Hcs5>=z|}*V4pKi*I94< zXz^v|0#!HAMkZ@pom!3fDC!nDUsTuOey^Mr{PI&f&Ig{`nX=hDGap`~!W#yZ?drL! zJVI-v0eR2pf-c*Jr_bk2tE7XvNCI038~{f%y4;bC32TQJ4DP`(>~58+nQ`mdaC%xx z2hoXQd`BDL;`F*1tX`YpCf|ayFA_Mi6bPGW6qlmVR;;C4L_JNu88bwdgYHgefrVC! z!`$SRpzj$a{AkzS9W#6S?D?JZuEki}$Hmhw1y$Dh?jb?Sk1MNMk4p4ODEXLa;R=1l z>4Hlqwx%cHU&WE#?8Twaeh0VNA}U`2sjS&Bw!(%;q=)N@6J;D(-1(FdvY4N#1e8ow z3{AFe2R{MMmIdB+$d7_dOd~FE$W{vq_FlYe&rbA;kR?aYA||+2Wpe zRV7(roW*XVsyn>WIbo_rG_I1Dw3Y6B6xtE+%40i@mUi8(HKWzrs#!eyDmyM+u6fpzgy%a7?QDy zdcb_+Sjb-J&<5pBUN>&{QB}oh0J|-B8R^beSu*r~HyORTW65buYC-l0Utd)4#FTZ7 z3o;tq3KZIh9hJ!A(K&oVizQ({BD?pCE>=`Mj;X}2u;!Dg&6w2|{)Us{Zk(`qTNVrc zxP46Bh$Fmo(N`<%)OZR%Am5UNM+DZorTF<>c;kh0(Nf&ot>4fFw4Elo2k!bE1h$?eK|U}GuMKZjfCirU`Ntc69}b?K-DC`Um9wM*rHX@j`ijCsy~Q2Hau+v}SoV9$P~_8PPL zk>Ab#x_n7&IQR>}OV%$2ivJILZvhrn*EI|u21e9DLU2G*#X<>@&H)v$C;{p2aOiFf zlvELvE(HPUZV)Ny?nZ`g7|Hq1fC2aOKF@pK@B9DP_kY*rfivftss22vgPqrZ#~s4N=FA)u*X0UZd` z0}#ZH7Cq@F%FYmoly~rlRL9;g7ZhbAKKA;E`6X82h_F$4?22h~Xo6f9MFanm<3`v$S2m$%YDIJ?aUXCS_}5}Z z6oNdG8VD!@4glyvpf_>$hPeLpV*o1wUimJc<;Sv}+o!%ipyJ0h8h(o_Hq^jT7~~(t z((RQz3G4PMar+M!{=qsPlnbJWs+rsb>RkTt?_A#YgJrhkk1QNng(?fHr=9vcmkVna zjXaoy@yFdi;1G3I0$~B9VFoMKNmP$1!hfx?|JW@assfUVRsC`RkZr70^TV|2`b< z`}gp0VGp#WE6zggG2VSk*8d+`GB((r!7nFh1MBg!Ye%8YN%rjiUFkRHwQGqlpZ#!; z4=-X-SURGkG1kGs*F^#}Q2zO$`2+sWpO=V*g_XDK9}%-1slKzY`%}hM2xtjdgCX{% z9(x|pp6C;m*9e66O#doljUe*#aR~iAxrOuh=uQ=zK5oxT{aWw!ocED)=t4835Z-CJ zvXD-0M&Ark5`r1vFhxPL+~9kFRqk+jV>c|1`)*9Qv*68%BHExUAfbA?7D1wDs&i4a^oq@gxs0*lbV+d4eU*}!< zCxElWc;(w{6<^LoUO0MfJt5#4QNkB)8tFwoN9PU9S_I*4LiN_l?_&nBqmSACeQZi% zdJw;l(%m-K^`_rPDrPlur>}Ge)z`9UiK7@~_;SBhnEVf01vcizBkYe&c(MF<7ajx7 z5CAP5*OjU=v&>baa^TQf>e3j^H)P zC;o>HO#FiFt32N?TRJXn`3lfG(t2|H;X;wv)^T-jBhcO^7d%!>BgN^(mHV?tCocq= z1*ZT&nWxnT&c8bQ)!^|NPw)`X>)^d91d5AubnmMS)?*+QpnSK1nr1fksDxggXVRkT zY3y5cfyFzm6P`fX=^{x%u!o0$G|hh1-pxZ;afVn(+HWG(yyy*s1)Uf(V{=T7(4 zQ%!NfGc>*v)NMKlJ_N}`LC>zI(f;7VE?$r`NcULizuxFao@3!<3K++ixi5c0e- zD6>l6(>Eu{ncw7+*mrN1u*Je6$EaB23Jat{FsD^0c%JbUE+#c?pY{6nGj0qz}o-%i1CJf#F^s;_6Uj(_s#MMpO z7RPx0R!_G1Hv*1dX7$Au{03?A!McC4aV-_59C1#{LUTPmH!tnmrIXT@QS&%}+i_DR z0wa7~Ly#^!lx@7WZQHhA>u=k(ZQHhO+s4>=M07+iT#jC8=-LAS4l&WKQa7 z57$Ov`^!a!5O?M5j#ESK#@%2N8{mMyUlO z%b;Er(>0pq76_+^wYXC>y_XbQ=J}OF&@K^GoKYt)7PY0EA6JDs;(poa2KZEW8 zslvx>RB2xV6?O@Ezp42+(2=6lT@i<$Ko;&_OV#)w#t`#&)8mU2jTQnxW!G#t6oH2S zRI8otwPsCXRIxx?aF%o#eeF1d5&)ZpV+kSxUm-2=`KuE+Z22-Jv(o4Mvi>H+x>Cf! zs6PUj?+C=zZ-EY?n&mZbCzY^#pyj){X7Q7R6`HI49JQJF)5{88vO&|i@g$l+vynuJTfE$-10$40uAX10DXhWU@ z^jMqm86rakXs!#l44Xt|uq`iD(>C6z1EA#MYFfTk5Gqp~gZUKQS9&b9UHqbk9v zW*xjYo|v^YXtzes%UcSzs~iotV3ZFV%OUeBFSh^UYXm#c~rI zJL9BE_s5Yv59Ntr+?LQhbYJtW65N++=}~uO$EUy93$aN-A|fv7qZhI~n=c9biS`I~ z^Wp9GVG2q{@NHouxC(fZ6fd(nCI!XT6W=Hh#zwc&H>@DO*}rzDspaJFYHA`Xv@Va4 zp72fQpsmu`Si)o+bSHn=ka=2NwNYIc@DQ1(fO(p+vkPP2D}cL|L@TsDS{fxJBE+27 zLwsFx-XEMK?Vdw0=K8w}w?f(|xenv@rFeve#iNFzs~;g89i6irAsrK0FjLZSm*aGb zR?x|IrWW1!S+|k;MP`Ffup-TP$`i?~&}M1&!WhDN-;S=$ zdIXhDM98&2pwmJXo+65*9S@<6t{chexr@R9Z#eqz*p>qBm3Lj!^p2|C;Z;VRL*<86 zL&E(MaJ7vEX=}hUkp4fm8uCF+mjz;0GP|;!3JO?GK*D+gM&FaqU3~QIGR#9{1i%Dy zjZhh{TDh;l!q&$8u}xckR*dK)m@g*B-n!jhY6~&|Gu?(|Sx#ob^mk z@DO8@U~1yO+hY3v%-sSW`y+mTO@JSM`n1rfzBJJszSgd)@8Z~boW6plXGjUJg|l+F zeoUGkFZ){7-_xPhPjMiZF2bZ5aIr{4@1>If8S9kc8hxjhgIHV#FJ0dIZoRh2!uViY zTnF0BJ4P$!wLRGn@^b$aEJYWwc*;Y%_O2w$i%m3+p`iYBBd=qS_6;T%J9d`kde?OV z?uJS5xmBA0%G3_8$w{}+D~D z4^F3E)XvI!XllNUhYwUWmxlJ(3(9bGw&Afu-`Vmp*8g zuzDmj>^)(S?#Nh3S}MyEY*N#aLG52_Hc;xM*EqTH^G%jjnX^R3@^fvyfmNXYsCusS zR~v~?fRRyAVOf!M>p!@%+v1xsb&1rBdJYx@k4q8z=x_h=t~|wb6v?zkhYFJ#n^-hF zPr_p0cW6d6AN)X_KA*>uO*0z-eiB`CM3S1B*m@E4D$lWirfw#p-wTGi%b_vi>~|hC zc>R1WGKv3Sldlsxe@DVhQN{&p3x?ccy{WQZGqN(sxe#3kyNMGdTq%3=-Yt7O$(Or- zcgPmKjcjN3#Xi{O2lxl^1NuSv0d0QXk-us0s1d)jAE=-Z*g+>x6!!+{|fPWs0{N<;Eu}io3Df`2>tuwAMP_j-ogJr{4SMX{pDAOe_p5@ zf7JK^Zof5h32*iPkbnQ(MA04}0ccKJU#>dHo|68Yh%@zPjp)q?>`4Co$Y~d0z=8uE zVc*PB1~;%tJPdyS)WQWf5XP1jcaVWw%>j}=02ObLp(o+r>haATlKvOhrQ92g^o$Yr z&=2x=@@!Gqz9j6C=&RBxHEe&DJnXKjr5S#J4Uw#EsD8RbcTbP>ih7uda74KYI`#Bgrfq*H>%sM$&I4k z$U#6V{(*Ary#1E}m`yxTx`Fj`SGa%p>q?lBVZJemjrn7bes8o*6}KcKEi?VHCFd1i z!l#I%U4IV|fJ{;%_@$>4ULJB@L_qo~rSyv?yz(T@e`6PxR#1{2QIT3Yt_%06ORL4F zC5%S{3iQhpJ{lL7V#u&8xGKNf58Y1?_+|K(&{DDtw++#m$^GIbO;jJT0UpZD-0F$E zRte;wLj$VxFTYsF#)?K*=}1PYIF{%|Oh^1Rp`x?AC1RXJiFRrN0ILeTK(<{4SJfLd z_;nw0lYw?e;9bz~cL@V{SJR{X(eo*I`^C|t9PfJ$xnb-3#wYqxi|Yq{fqVdJbpgwH zcjF7J+3``5!PAKv>H(SEee^dNlKGcu`oGgr`r`&dozAep>qdadFZ!$mq2$mt~(39X^M%u`4HlS>VGe6NslDo0scTH_(48?EuHDh%l!7<_aI^q6w9ZRRm02+FD& zlF}Zo&Fn2)AP4_yh7~Ym0|8OsF3E_8uOTp|* z@Y~tMDh+iaz#{S}6U?cNUtOMngP5WlYa!IGb`oGh*g$`Yt)I@@(L=+8DRO zS;%u`Jh@;u_J-yt3T~Tp8l7Rh=k3cvRL@jQq26ok=J}7V;QJ~sy;%OQXOKDZG9qML zoOXVSL69<{pi`PEyI;l*aC3$kr?FR~lnsl>_&Bta-Kx0%QFa<2KO>pC1J^oyuTUG- znWYd=R7`r>Wllc|-?}b-KdQ8Iy~^-XW631D*t}7BArgPBgv_<7Y`$jyGF%C%?~h8W zeHxJ`i7}Kpy>`cevL_j+ zwmVzjP3q{1g0(Af6>syjyP_==~34SyuP~+-Q=vgBYtO4_5-Ly-hV{3nSOa%tvW8l>G{(w$p9$Hvlzwp zzj$=q&s(Dm*?O)#*Wi(1s=JS+ zrwxH2t=t=Z*B^(gOZ89vMS-WE5wV%U5bprCe=8uo~Zjdw(V$oV@H<;#!a3^)iinYRHxG!teCrpha1kUQ<4h}F19v&S~f~UfzFuPFV+N$SH@$h6Klldj$tahXPI{$jNjoD>om)OzKi`e1eliAtX?Qt;DJaC+xka4^|7ui=EUaniMy+x2Dy*$- z#%;89Fjg=yB3AqS%GC9A@bq?fN_F*g`8#?$xO#ef;q`X6bM*8y6WQf~^szakZRc2l zbiuiRwDE(>AD>>HHHgO$2)(5+u(h2eFgm%Vevo@eAgVIv?dud#9V=F*U1$=wMw#0o zCnsiBVxp9H<(a{l4zOnPUC<`KT0>d4H!*rKm~*faUq`K}(O7!7l#3St`x4LVYswxr zw1wUy8@CVyLnC+pI`=pQ_~aG$#07QnEszgsFbjJ1ZJh>3pV6J-#M=}exts}s%CR6XB&PvQ@XrGzHHv< zyg$D^QfLC+4j?atY$@j^1M-ybHp~7`L_+hG*DqM&?wP-Qda!jBni~IQY-l+>7vwK} zQ#AiKfvIwB+_`OhHS-_0#dsUd>?kr>{yn6Z_)aS)kbi^I0p7yK^ z3|uiP0k7AW={!%D(R_opJqsF6I)lH~k_tk&@p_tZg&}>k+Y>Hg2+*fxl0z6gaeQlo zv&PAm)V|q#Qt*LHfH;&tyv_E1z!gBfZ=JUVQka)8M2sO#g4k|SA9(`DhQ^Dpv0A4e zo%5VAX0Fu6cc3N8U3FRbdgmEv&A+-MOt+8)d}bq+&je)kAsxLGf;Ic3s|NmzCcjUq z%=OD}^uaMtz>{mWINm%0FAf_k;?|ED8@c(42cFL6`LS*V4^wO)w z_IdTYwomD-wE@2GjkKY1AIAh)-Hv?IX}P(dLh6hQttO#K zM$HPxh`v_7-G&+&yNj~z>o6)av%_mizP(M&692}fCY^@rY-p{zo`5k$lK4~8j==!? zz&#cGpryIqd)qEt;#il; z9U#K$XgxH?<>jd|#qBtusVj^2)!5WfpHdxzsm1i)r#ew`QZDt3-8cI@h%&X?bZlF1 zRGUHspOM9wuQJs}2-le(&|Z-5uegP>7ZWrw0J__M)iQprF?O-2N{jq&u4&W=8fGhT zhA)h{KO!OzL~TY?D3*XNp1C`n?CE|@ssd+}o)=hlhtDZXyK?G~`DiQQ>C9He&`QN> zxs&uXhX3;&yw$r!3hi|_p+~nrm@TIVwJ@oSWk0Y{T=z)FG2(||m+@0&eINj%9|m87 z;{9w;L|R<@538kcI?y^%J2;@poHGBYRHEPr90Jxp*8+QQPH~?y2a1@CA}y{|={8)h zxMUNLaTr+szcsf`=xg|~VB_;fLY?EY!SRer znhQ#76#f>*+l!ChifrBc69uiZx~y!&SW%g(8RHh63WBCMD&W5_S2yWgET|)s{o7MZ zNwX?ThChx&s-m1Kfc`&P%#&#*vh#zSi5bck=a#*zRt7b)gu-BN90r2={LY_|3BMVu z%TaA4lDn#Q#yzjEt&Xl?PIfW#OWglqQj6zEsl*0?G**HACAOp;cG_^gZR_lP7StT1 zhTZD2z+g@uV}rHd`omiq1t|7hCGP=0XNY5Z@CE_d zw+FHhLU6jRS;P<|0iuXpB1#RV==boz++CqrMb=$$nSfcO?X6SkoRJf%oK~Jbnc}YY z{wLlP5dhb?-BM-S%m1F!av=ubNF-e0C5}dWe~#v6ASYCOVM=h2$BpDSx5!*qy zcyESEXAl$yrUuuf+!DxKS^98f{EJ}ye8$viR8t);>olGT4x9y(c6W@pW%_RyVYSTeH;L>T9q1vgv z(ClX(S6f@q>5a}Uluf%2kYRxP{TgkKBooq8Cy6GC-!7+LU0%ko9P^HU!w@J;NJYP3?vKLY7Q zKLS_c7#kyfASXL+U)9WsW884E8YgjA45Y7+tjVrVn|F0xuKxZ(e>K@GxMhTk^)ZPN z^j4aq)`Tq97qJ1Jv;-nZ)E`E4|VrzUsIqMeR$?C~i*pl!xmr zn6R=$t2Sy6-$s^t9dc8xumv$nvj4{3HPsgWy~BMisB@ggZ?^iZrIdJPJsw_E41zwd zt<+9KVUh>Mt>=i|=%e-Y@Y0(O#&LF>sF=O?p>%b_`&9nr3|3-!E|inIdV|y>Y!gCu zyqU&RXCZ~rM;_D-c6Z#8HF}T|pc2i=Kw5XmJSlA09dBep3WwjkJJPRz#egF#rbHe9 zP<&EmU~_K!5j~mN>;b+dDM$+ntvYG)oh{jfwl5Zmm$iRQoyExid_Vbcl9dUW62$s@ z7anS%U7oWR9PNC(%8y;)c&NWNz=uyW5J&LE=ZkZu*A&_xyyw8Io1_nH^SoVvK;?Ci znu0_v3*-)TFLohZj&6 z9#4zjGC|RlHzNE=+R*f~Wp4#)=CP(R5F2>dIYW=+sxD#|n_K))U|=1((e#DPyYZYJ zYYQ{tT}L__mhGWBIIp~1VsT_}L}veZQ9LE2SYRgac|9Wzn=%0Cx@WQ;q(8BZUq#WK zy}%nM_4(t=y%vQ-~T4$!Q}W9 zisX_nTEzsN6XbzFXRuX%60#qd__XUowP}CZENE)J`cMzS6m3)rxbr1J{@N~z<0HqD zV0~KGc64as{wA^6B{M~CZ1_ttum8#WZhZo>!@WV`$2NSRuN}s^3uv!QMTX8c*FKiUy)>vGM*7O+*>pFCt7QZI~?jGs=BpS(YCq2GP$r$u}W z98Ef`#@fy?`u;Hh!G9q+D-wldijn#TQ(y1nEQjB{4fMGUM0Xh&M9$Y-HypY+N-M+N znockN`-c!lhSW|(Uk-XHR3^D_XI8N5{IxhvatcY2HiO`2MV_taVpVK?szg`13UM0O zcD?t~%x=l)rj)bfXlOKRqp<_IE{2Ivo5^0Fq7)yjHPA4N)gDj9 z`tiXm%7?!XoXps<2ZPr%OPOQtQ1*?UiV`EvZH)-S4ZGVLebDZ=-I)i@&AC}W^!N`I z-@F z(2Gf~8dLwpau(-MH?M=IgB*Wj?S2j)vKad(r;~Yop%%3l`!7osi;2EtOqj}6$nDy7z3~gg-EmD32CnaxINXD%SEu1a^@t?IV2X3x)Y;##8#UvF%b<)%&M zep#0SZ4-|-MWnEhjx05#qx)o*YI(N9Up(~jT6MT#Tu7sZ2=m{>feG^t;p&|J);g*LtU&R;!%p=APo0lYZ9vLF=Vv%?d(FA_nn?IRP(@2h!uSMvi(urZd z-42kq_qj4cn32vHm)<`-2ImYX!CFHMTSMw<)592uONw+PH(1a;%!hDib#mn4(qlg7 zGAZ!3b2UAsu1T^y#X@uQZ`3lP+M>+*GO8$g5<8{>iL)j;A3FV+&-on1ZUTy3UAr7g z7g$x$mEw7Y?DS<4SGjK^c9zt{&8sPG=pp!v8dQ@S6eTsO!!`Dw(Vh)oG_}xE{Jae{ z7*@jTVe;-}b26d2@8xH_QU)r)?@gu&&iPZ3N6;; z@X6ghzl(3el9*U99l2yvyVlgf*`7l6*eKG=)ix z>U_LgDaKp58C}XdIeKbXR3q`}A}ylXTRDx@XR0o@kmboBLB*qsbfM%@A@{5fM~Pp? zrHB3Ev*~k+42l_@*}?8Z3ytm;pwkg$?txKOpCWIfGOktO_ifs_q3GLFE#YMU0!hos z!&gj!%4MWDXgtofv|vQkI>qnjR^N2j`K2!M?H_YAe9kcgOGDwP&CoygR-I~-lg|ED z9k`ap23GHKQRfN5R$53E&WZ4S>MbV)Dggpg9I57QKYueMMev5PdsjF^LH`KS zohgWDGUFlt-^W+KH1)@o*hAjl;t%~|*gy;79KyO>xDXf}gBDQ#fri1R*MFoeK;Ew% zsjtpih@6i);%aVxhI_tKa*J?D?-u^~9AIdRxzv<9%#nq(^>~qHxDaDVF^r!d>|riE z!2Xx)UVA2-{V;A<{mfwBpDl&MU{2go0~OEN|0r9MD0r-aVgm)zKmBIn{vCzCoMIVI z@9??eIEYM7NE%O{^_q+U40K)mnoEs=R9pxMXN$9o)OdCvBTf^Gx{gA!T@7YZm^ooI z^KNtYmS@I|(a6?)&@MQCm;O&hM7ghKc!kni$50bSK;sxsI-F(k$yEacJ!ycENXL+n88$u@HwxcP{c6-XnMZp{m9@9zgGIHKn~i=D zfyD`C&qltg_e2g&D(v22^!`6f;`1fa-l54+CKfBVcY12>+o4t2M~SMx?=|Z2-nx~K z&ME%*vy%Zbn_(3qdXKYKC`3gK&yDnBgd9VGDQ0Re?^gz&6CGykcN@lc0f$>@RUJb_ zrWLy*_2bYktwnd*QZ;hB!|0SQi6faf%84M2IWNsnSG>Ay=+g6j@H@oY(~U~Y-@GP| zG)d@^X}H?JGI2VI0naVc?-0B7l|yU%zTExEItlTts@~&=(tOmXnB=2+>t<9OBt{vd zQ(2!?KN8lV>pdJj_b9tPDVGqst93&6!S^5Om4mrs90SR%56YKwHPT9X+S@4ti;!{v z0d0L2ER;UxyA8rXGy5xpVh?GITawB*u7~#LXZd4QD<$H&k5&sY+8&6^1q#XOTN60* zbrJGrs)7f4XDfkBr-<^|24OV*Ezek67G{ad90CkN+pE>TCXQSmp$KSoJBnw=c;01U z&{#bJ1H~Li6&YE7BY8s)sIc|%GFw+Kt;&hzY7Qn?U*!%vSqD<8@+IY$R!<3E{S(Ss~N;&hiMwgXMvZ#JeikJFjlc^_Ur zGjH;|ZX)YD~(X&)^sKggJW5 z?%$f`148g{?b5hYs@32Oxnt~B;+mS3KVD!lL73QkUvr%iBRGzW^Qou%Rxfpoj+uNa z*}BR32p(M;+v+}W!53}v+J$I#eBKGMo%XF9WGdXKG_s`7xmUAI8M>`dnegGkHNK0H zs2RGCmGOz*<%3vCyM}suibALeM#sR=KbEE=D&Eod-G=-4ju{!cGkJ5A_vx}nQ_?k| zUZZAOmOgG}yi8*@5^B_0TY{+^Bdb9r$aRhhoDjJW9yKU)+T~%K515vAEn2wU2|6HD znh8gW3<-^~gK3l8(%%J^az$=b;%l_rUE^M(p21O(;RgWzYj=mP?aS%S z8q2lK+aO4`XH!%0ox5|i&}xcB@8o^!Eb0p$>1>zY6v67-A7+CeRq=J*yuQ4u)s&3M zL%FKim!TkF3Q=Quq?YL3S2C zfmdnl#&Seg#HU_BSFt8B^6P}l8TO^xylW#4#9rKkC7RshcP-^|LtDTNx$EbYd)T&}>F-5F+ zWj>XvY%L|ipW`bvvb8&|h;3Vvw2pGGa_Z?^``ding@@+SVYozXb=d7OiD@M>Mb73{ zOJ@_CA;P-}rF7Hqxm6q^w*QAzF7N!TqkO+IlEOywuHb^2hHAv=_>up z@-lcAJN+hAV@SQP&R5qVYNiOrp*3|5wefD%kPu@Gx)P*NI0$O0QuaLbc0$dJSuxEJ zn(;|y92#uR(V1?D+x96o=*@0AAJ_ZLu~5*3|t5UO_ zdQqt*0xr-Wj3Yu4pwEyN2{NVwBbh~5XrKru_%MVbr8+Mtr0 z1+JUi-2Nw{Knr8IINK;eHR*AJxaJXwPcmruegwyI#6smw!@E_=LjPxLkYu|dx@0`J zJJ8tZ7$Sq5W&g%${R4GYY|m%b166k_hTEOrvdnaep*UKKN+zqze>bf{l4KEZYJUjx zY<;FZ7hPFnh~6S`F&8X3)KJSf-PwN>g9~qx>z2M_eI#u$#F`3*GTP}_a@EoFHj=`% zyp-1~iU_lZbIa%z#s^P+J<^yVeVwFzcPQzTcSqbST?=57f>dv09L3_mtGqiro{?CS z{nPO3Xr?+ix*C2zq1bkXWjum(tH+u*(cqml@`9adus8gfm<_L24%gze4TkZbam_)7 zD%FihPi}9mwbyHKg6H?iI>H@kEGZIBX<*1^Q3vn{&r^aP3Q$UC@swf5ijLIgn43=P z`t(s2M|!`BtW7rnji_ekCp6Rr@ORR+w__^oBRK>&o!ey-*e6Seo~EeeHC<`ny6BdL zMm2>$B|XfJ^?~%mJwzu0;?$H43SI3BqhMa9kOtBm8z0Dfu$R}(PleULSU`%fGWUvr zRP|NHrngb#p`dUd!eY%9AOmvYML-b3DyM*`8Y6*TfyDi=IO4)Z9F4&&74PJ{!?JC~!UX+iU?=ump-9$yU!GjZL~?|=hZPP7tp~67@2+JtN=*UK zmTk2E0*81XaScBLBwiFNW%H98O;~y`4-#{#MRL~_d9{)i{}$S&qKBLr(g;*rRIzxK zi|F04^@p48&Zn;(ag#M_DsBLT-74bCjhBt4;zlx&XV&3DReaKGq~3bD>&zW#S@Gni z?1^5X&sqC1lqe;;R|+~4z3bpyPJ8K$X(0fL{UGS1K?>&31E_nOppqSxPo$7XYvO1X)#`VcxN%Dc+*yzWh2== zr$cpmJL7dJ5$hOciBKzSm}l0@9a>1#&cbS5@XxxRog`{nOaRqzD`w%@r^gJ0^1;(GZeJbQ={;(2WLr((^AxyhfQ_o zar(xPmTdZzfEE7hDsZGzIGOHLu^KqfRWvH8L=T7@hr4Gb;&Wp*+HP*t{bQ7?-Yq2D z`%Ud*igIgo^_tDkVr+;GDJm8TerAT?HIjB|`Si|V=I&q+2<-hFL+XhVyv{O!Psc@!xj{O^Yk3*3(OFUawJz?vLE5fH!^GG3mzp@S zhs}OSqWS%>Bf`jCI=!03TMeG@w!b!xF2wE>8>hOi!BP+*uh=f?^Pqr734cOwhf{#u z{YJFhw3=8Do?j495f`$86@#dAC-24{>oVa+UF1PC8Cv($kQL}dAgj|iB~;RjyF>kt zXpcvEaOmA~e%5{4Y1Sog?rfWJB%2ne3p8)6np`ZY${go3n*@6j6z2)VrZ1iQR>R5> zK+6LrxCR{BTsCEDYUyf>25>3`g59o9M=J5~O)gC&gP1x$e7oJ@zPa9?PFoJe-1dURpWB#d;FXy? zJwaoBnbX{t;|&_+>+XZlQ{CEC-FWPv9@?T-x`Li(m~l|TFejxlhrc6<4c2z#7~Z#$ z)!o=e%g`}t;gA^krt0?n5PJE^hT%E_6*Fq^l}wySb=-h^$cw0pgd((-GP1=k$^n&F z>=~DV*n;sEk}^v%4!ce@FePX`R03*ZL~CUlj^q>+J0v(AdNA zrZM95Gy@ju76c*-zlPyQ0htTJkg&+SCx4bq2~{gQdB9;3K=>l&Yi0MR8Es1Xo$dSF zfbT~nd{0Aafddr3q{{_XG_j2}<-bNsvGik+Q3E9rUzZ5>3X$Fn_r zWT$`>q>+*7wu~G-Fz9ETA$MAe3$!8XpmpD^+wG}wld)B9>R(wPJ4_sLtOgFQ2R@1K zj94$M6MLV>UCceW9HYJJt%tn=)^7qZiVLqLXC=DKlh+4ow4uf(ReM)DRtA!MHNg%= zgs_YB;(jTw{om!+{@pPgZ9>F|m?Z^-gEFCf4qwhcA#nnHppYrIU?O9PLS>Uo+u=TU z8-Hf)p&WkhMN=iAGm6Z3zMM%`o)gBvLh)K;qCNTwD+=6wJ9ui%#6(9m+uu|@e(W`z zZ>G8Ejd*9>4{HLmc4C_j%xg<0>~m!{kLy$~JhXXDhZMA(-h!95k`4e++Exxhsu!k1 zCWECtB1>DQ(*^L%rHcmuC9)xtn>dI~;Z=uws0InR6Zj0gZcH9iTg3Hm@;tK(%PrXq zo^+|{E`EpXgBv(jkPq-=N<1qnS}&CEr$bw_vHa*m!{~CqC zPdkcqQ#}W!J`F$7tyXo%iF6coVk5&-Hc}w*Z{43v(i>*n2dZMEH(xX|uR9b|@HEC@ zG}?QWuUjF@!OSDE)Mwi3v#Fp_RI`cJ9K)yZNVXEA`-a@|P~#Bd7NW+rlkV3Na9*=i z373{hv%;4QK|=KH)SkoL0!w(f5VS9eU1*qhdi}9T^sX_3C3x1S*<(hJ);6N^x>na- zr_GkDy$c&&d4zh8vGXD)3Uh#R=H~!KHBUtx%HG~m$CYM9#<*SbzPKK$Vw=1dmG`IG z*0>jepzq9P#%vn4;yW<{JDT(YSpDIu?xvAh##A}wR;-71C;W6Oqlsg8i9_~5C8v(U z;)VMb0waTR7Y+&IyU7|FO*TF)b)|tSS@Wq;yc+R4*gcclNA1$(zhwRQCLan9>Qdj8 zbg3x;#Ox0%Z!3S|j~rQ?|2KAl_VBotI}Wyc3whgMs(X`CuNY<6%S;l z#lkbYFe<2T<~k8M?*38g&WPg9dc&Bt=seWmudOVf$}-mPtJu^Fo>O);^D61O`4|k> zxhE;o#D8=jf?$)Enhm>{Ab_ty%LFqJ%>i*Gv7E?*l6Tgm-YCWtmRSGI+1I+8lqrSmWqB@>Go1eqX8%=20kY%(n6Nwq0M z>>)fL^k2=+F^kXyDlMDx&?b2dEWHXw5^0(ZR*m@nNE*y5ZiHABQh@GC{?|up$}H-V ze%i2d{lz@EYBm^fg)I{f*uL$B+lFT@X|G^x{4m{~>AsJWZdsd=9UfgFA&ES%f}*nF4L)8%W}NfiKb-~w zGBZ_W>om&Tg>;I$*rC;n3?IFQX5hv*sp0`p*3Dg{@` zNQwQ?xMbiH4v20e)>y*kS0Z;B6kjZH54(Y^hmEHZXB}n>E#lTWMMWEiNQ?s8_oai% zNuqVbC{3rQ!Zc>iawcWG6cgxPl|X39W=aaiDftjsZk1Hd{n_dof|g@h1a2uM>D51A zz;W=b4P)R3{8ro#+r)xAft7>`K`2}G`8rCjG+CojV6oe^e07^BMPufbnNZ*c#P5nZ z$Fl-TQC?*x9)>5!68bh@xY6=+Yg@dZ_kGeN>o%0ZR$`RY7*Z`&VkiARq)cCMo~N~9 z(rq5>f0`sA%Q4sdOujGFI}7FfgGg-OWp7->MzDpz!AFdln+Qp5`v>1qfaEs{N*kl# zEQpL^@MzqR>tTY&Ut&Bp`7e#{<^ME8NKgOpF+bq>5sMNwW8fCPQllvK9o0O989NtI z@|w1mA*ZrkLFGt7CE9FV2k`y#EdAj!r|1c5 z;thFd0l2w2(fo36#2DJmsm-aiN)!9R)<=ecFMeDcbP2yd4A9dY&SV=*&(us5%Isd@+o;vEaH>NdvIw+_V2W#=qDVVwl^>8&$y)2EC zNA{dQ;O9(u(~4o6#=)Q0OToQg01h^UfMU9khSJp zd8-38iWjjpTfdr0poW(RjPIIVU_AC^Y@7mRv4*Q9{((*~H@Il&0(Bw;AR}~j67si; zhiUEX``dqu;Na(D@+l9|n=QR&U?<|df+tbC4G{~eHm7}qk4D9zMdYj(?F(*PcaDBH zX#DZat9T~yaArFSOaBKhZTWpqcyt2LlGF*2AyPj`-Ho)udp*m)!AFFzDlnCY72onL zxe0C*U-)m;U^sh}&5fcL3 zuuUxc4*877ls0YrGGAM>IqQ*2;!W@4{Os}9MZ9nt92jrNH{;2w86UHq!bn!fCRRd% zOTee$%sfG0A?m$b95`z~hvQD`RDy`1R_D3EM1YLmaLa1(ol~HXXw>&_Nu1u@rcYg$ zlTD-hC@;(|QUSWo#O_EaKZQ6OZF)Yh3G7A*=95a10`-(#-^#MbZ6!6yQcSWA1D)Yj zhyf5vJQ%BR`qmyer^erU%5p`G4i$E;#Vn9_Grph9O2O4@+I|HrCg(H~m^~#iXM;Mb zx(5*=>1jkzw{}EY82QLR{6Zi`1+{@LHOmE3&>9E+0LYM5Vn#R>IF&tlEL$v5z~bj} z*>>>rx!v(;OAH!!)X-EfdT|X`(?^>SY$3+9Mlx&W8OwPy-#+w_DXNYf1hHYk*0`Kq zaVXBgf6CmKT>}U#_V51{vo0AY(;*q7WG&`E>7;e`#>8I+mogDl=VkikB5<(U1^8bn z%8$IAdx3YZ9JoNL9hT4)?oo;E{v*J-7cDw7z+Ow+MlUflr?l{PA;l{U4(qQm7H!bt z%w|5g8bQ0}UiB*e2f8S&W}LscTuduCrEsgNkKJ9AM{{5B5+f86cCo7V_pdSmC*x_W zx9<1X#|Ly=qEJC1B%@s>Lx==%YjyCe^_3T9zhwE z?{n_TjWMw!RR!}y!9#}sm>hf_njC}7`v${3shen7;ByG|3h9;W5fg&r_)CZsSJ#ec zCO@x2!5GuNotFqX(z$@m{3zT*Z&o6&35lyz->>NavDeg8tTgcKEka zA&YqR?rFD+>{Es?#EhNoi~RU`r5O7Of07l8bat%|#el^4CnAZajU@w53qRQ=`3lsr zYE{KAr{xoS0y_1k*e3c}TACppKUHRy{<`4oEHVB3ebGn3Yai+!5R&6;eZfDgJOjU4%K@^ROnCn=uMc7nO}J8Y zeG;v2?HLd=D1S%T(%xs5la*@R_4l%8j=#||brIQJ={3%vMokBm<@@jrcTE7nwo>X z_P!|zdJ$TWeSZ@H?j5s6G*i63DIHlN7GB}eUuitKyCZXTy25oBchs<7DEB@qtFnYV^?p=_d^Uu8eOv85kLG*AIprq zDEza|mE*o?)SyCBnwO}6xzj?-MeRwU3)2(WKTCM1MVKJdYX}spoA$>M!i?dW)agutO&&P5wQRC; zXrr~w^*Ut-O1+&&@tKmN@^0HSC!ZIx#V|Ee(G^g$Cnd70M@+>ZsU!@Z-~TOZ(Xr4) zSe{hKtAOpY&og=K{Nu5?cuB8K4PA`nSYH0U&P4J8*)fB8p@-KE(RyPA)&SmN0k;fV zyxnn=E?SVX-nHtR8FwnBtmX$kvGL%aDlBR0{g>aBXLX}b0COVo=wU`PuAJv*+~BA? zYnnOYiH?`_MjQLzc=-mb0>(3LsIWbvZ_P5SFX+IW7 z_rnZ?q@G=FR`=5l|N6aQt#oE#42=>U-wpK!aRPi_{fb1`wroFhdlj18Vu@nVR{s>MRsDaybW=k#IlLZl`C1B^g(zXg#-KvF`w8|jqp zX6T`Z5ctoS;CH_Fd*AcFu5n}B*i}uAv#tr~&Xyj?ES4ndOMTb+qW~dE4BZ%;E~BZe&hQeC zTz(!Ob)-X#Z}tW2Ka=gOde1V?W3Iz{t5g7G8unog{KEd$%!BP0Jt(j}HJRHVZfzQvlzzZ#XE? zCuu!4KDlJ?IUZ|bUIAVqrRjX6-{P`umF)0*lVoG`cxojEJW@sj9yPMZV#S(*Db%lc zoTZ;eobt8fiBr|*@5RDOO4AKsjyckgo_S~#Z;g23{5c~DsQsN#Fa9qQ>eZc2sF(1U z3H9oKC)7*)i-dZge`jR-@D~a78crwFOZtn1ddWZ|Oyl)?-!vwlP8o-t66|`s_VpmF z#vXKV`;ve!-|ZuX)i~#jebzAh=3d8Kv~O94sq6VJMg_62m1^>QX(trW@fUWzHgt73HeqR8U|Na6<0VYo+Y^?hC2^&*@sULziFv03Gf;aTx zg7h%K&=pw8)8DHCkMLY`rYi5rU{(2q39E`M00^M0BLTn+BFY{T`ZxdgLt|VyyvAj( zb?Rb^L;_?ScM*}i5Kq?vJVv?K)7tUZ-VWd05ll_)M@7yk$i(P=>#aohR9jZI4Euvk zu!q`J+3T|Tx75%Y+uYGNp2uw&=p~;Bkm#*NlyLO4wUt0^J9QpBjN`}dd|skzT=6(J zfbx>5lC?bTj8pIyu@=%*wpE z?L+KHCt9seqt+OCv(BS3MtzrYXM-=8kZ=mLH;tK}9u_e}L0_@wUL^6EDcr=r+NQWg z%rUAuKs)2l^63(CrszqvIz)5+FxBtIlaa?ENTKwYU2SEkHv12qBXVyyD(f|C9oXdP z#+H_rnqUYC7GP9r@KoAnVKr7my>&IijW2^T#75tA8v7Q0tkjlM>j7yy98X(S)<9X- z`S!@%rmLZvEfcMSihaAg4-eBE?}&!X=^Y=hZX%kJ4vDLHLWlLz4wVn8xJ`(huqtiq zpt)>&WXk5z$dw#3j$@FVic6KK6LrWL%g4!ipP!*QOH55|z5r zz^u(%b@g#WY*08v7sM7b?>GjXs*ivuHRv}wOgdiOBXh!f2??$mxTY9B4`Ea?k#P~= zc;{D{ef+-mE9p`hk3>`l&4RWmJ$5CyUCI?Q(+*9TnAj@Z7*sDH-{XJb)TvEFTDbY@ zup*apZ(O4is%=I?R|ye`rN}sX?Y;V~Bc5J>*NXho#K0|-gU6(a+w+%qbJZh09Vu$y z8SD+=w{*n3e|5QV!m`9m>>)?N;5f57>O^A{L~8RO-AQ1N|JcdA1+2dO3Nk=A(Ym?X zG~u|csI!7q>GcxQeIh*RIEt$WLP}p%=%|c=#E`r&f3@hCa)JIa?}HJsN6IG5TIN-; zb*K}sAT_Xld|U~=?E;~hcZ0kFJNE57QGB)FEWpI$ue|w+X36c?2t|8NhiN{>oxV4YXT<9}Ry8N!M zFU@>Y#jI*S7HWG>tI~GsWaG(z>q>Om!IN?UawjY#m@$+R&CnCT2^alt8Zi4K>Ii@W zn@DGV-yaCjR{(-I-;0-r^=ln3EOi0zfq6t(*dC1n0ce_rM<;>pui%m4;l8{#RmI5w zd-?{zFo}Escn|wt>mk?cl#hG6~#7l?63*RF^gMWpfM~1z}1E^sT6CT|K1!nA}1lMl? zSGoj{Y7oxD(*L)@(qH@|6cf?EhGLTcGZd4~|DRAySNA-fKlcwp z$HPwg8&P`%&{2>9U-Xa_GM<6g9xs9vVKW#+;!@JfyDp;--6D0R{GPZ)DejDsG} z=LlAWN}glb#H*H|l*wj|x~b7A!bNTsJtJ&+s{#{iIU^>}JfkE~yXvWSm4D`O+a|QU zV^7X`j&%~UDl_OG&e-zY^F5vj!;9K1{oR393?_omQ1APVYied18XA`I?>~r0x~ZUz z3ds_WsxuL)($Uf5giI137GWcsQNli+Byg){M1BdA_$Gy2>`~1Kf5AUOEb4+zDxkf@ zK%t@0+Vmc|a)OIall=T>qN!~30sVK~WR@R8YdzfFTw%4ZHyyApmX&=(MH^UbIzm8r z@xg=oS)3xNo;C;s(lG4b5D9khHyt=|cBup>I&(f;&O7Rdat-!Vz~nQR9r`)=Cj88| zq>QyI+6t1{d76~ODtrtD23}0`zPAr`c?HTTytE({Cw$k*+|Z`995K+WYRIx8-gXUJ!_4Q{2{nPonKbkN6r+{?(dEAtQ z)1YQNpw?=iIbz-(t7fYgw``Lo-NXO|W{H_eiCHxs z2sFRNcEC`a6;)!^R1m?DudaSAs=L0>>?=`6!4|vMF|8`-m0g7*mh_NRZ>PhYyTiDJ zjKHD`?rz0KMtI(3Q2*Yrer4RfiHi6E+?5u;K3av6;*spp@y&yw&asl4>2jtW_106{ zrj8n-d;v;BJb7%nagXYiYh!1&Y8ymk6^ltYkw5|%cR|=~7*hjOT8+;qI}hxuJwJ`2HTqcu zI)&jKJy!@fZ;o&Js=ejS`EMS8b+ za3~-&`bUbC#nUNLmQSTfSw$qE!*M-Nk@A0GF8Uuyk+S$}p8J`0dGVjjbN?Xi^4h;k zk-`q^X9%L(d5V<(PSO;}um1a)h#B(V2*3C@6ER}ygyHxa-KBhJZZ{# z(vqQ^!LFUpaZV2 z=_jrQI?s%^I-u)Jf7S!tXZrIq@CB~F^CxZqdd~E3BhU-K{(kjm6VP|&{?H8cpXvV= zVBk!Dw*rG_`l}5Xg7?=i+zt%G^#8^kzzFRA^c!~qqwxOwg}Z>UGyT^Mj3bgg$WY<$7tbgR$8HPP#lMGYY0DqBZ=gR3kJ0q}X#s6iwyMJU_fju9= zD|#AtQQ5hk#%-|Y!_&BV+Vu=>LUcPL-$3Pc2G>u&J|kb3;CJSDtyb_ETmze*&tR&E zGq`Fx>WqAq(EBsEG9eK-i<8bCM@&D1E3`7t$d}jV{(c@FHwa|POis2mApjpA>if9 zm+!fQh^?$y_)CdRmY!)X7=22sOTIAXT-^I?3-vC0y*maT0O0!4a0;OK!nAC`7p`9Z z7C74l&kyk;fP_@{$>K)R@ztAC_p$`;O|wW|X0@`^YO5B*oiTHoo-KYEzD_;MFSNAo zGXuh zo0Z94XnyL;!*oZV9b9@d%Gr+iHD;k{_ckg|smlU57awnbB4s$P4U_S{k6Oo7nYzmC zG{w`kA$q?=Fr9>NlQ3tFH_aYbQT0nY?*}h+zOR4~h z2h4;WM3fHz_74`gD+@MI!^WmEnV!@4lRPPCyQZa_Z*Bf#WM);Nh z-cA)?z`5!#dQ!3Dt;AP(v~?jD%FZ=J${MTgmH_M`N+1NmMmd7u<|$VKgQxg&%QDVU z9kX26c!7SWn4wW12yUIBm{G*O9-OM;#!K`-hKcRL#3-u)v}y#w?Negj7Sv?EO;e@Z z*fSniffQgL(EuQN4*>6BW$v7k%jmj@nyW{07ghTX=Mw-(01jb-SHc0n4fxZ;pF)YnY};((+7scrN;klFle`D@>-2d$4KlpVA|Ct~D;GZ}@?*2U|KO!;!oFJkU{BZIw z|8nvl=4Iy{bzglv@k!gufv@_RMa*#fgE9|3ac-@vo<2JKqJ~U6J-En%@$)IK>R#FkGbRPO;~6 z9b#2sF1FKR3mQ2N{edhMQ^cMpy(xC{kdc^;#Df;?>UBPsTI+g{T-a@7XIq?ch!K0RL+|#yYegZv_&}`wR=8*N9psmWXt0lw zlPS?8g`W|-o&JR7GW;b7`}CNsM+oh^7IDdUd(MoZK`lGBg|-o4kEVqLo4xJ$w3O*R zFyLkGcrRuxTg1QD5h*8Q9V=vH!VC5D9-vN+N{*PAnD8&S=Fi^f&~6Goa26Qf>gJA) z*-;|cb`~q-g9|N}#_mXUa?Ff4^$b5{&gs9SkILSf%E7g&y*eO;^*Zt3TJ)=eIbrjw zXeArq7up02Jh4bs^Wih<2)E=;KG!ef^vKJ%_uOgkksy0#m%pV;!X>aVj0Y|k54m=u z%!P!*nEbiL0hyv%I6gnPtEa^Sd}9>i;1|VTe)o#)%)%kOc2%dG{QHvwl4fXIBau>> zD%bdXdkz5o$<>kuNo?jiy%%sNzrgarv*{qp>7BO2o^%LU9YuXUT~Tkv{t1c7t-dnn zmVuk&A5CJR^y4W{dXc0D15o)vxMjEXn0R?AbVW-Fyo>lJrB+$<`3d~>$K#Sabr+6; z`^(txmJ}9n5s!2f8?Tldmtn2UU%tkB{Tx!*aeMVV82+#rd`l1&jjheRa9864$T=+ z6y-~Ak1b}7E@UK>w>oAOcXU*Ev1@#D!Z8~X0h#MQ@nLw#)jG!&6FcxwDQiQEex_X2 zXjOIi=`a^~pnJ#X;J&d^ZLM6&px;-BXa0sDw#wat+AK0~iG!zzlg- z{OrHQ0~r0|$C~wDKd^EA-~p`vBOUc;hEVt>oZPn(ya#DYvanGB+cG z!H_n@hk=JjMOj)JQ_0MXNl9Hj_D=K|ThzChncpeM$q6bbDc!eO8|5;TmzUSU z^b%IKwq{q7lDe#9YMPl}TFRY!aNv;Z>3PA>-``(HN=oWWWK>kMva)hhv~)^-f4@R* zVd34}-CY|)rgy#>iHX9)`&-~y(<9tJGV-v0VBkh(RaKnHvuCa*78dJo{TOQrG<`pb4pN!m6r!nI zk7j&ikULpZ4YA;X)S8rf_RyPsxNc3oVSzdg<+kMQ>o_CrPJphXQf6aXosHFRX{Q}L zmHgtX^9hb;Rg`P1J!;`sN|J{wVs6tx&Wzq8O1^`c_>%=l!UgzF!?@m{pgrH8w$U7py0QGqv%EQpPynbLup1 zVJa0+VL%x9J@_2I#5rOuLA^eT_G({B65ZyfUOkG>_a4u2e+B!bn^>eG@K-xcY2$3{ z_a2Qu{lHg+Ftdi9f5$Jr!17Yx+e8+9=uFp(8#eYNxs1sqQ3crVnKax(^vd zqEh#@aI7_0y$&9a4I~c>LpbwyvB`1A;@6BJJ&_`+gg9}D1>SpCe>Jgstmt;X^4ExN z-j%ON4ccZTQVX@gc7(ewL+)yE1JgZ>x`W#}q|1s?InR|Y5HNGUOik5ki*mf0rwu;blNuKdcor~ng3O(@e>_PA@!*O)Rv7%`?>mI;SZXh?Vzs;?%( zE0!rN^3H&fYFK0$yPL*gZCy`HxJ0C^bNTyNa%a54?b|fZKCV0~IKnp@y;2kWiiu<} zlk>wtj__TxPnu&(ycx2jxfDboYJ9I1#}({Xnq@Lz-vvIVEMJ2j$I2>#ZWW|pB@uH| zcQ$VhW2(vwU)jdVK+#n8;N}iOoH3kBzD=W3t@~8Hhl_j-KZkMfVh$7AlVPZp7zn)R zr+10gi!HIlXM0mFnu(~!XIk^auxF4~g{MwybqJAEtdm&ckpQugy0DUaWGiwh6Wh=} z)pV(MVKc*(3?lz=`wWNM#1W#fMm2CGBIxGPxQ^{B3-(?2^Ze21$rJlj$#-yRRdEMP z#$IN|g;F}ax@^qfRJW-s#-MCRf-!$X(`=TqEwX^{HdW|O&{G+e^<5rI6P)P-s;Or< z8^EpdO9U*+lvt2@pZ>~Tz*+@*d-EdovEtgA*PXA7Cbi+H4qH{#IopJE9*s_~Z-3F^u zt0f?b4f`6%4`Riykb2sMmppV-op{wrUF z2~On&-X8=Y2%cys2l08;SN`O!nm0}$J*pV6wwhcfN~iD0ML+7AOH${ zPU}gNMnb@Log&7R7k4wp<#mJJd&bhG(?fxV_{d}Iuo7|`pDq@`H#PO%I)7ajof})o z9ZE{~h*@0fhIXv3&cl(5B66dfrK)wSJ6DoJP)NwfYV4el91m|_^=EPXQ*{fwP1UrGOUhVW!|L<0QKq6+_jNMVc&evk$%SWjp2Ge!h&~C9!$dJ-4XJ5;R<~LVt`FTd@;7yP0sTbJdk_a!gk;BJEty1Zn*lC-$Ni&p8n zccXmTz#vB7&q6vSs;@H?ZZR(JDC^`6d7BieFqVx;>r_n`bCF zYZaY!s4yxSGoykY9$i+gM*02E&UR{`ll)g?MKSIeOu(tjtO#Ke={fb;sEeP-&|P;V zfGj!!c~Y8Kp_7&*yQa+j$>E#6BZ{h}vb+uR50;oh z7ZoQ)($m8I*mo@{r3ocB(pvCKNfNlB4o~_N_qmF(JuyCm;!7!x0_2y~oCQ?Z2T&iA zPa!gWSVFW%AhZx1(})jk871HN|+Bp;jbWJ!Y9$0ea09F8YVZ&=2&xrcyrHE}MtI0S7-}u06{;2u7w$ zI!tqXDaPlLJuQ>PB`Hh8!;;bs(h#iT^%ADRhQZ~5Vpoi`;%Dg`CC|2obyXXuU$vmf zuQhngLxP<^g7~QNTT)H-HThnMgiUa{GDQr+ug?W-NpCQ-s7n~GsP2-$s^CPzJlK&I zMrtg<^~(Ob>iTCC@)<^J!lev>I*)lZyNcw)Sz(jT7`3l1j<31bOm_nXBR}N32yRjv zdogQN@tu4%gf!YfaikEUWplk~H*~d#d&F#<Jr3+^ zcK6ws1_KFAz)xBO*gr(q@Lt)Hi089Cj@$6WXrtzuXZA*Q>Jvb*fQ_GvNGP`7Zy4RI zn64C;?sb2(%pZUKh>nGu+m8Ga@eRgTZ^G};*i%dOOq4@c(Wzbwp;1v0zh-^?=mC`; zSqqo%1NsEz<#++W?lTv3|0IJii)*CxjGnq#Z^usk(k>6lnt;r^8 zpucP5R*6O_=s+T{xwCIMYF0Ee0X^KCR~=|I>Etg!Mk%x9nLWyI}7GEAC;zvRh4aES9a>t7AMt<&rIHTW#Ty?f8e7X^2buezRC68XsJBD>8BlY+B_ zyvBu!!q6+YmX(hVq8H0O(>r6ps*lsNcLa*m%=y%7JgnLz9^S$wRx|8;8_N^vGwc}g z65ZdTAz-gmp|OvqsLE)Eot873{ovzJnNslrD;tveYLRt#ahrVIe8x5tMmq~?!Q`wqvLI*E}l{kFujH(UG(8ykzvne8HqIydsM9vZy8tgde$0b zWXXG3x`_7OCC((x&SJBoeBf%EQR9Bcs#GXRxL1W81Uku~?4W0b}~`UOeAgBvRB{bYIR91D>1*m?ni4dg?18_r=FS&lvgj z0%7Q@&#>x~O+F*d1RB(N&FqMs@y@0qD!rLx4Q2fGqv$x=LtEv>1lya7Tq}KH5PNk2vKNssoqAL#&^Vd7>TQ?7=@ID z-TJbuxQko6{N7k^AIl`WDJKoMgk%SxD7pebC4eA^igYU6X*N*ld^5qKEB19Zry@M` z;bkNX09^q9kSGuY(N0M=D*(;w1&{SWH8ovh-xY?H35hsFgc79BK^ORnTGeDDbhGUnMfQgKiFe9NPnL_20Q6*QKau70{{UM3Nixk zw;6H7Y=j$IbZhY_b!%|KknD~4-C?WVH_?%M*Kya)xH383| z0F#|86<@=j@LmQspB+HJGHeKd6Il>CF#B@;x6sozoIWHX?g`mQe1J$-$lSfA} zs3<|ewDl$cGXYix;K~aCe*;Wvw7=r*w3h|YDby!gU%5dPE=ag(?FY=2*~^B}U|pm@ zs9$!p?}GCEdTUMk>un+9ueW#Fw|91Q@04~M^zIk;_AhT3J60xDIJdX@weM%iqrjH@ELC&{=tuu`0u{*5yJ zL%zp6UOU#E=>w}V<_EebezISb9jSIh>{iQ_UBqVg1E66?c@bX6xY^|PCxR~AQYrjh zLwMx&HkZSltcxHtHe(Ua6-6MZ)$l9X zmd)eb7t6gerbTx23yZzN9Rd$!indF0`W%t6)5!zN1?0wiR0rCha3l=3T~it;AeA!B zY>4Yt=h1MOJz;w{{$AaD%uCk6h$^nv_oV)zzr)d>``@jMv!gR>$Ow`{b@&>2lD-oM3tAc8oq=QeRON?%%I~&1OP$s@jZmP~r`qo_fR{2L!;+dT-AdXUHvR)Gnv(Cl+ z(f-ZJ@zEWM(2U+25f6^=+ww-Ux0*uwHI6glP-9y&$wA=Hqer8O_7vIFW}y`_5fS=& zWc}8$nf=RKa^yk_;knw*LmZvt&97h=QZg3h_UM&tffl58cRz>-f}K(BoUOl#y+sH* zT0FS_6+>||vU^w0L+2BLSVGy_RDcjRwO^zI02)^WL4s2gYzrN_=6Y6LaxX8Q?BYY< z2g4d4=@i47@D#(E=$v8we`X&0A7NPI|C%FNf6S5i|74D2{re1S;(y1mriQioH6;6U zhV_5uR$u$oTWmkL)z|(xx0-|P?{%6LY*3=W`sLS+<^s|=xB8r0ea@{u=T@I{tIxUB z=iKUZZuL30`kY&R&aFP@R-bdL|3|phKSHHlLL&Jn^!TUz2yhvWfA#+;fQbaV|NiRl zF#rqcbpMY7*hpmWzs#CYOgI%l7*i*(*L-7YbV^8U1?X$ncL3O|%_>4WJ_v-Kc zfzQ}evi{liuWO3eL+e#%`YcZ}GCH{`jE><<}2Aw}0@mQIP%tFPr1`Kj38(z;vJHWy7xSKY7`t ze~*{Vjt&51zj@h)Pr|H;8!g90K*@KEX~j(?uM~{3KpF81o?Lmz%F!zeqP(Z1gENFL zcMlIi)Dl5ZR<5S^$@9;Qqim1!a=TNL(~_GV*qL3nR8OLo=XZB63^|B^OFQ;SIyYRw z_BGTKpreyffbGX0mVK6sGOatd5ZZ>Uh40sr7@0a_$g7m$LnH3JX~WN0GF2;Hv@K3| z>~;Aga|1BeFD=go>V3$YAL>A`EA*W&VR~to^>LoLolD|u+lWq)M}?dcc|# zB(t;|5~BKf%xku0i~~zMeBy5T=XvmqX(0uVo4jKb>Gg@hAzxAo=AWz z+(_icWv+|k$9=fi+&I~)K;}jMkSk!H{>Gh;($8wrLn8ZbOl61G3KZZW=(N+*1bqnZ zL8DrX^jOsY#3GCvZAnmL%ucB@#zk`{#3{o)Q(yOK{>vC~JB6gr*O(Wm?yB{Qn$f<) zE}6TM5Zdb9Qt4+9w&in0xKLeA>ps&yp5^sG)z5EC--gY*B>OTKC#w|3s48Bu3A)y@ z8M6Y)pv(BQOnYT$ElOhe$V0D_P-1*5DS6>x#*@n0mg(%E+THQmo0|yx#2=garIspP zD6FgW+K)$`g6@Tg@s}rl2zfO@N96UCtDj77LQCy_Qd?kUPo}_Tg;|~4rVP#U)qMn| zMweN@hv+u{N6;XBADT zbtAv#mNf}v(-*IgXx~>BIkSCWE%I)yMsotqVm>g@&~8Rg@l4h^<<(LV}H7l;y7qh8N=ZM@<$?gHxP0=yo ztc-*q4d(R{MNbTIPH#Mg5^8HY^$iV6jE~|v%~J<9-V^w&x7L^!xrpz_lodbSC4G&N zP02pAtG>lQbS3uaPklC&%gMUuNNt$r-_z30EA(L=XR=2^-mFJyRn(Y21qIN4o zR0_hRwc4EoIgt%rRJ;uYQ@`tM$jhj8yqA7lNy~Ue>(FK2=02CryvFA&w~tLZ&Z{?= z1u!Q{Jl1oqn?wQ`ip!F;2ZMCBmr1eSWd$36N!%1N=T!>PAfh)NMU?ADsr)sWYwH|? z9UVRd7kICTe)zEwXNjgCMh~xvwvB1_-C#Eiz801JOuhyz(OmU%w%k}^^nfVLyu@u! zDvp9_nJVFSCpFa!No`LDh1Cu{a!Ry_?4~91;P_#IAoyiaQMPj#BYv-XgAFs`R!u8m5}B@U~Ak!udFb$tq*2?Czy3a-`HvH9tj=L#z!y z8}^BN!yv4g9dWjcGk^?kaky!2cQWIIvhjlnEvQ2k=>5KnWhZFPOK?X$b( zwMqV)q;(f=Bx+y|7L26iOWIvCCeAj!Sex6=Xss=LFLbSj>b@!Akm^D@$R#`E}lWS~JmQ zEQqKdU&6#dScP}~k8Mo(L+MszWMLDu%uG{s7H7|qP;;DNDTt(xGEqEPb7AuO_8g|+ zHNP;%RN?tlOiPP!)sKf%3fkkoS338^GmLT3&P$SIcR)HXD#%u#Qi;j?62=qc@#pcY{Wnn(|+?eujDTJ z&9jB+sEJ7G5mEKW)+OZMM$4-Ze`N~MwiXL{azy060XDEpAMw4a;+_%@rNSy@)`A%X z@#RewC0_DtC?`x?s+6#1eDv-%@l0p;R~$wyYmE>5jF0-9akvtH6}!FWn{T7!y_xV_ zGAi1CLz|=8REOB}(gPugy5+(bL)Kw#lz3eXjXS2?*JL=q@aw#3=lq%$k&-Wg-$`hA ziLusJ@nk~T9g_9HSK`~oo5d(JF_Jl0CQ7^sHfTy~!;nB5!z#i_E5y7n0*NieTuil= zz)59r>7^-uX2n(+&gJ zSiEd+TTptN*r8Iw6q40Kgd?xjU*k2*|s z_MX8Vr6jw%X0SO;V&5OZYr9iP5Ud|_|A)PUV87&a`_QrM1_R!>FthzFRz)&G_N*Tatv|Ngof!V`OtB?PV%}^y~=y9rF)-PA*`ORoo3h|>8%p| zU6tU2%iPZH!vzb6s+IzQovl>HJqbOF6&?GG*>mI)YllV5gO3(Yn!$UDd!AwOExuGY zMzE5e<3)Y(3J$v)G%NjFFrIj1z186BU^=?RFu)d0!S>osmW7h;wXp0(8ch@22h@Yo zR;tNnBoPiw56MLph>Bia?O^5c+29S4YH3DUNylc=vekVc-AB_LyVUxof_?U4h|0q( zw!@|VK8?B;@tTOJ$UVrLlB^vhuUdGU*`=xCB7|P_;Puu&kD;e%pS^I==WWkZb0O`S z{6dwk;S#Fp;&!~EARfv4A6fjr+?`^wTBSb-aD0>7ad<_TFydvr;{`E20x>W{3(5de zvfDPV&dvMG_U<>oh|kNe#=d$gb)tQLwZ{Jb80DsWnt)_1+hwHM+u;EjJf%P$OR;N1 zjc7-nH?2%G4}q75lAEppdVB3U=xMX%CgR=cxs~yEp8_ocf)y>ICzYF;2PAKC?RXkq z!yivL%KzjSaGO3x8**K(68dH>Zx(50I|MoUC9Ukw$WOT<_5L3I=Xoov-X$RP=0tYX+mWN}5&T)36SFcG5i`Y8n{Azq zF58g69O}~xF+2h&ddL7k@oO2x*uD*(C|={n*LKi4g*^(gs2~9fvf$+)WJDdJT}E^t zS46j5;xLoz#lS@*GfjMKT^zf&7)6nhZA1=nv0Y zZlTVS7A)nnKF;LVZhO?elu`asxtGgcrhr?o2(x8{J!D*iXV&1_8?0eZ(q&KG09Gnc ze_)fU_LF(Dt8cL~cemI&m#&8Fr}yN%2dNTRaS_<41$m$}iW|*fH8dLa1U66=C>>q* zEqW@@`X)1kf5;|BXL0u-O{-06YeNc8A9KT|TK4L(yu#Bl#o5~*!LOahL4Dnh@|6pW z+`D*5&Be4*&I3A0OI2nWk2KOJbP9%-4aN`4?m$5KD~H0$yFAK$iY~;)l?pCI##m2r zzu0t@QZ8dkDW9~rzq#yX{x+Xnt|;kfWaNwHXm9{zO(Mm5JF7b>;K&rO*V0<%ZaVH# zr3p8e;Z_2^}6#{$+3wZ4$ph?9_^o0cr%*K;-L5xg~sJtul!&6)JPbZ^jf>1m;05 z;m5ivFMqr|`ntOAolt>B9xNBCzEMj38d;Rl>qwBWZ9H5gpJ~LFT_8iS8R7B%!0Otq zuMOBmx^o(1WPw}UI+WLxQdPtH80?PxEXiezoOLKG?9rB}VHPg2WB9?%Eru#8fIDDs zuJd_yY_iH{H-4RepgG^93Hy+81RRo^ABdb=U5I#eXtOq#GxFMzXVbCj;!$e_@4Zk* z`;|SV@nk8D0OUnp#xzIigxo5bNP-tCAs$xxl+t;J2r#`OZ+kn{OJYCdV%x4s5~QDu zZY*n5f%h|Sw1H|XQLCW%1q~s`m*_Oem72^6rh5%Wbzfxj^eLe^FzZmpDXlL#W)piq za?u>XnJ=hVx@|V*zzDrI;nuI>%kU&t99ov;%J6{)!)!)oI2YUIc=p{}qf^y~9MwEGs$5ALnmC`e#TuZqborFz7+_{ss zqqjSpC|gPs+t|w+E(K6`=h|eM-kf+i+{yd|bVQ`o^nxH^B@et`4!Ytp5j(FA1!$>a zY?F0Qwps%)K5OCNHwp0vn7SLzZJ`(mXef16N^ROJwF%yJPAR`m1Tz2nU@Yj^EgIF4NQY&retxgtXXIk8vG>;r3&W%8nLfms7*V9{v4rquvtF zf$$p3>$yP%Ak)W6<~y+-M%j;(b|==awB=Dj1W;;WLy+?KqLM~Tw|m&GQ;IX)cE~xt z6_XgxAkTzl$jXQD5tgs{MT{|!mDBs64@p(dNYic!-&1?}Axkh_R`AIfHszC%D^uKg zuOwa#3Fq$<7?Y}Q>~_Chc#lhI8;t(E)BSpnfbeUgr$KsmFxVoc7Vqjx}C6GL`OtR}|QyF6}Z~Jx(jy5o0I2zwp)81~a@GZ&wJs0vA^kqKzX(QTE+j1HvhiT28yIJ~F zZ+&|Ay%z*JI&c>vM=kFd&0<=q`P*L~s1=!z%>P8-zeA(7+&k#NE>50Uwu=S2;?l3GHV zb^<>`V9-$X#pyST4;_#4b3vqRD zRq{bl73v7(q1)*-BB|oHFXFO0%gy@~g2XRt+#$q`hep~@tHK*%jyU8(VSNbD7PropozS81A4vOp!Rfe8mZJ0r#(R(L=#e`RgbWg^OMrqkDCBNHBreqtcbf^Z{jZXZq1<>vGP z?i#OomAbk`&igSDUaqw)Ht4~@YYdcC+G+GQ!DpBU6A?Ty(#5h}W>m4&B*^m=EU56; zOD;4-5O(;h?{C}SFPN~~H;Dy;d3WsZXY_}+Zk%v*1+;)q>PlLoL$45C9G0r@AqG95 zSEV!Hz>zU-W0!jMtu#ablF}^8c(@grtcvn|d&kFS8EVEECD~wQ?tVz?5lwb`9ahnJ zcCU!D$Cbn(cw(U%8 z+qP}n_8S}j`7Xbk-%Z!~w@`HKnc zieHyc^|>4}sgzOZbzXBRHgP3AxJvB|LfBteuF%Sr+Az20kkyuVH#+xU=zF@%E(WG} zj})wieIde39k9pT5#NX4hq=d(a*T<~j8SegzQnHJTkxA1SV8<+F;@^2t5Hp+InbxE<(dQ_7R zTK8(edKGBsr|pPO;d50Mj;1VhB#ag`e7)0jTa zQZ7~5b5mD+?YLa362sY4^;(EEAs9_&o_6p4OJR0FlM{bepVEycP6Sw0kC?guD1}B2 znAaM+*Ks3EXB9n{3MbGs#=7u&5Oi*@&cTn39)eRC>zY~P1h8)WK@w1%jFN0PW$3-isM?Vx6!jkl2oWdZCb;p#%h#^#1K za8P5Hg0g7MQ}fpMf|j)`ZhjF1x{F~9wwyJL&Y7c?vJBFW(Yz_9CpBd!}5gQvDxko58j*2W;$#7Tr=X_U! z_YVjVQ67=^$H&_y1V|NB5^S0I8731F5Ls}p-;W~_u7I$AdRTODU?5!PJ#v=8D3CE; z5=~N7Ag28>t3o;L-I^}MXrTh^@zNgug>J8})@3{Hy9mfYrSK4I6UW(^-Ht);WdHau z9W4np1--*h{~_f)Or%_LQnQQm(<3}wjDYG2dyDHcLhTkWPj{D(ZZ9;n5AHKP4+%5z zosgoVq@|{(t*)=2fr5jCg^kYFY3NAFNeTmRx6c=7kkFvgB1@yw!(Pa6am;k}b+*pg z&Nnc^l(De;Vg7)Os6bQ5DkLO!NaE7~y5MhR87Xb*mQ-{1KmB*V+0K?)39ApScmX}) z_Fpq-(-2!1cA`JLncLr5qCX99spFK(KnOSj!16@IeO04^0t14a0Zvg!`asZ-NI)%O z5EhaT6EIt@{fhMugRV*46n0z$Ee|y0Ytza{QV~8H7rI`iPR04+`QgXey%WqTDX znXgHP=tJPnas2$Up1~g}oHV===}$51S`PJO2Ps$y<{Kh!WFGU>Ut((ayVvL*zDfP} z<+!hB=?A%FNkhvK#Y+IWu6=?GvXncEQGqB;E*+fJ3spB!lB*^(-{LE+OSxBz3HCHS zx#yHkxk`yv)!w|j>Olf!9Uf7a!48r$=5xn!`rYu{i|nNi7t_f^_@+cQ$25;&vrV;4 z)_%tRHO3H9I|%_6*%Q-Gt!%y&^PE&R&_%d^-XDHROdKbfi>OA9nV8jlBtWl_d}H ziF@;mdn<$6CiWBGi|VU;(rbKij$m|XOE+qUfi z-%D2atXuBKmJ=b~)41QsG`H1CMmihI+t(_R(KJOCADA$i-1tpzO^*YVJ5cS*+H|ql zY$ES53zDci)YyJklKI!VezrmLPhPX+VV?U@Kv<62NXAh$&2tMJTS)TT9nFYbYbeh# z>P8FFgokQEy*nKZk7!F!;jJU;o+U6_*4TaBfA{W72i-btC=0+mXf#p;Ri1@SkAcbB!G?0% za6L_Lc-7-3AN6$L(-m>Olir$T=_WZM*pzq|?NzGtX{0)Xo7HjC(C^=D&sQ}R24B~i z_knpTT^G$X=m0FzhH2(otajX{bic0=*8F$Z&~(vmB=yJ0kH_3s=2p#zRGtecWy085 zcf3%pnh$Tk(cV{*!EbZ+?B{I8Ugtj^Hp9YDjFl`~wE}Ohm$u~-cD&wLp)na96TIoc z`(mo0<-zs0|LD2c<9A-v4RjpOxTb8oX(m&n-VR=lIBi{y#KfGt9P-|Ee4*Fk0%mVg ze!^B`UUqLg?ta*6wMgG90x#NDW8Q}@T@PHi?>e&Gw`IF*DRo;>Yd0fSumAt@Pr7a^ z00%~YXp94)Ei%Cl#K*{&XP3+$nsgVzS7MWp)crbTlrD0%SkQP>-1#)W#9*Tr@ei*OL3IV{V6RKrrN5P;6Za5zkA~# z4b$r83?C=0<8Flsu#!N)e{%ija<(U}BjP3v^GbY`;2}2O<)K*bu@ocvz6B_QX=1Zr zBUoW4<)!!RaHj?E&LZleW%pGuh&$>xk9BN=|D(d8pVWG73JRpO%Ku)v(OUD2Df2Sx zQq53OgZ+c~j!^<(l=4FJ`c=ErzD^3zzO0tq^_%48_?QeLt;j`;1@m=3E&EP!lijm( zKNX*EXXk}`A+Mp2yTOcB}SG`@)+s$b8#l(wgR6f z66}Y8F}-4sU&)&N=bYBoe^3(Fzdv9sZH=r5UNiN$8ZK6F-td9FrR8BoGfZn zyJ&YVuNK_{7Ll2LFN-l4{~Cg&k9%mU0!4rJppI0tD{)`ixTe0+w0$JZdKzbzPdaPF z={3^__po72Im)j8)nLfa@84U?gjU{2=|-i5!L%~p*&J?u1`yu9b^MX+xD7TP?%Dlv zUIbGWU$ALK^Cx;H_3v{#5m($>b6S|w#K<^xM$HZW^_7#Ki692Ws|ST^hWl~gmSME? z9!aaA-#P@DyP2h;12cQ0*X!vwCW8;KMixRyj((08L(y??P|`;B>o8%uTZ(pXTH1vE2co!FhH=;<}ZPeFl zEINdg242qcJ9AYxY8K&-2*8gfDMxaA!g6cYt=0v z!iDaFM$_+NM}9)3qkJU~{TUGxv$;CXD#k@T0HJ!ui8{;+H&lr%zb=igKe--|>wz|;*1!O$k&g}+yu zfX9s)*@grG;6JK~UiL}}Ma~)(!LGH4 zqiBtxyzFd>DEy4k&wq%VlMyZxL03mL2l;kptu70jYaRj_FakFK$#$1kYw#SKas(OG zD!p0t^-tS0R_;pcyaEV5m;O;UOSSmWkT&2jV1rNZU%EC@WlLBdIo-EnR{5dc*Dpf= z4%=!uyYtxY)I8p{lhV5elT~#yE)kJ7%pM-Ku&Om;49Gb5^P{bh z6s0A#?e#Rk>|tG3s~TVnuAuib9|FmZ*d?6UeG}MM-P`VbOg4{s(`5{8 zeL@hbLw0y|c5~dLlF~t)y55YD>B8!oOVG-$4~T-y#TBDQA&-<^a#XNP>=?Y*-He(m z>7HwN6PVG)>z5SR^L{OyEjd!_$NL8p4`&|21Z1zK+Wm zOvrGAa8&<vFdeR_Rh9i*b2At2<4g;|YGEab7akk$YY!>9kK0MdS=?Y^I3&C! z_6fHqkUM_;dK~pgIod+;r)PTQ;UhQvGX+?;cuZ#p-rkJF%eI*H;a_aoblD|A5P*)# zA(3{ZjCnV9APztLcImhkQ%`S==F*+uv((SysXnVMf8IBM`8bCe27#fGT&Lhs>RnbDLYm9yB?j2?Kh z(qwgYZX{7USk8CPZ5&c)$YW80w4m6jBqV2Qm8^Idb6bAfSN4NEdh}kB8^RPP)uVGa zi>};CZkB}3Ng%42=%Lwpo-e0eQNW?~lJaqTKEO1Y0_DuZiwyPubGr|?XeL-}GwZuQ z9BzSeGRr1);onme^M>MGo@!q)hxRMAOvG`twEp zDd#K4MFxWqRqGIwpsKNcmHj+nLIQ4E(=@pW@0lhDE7Sj6&MN<^0amtU`!X{&Vy+>k zZnkl0+RTCDgkkBvifPdKnivINoR4lZcBuqx|D?8~x08mw*jjV!xm)Qk{qjKE7+Q$) zd!+`uf;?q!lRc?Q#VmS5nknc*$djz=eh+F5yX@{|k(jy_HRHKDABUC}FVny-_STVM z;hIOBc)MXtYD(2oWJcXTbTXwIg{H4EFOuyToZ-PeFG=l!O!7(gNDBD3o9s9D+~}Fm z+8&F%DACKKf+~Bj0~#dPCD*RJi>UwD?Lpy!TxiQp?hdWx}wC z+M9jJyC)l7JL!xl$}c4FxaP|f0e=B&>0C$>q6{!yB+jYZGEsUDLDu@5f<}9H@`W48 zrj5F8T`}8>hUp6OGFqRY6_Fk336^kKWr7!L7Ya)uUr!BBgCkLAE&F%i$GE zB3TLLlzRA)$)fTVwS1ddh^O4kT*qb!RbNF}+jV*Mby6Hm7J;_i za3OX2!wm}CB@b`x_VHrKI5CY(htVr98P4{aD|oDd%F_cP!;oazk0>xgTX6}A=2Hu* zmdK|m^HU&`QquP{S|R8Sh{gqJ%uHj$zMK2*k$D5`5gPd=f2>^BssZir;_UNe;UODy z$2l6a8P!^FEI26NGX)cl79k#LQGi~ZbfSgZ8R4>1->rXb;;rL{D{1jNspC(JOCaua zj-6{CUS})~dI2P4j|x#EV=-?n69={PF&hzNH%b(BMCbgk5e3(%2)h>X^Hz(qR@CQb zpA+hmSsKK4+PijcdL3lP-E=pcorwC}2yfrGu94$>8~C`wCQ|W_#itJE%6QF*f}~(;+n4{V#d^=7z7g88S`^@;#qTQ zz$D7zlH!n>p;ZD4RD9iQs~u)Hir$5FkVr}{ZPck&Ehm8vTQU^~_g_36Ht-`Ps@ZGX zfRPd`;yM}^@oJx5DX|ZE_>dZ1y?RDtk3)@!X5RFdY(7pN%}8+v$YS*}17@zB?r(Iw z3=fr$x*ApMn|d8kNAzG=w$^LJ5G&`L?UK94$$MV3xO1O%kA3&o!xw) z7o5`kFXlJhh{aps20`}OnfS+J$7~!AbDh2ssjkP#Bnu(gDRiy^}d%`YQwHP2?8ci3e=M8Z-X=NC+TNhU@oVKnC?q3`gIpiY()ig-*vOb9dStzTal*@HA`vIdPR1yh?mvvXgUWOT`wE@~ z^v2c#_gm&JO3xk~*Y@X6@}FJ1y0Z!Jx*DykpM*@^-D_E%J>%4NaD`pneG74V5DXaB z53Gz_skjCb!rhBcjtn*ZCX0b zP-Pj+qrGxMW${rw1rJo=srczCIc>JrkO66RtIX>rsV>PsMCEDjEWbF0!b zEM?ZC4|8X(MIZKX*b+iFaA3c#vRRrzo>oHH zT1}-W82%;&?Jm*#@dxEKvE5r+;1;a+EeAnQyxe~xP|@H%?-;=gX9E$dk9?cU3P(lS zw@mKzek0`AbvHs>kUBALBk)_(!%fegkbtcmY3e2IAN+=c#d{IfD}|~JEYp)?7#J-p z$T5N9;Y6DCcRSEp1;gQ4^U^?uwlibV0i}x|uO`%Cia{xPS_PlEy6hyaKzAZ%ONvE+ zdejR_oKj;m(7~0qIW`oSmX*)7yh}B7nT4u(Sh=jso42_uS%)_NkmkdluzUQa zy}lNiJ?RC9%{}+}eBOihZYzxFmQ<`7@y^yd%0D>u-a9bW^25)_GT!UDEdJ>oPyPzZnexir zSHGv{w7i!E0aR4);ON(8DSBOUM$aoWU8u|p`2qRlk?H9TabH|vL9k8R+39U2ZbuZ5 zfK$0|8f<<5sry#WYPzKZaEsW{vvy`^*s6O#PQ6_;QfR6?be~rDd|C`i$9N7flVu^3 zYMsocZzDTTIaIDViRD=~n&*URS9lL^x{g8Ms)8q#E^v{QD)9X+5GU;|c|FP1P~r4J zU><6P*Hgue^q$f^{cDf6o;B0Wr{+!7?*kkmakVz+C{yk63Jwkq@9&OZlB#D#5VxaN zvY~KpkaB9sF_*y+=Xm*oRO$8EeB-D@&PqeBZ(!^zflK+72HnSeZ=pu1WG~4m;Q?Q} zzteTbyyx8Qu~322s$%wYK3y^?%&Om{%wgJ7$M^c8T59_iuFXgGq_PTtg)t;~9pP_$ zj+(rA76q-!%{NHcU}or_%$;eE;EiWMpm(3sIFX=;`o1rrqIq5%0)8&&!x<`4Q0N+I zQguvaFIwq+M3eb;xv%Z7c>w&i2jF{S6fsRNkfSz>Y8YT*$8Wex0L2gr;)3tw4Z4UJ z9V?ld{@d!!cIDnuy;BW&DoIk@+a|iLT{0y+aeXmUvhVN8SU{*~(9iWc`l83=vE@T$ zfqiAX`aX5QB$v_y)^2m7Ml() z039^vDrq1b=V)tD_W`$)b?A*0lO*=~rK$lEjt4qnWXLNbUx_yHd3D+Ehl8xS8sJn4 z-b>$Z*Ox4Vk618XwMOAIshe$6V#o|SY8ixm^x1tpCJ@T~WJ9b29XHwbY?*c)IwmB} zsJ$H%n#mZtR;ypJ$W#lfrP0@xwDp^$09w&oa0142kgu%@HmDl}>K6eX(@)+JJY_Nr z@9>t2)rMURU9e{x#PlFkJHg7o?-3~*e>~F(Qc~ehW1_182!BK;HCO=auIyZL)@z

Ed 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 z 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%0A!| zz>ZLS$0>1Zklav`!{PZWZ!b*!C2i_%en!x*^E4u1EsVS-(wE_ozP_}6{UYK**dv*} zzc?`Eg)mS%Bk%(4k?weT%Y!t{+*^lsg%0*kyuOnX*c>O39laOfRu-vU;GDF7zQBR; zO5$4XtWxJW(n(IgO|b9%K4(Ad!!eGBo&LPEd^cskF-}4}jPp{0_^;(`|D4o~#15JB z58LR+uv6b~F5)H3!DAzShx}gEbz#f&$o32=1>}k+WKQN)6&AuwhO` zcv0@qFV$NuhEx79Ek^E=adc;b)B9sD4xb|lxvGwEkU*&#e+D!gVxX?tj9mNwHXsc` z8o@gLGsFLB!2flI)R-&!KVFqM8H?#WCZnpUh8r0=Uk0ySf|$zrSr_r}X)%oZmj$O< zA@#;%d(azWMVttSZLs+s5cIWxvCA?pq}AwJ!NX9~(waFMa$G`z>rK zeSRukfE5jXy!WbT6N%{Rg5QFK@ja~gu9WGmS^KHE-@CDq0?d4g0$%@eXAo8w7VM?yR-%oztua}gMcyPE zNB;*W2Wl>LxaCzV9Gc{;@hmO&*kig`Lc3`Eu;1CJ!E2`Wgqz4J_(p-qK`f|6=Gz=$ zVzRm9_t^^11%(CJ-g~3*0}in%?sTU)&qq@zr>my-9Q;@U=gYPwjh#&k{W|S0#UGSL1~=?vrMQ!#Ic1 zVM{xPz&O{8AMg2cYX0MvLQr7XTY^CsMRBzIsE|bQdA_+E0~)asjS_CN{XXUAa|41Y zG7?bY?bB3-1TL};+{x?*0VY+qS_x|@p;`NG3^_s41@aM6upim|jc%VcZimpiwKmB} zwnwG_0OvF_Ztm}SAUU@i+!V-GkzaU83YzZ{DDqnHVM+mu(?AJ&{bzkL`vl!~rDHs~P?9EdNYH;n4`4 zFY4l7{COiEAnk)rnrP@~tF4(rS$RsoGob!pD2DZQv(PflLTHvbH<=uI>XZoQqzD-( zhC=M2z6KZ5x!o8?u76L_cR|LWZ2TsSzH)+?g7_WPI}hYB$c70(}gXMTn_?AUBS z*905n^{>{`S`ruzM*biew`4Okkd6F_>^2rsWgQ~fqbJdXwz+!fnV4_QywdmiaMrky z=()kBp4bn8`Su-#iGdbqLD}ki{B3k;lv2kckHJ|f8}jvop?Y~a9`e1x@{W^=gv(b2 zH94J`i$Tkg2L_H*BLq#4U-@)IrLpQuh{vz5tAB~cV2FY7lXE9tdf;2b!_Ea;>Yh3+ zwLbVq0-LGZ3$VAFM!!wYlV^4fHh!-aAvK2#-0x34KgI1_aJx=W;^=*Klk*KU7{npf zWb;$mU!-jwRbgj2XO5Ql32?aYo*WdYbQ74k#MkyOKk;cQq=~$nXn(5|YIc*h&M_od ztN5<05CQwN_z%B|oAbu*{`EIL=@gS%Jr_0%S|{iS@hzwqS;&DG$G zDBv+&iyls2Ol$l8fz@}y^sHspzjoPDPPZAhoK*Syo0schvh`i z6B+sGdE6IuUkM$zcz3VXp~bst0iPPP|23nME{Ejl3dl7D;h>$;J5J{2;&ULJo_03} zV}Y8wmbOo*x$$mv9_Eibo~_i~8MG8PC2Fp)@8sAA&sgTtp01#;bd z&$o>$8o^3V72kNp&vR~GoZ&Gk)9$|8)z81g*Rl9cN4`=&1#?woZ1@+)?F~f!ap2SE z5{sYyd0nBKFU2J4^ua&I+h@OUCzOmuDZXGtXQ|m%ZUpylbC`N=M1S{nbZayoiGKPg3 z$?TaB*Xs{4??MXg{|^45OA{~k5I3hIJL>HXR{rwVKSu(rmiV(P=V7>rGExG8<{gZ9aWpIzZ}NeACYb5 zBh8O>`-z@Ut7dl1fG-A;PTG%WtOI{%y&~U?MdqI+2_C?PQg6v@(>F{`nM&B#@#^LL zB{KgLl#=|2CjM9*>vw7wfUExMtw&`75W`faEX#h1gN4rfxYtl!Q%3JxH$-Gyn>)5? zm8jnPWY<5FP@bVLJ8AwDFB?^Rr;@ie;fLTrc-fKm5Z$N_ua`Jhev0%@m%yDsEMysgtRyo#W+p#`r))BA}04VTj z6UcH7p*}HNiP)(VHEvRZv=0Y5??Ax}38}ICMfo}@8Q+HkfvDsF>r+qFvBTE%*_nMd zc5DcSpfX`NUgFA1FrDUnTXld2@3W~rciuP+uMi8=3pwF@kBi}Pff3kO)=am{-{7dy z-)7xr9fQ-Q8J4QxRE;suk)@lHoo&u3CVAPyW;60gN5`HZ&pLJ|@I9b(7LEXBlo!4}MQ^)hqGml7g`1uV~3mR62)Lp2RoYI81qNb ztKEviS~KtzMYQI`7q+a;EgvR5zu?u-yREw^URf9jgcKvJL^S7qviSR zkmBsAl7$hUa(2i!g^RZPwqcnca`l3X)}Au7GW~Zt6uX)v0eRMy^C7;MAcBf~nG_js zeNLT%V>Kf0*@7=J+c!n<*i*#COkMg?hvhPH)l@i$sy)0y4iDH&(QN$;jO9)RMse48 zL<8ePP4r^3wgGB8j+z4@-d-pvo3o^^U71}P;1j?^?%R9%*y((7zxO+%g`hn8p0>DD zDkz3Ks$cL<7mcMUrM4CwDCZ zelEM=Jd@Um)`hDH=QJshMGmyy(1Nwow*8IbX1({?jBxx0nJ9(j`*qwyO4u~&_CxM( zXn)@6jup~F@o*}G28pv)H-To*8L-$&Ai_wPpSHG5Z7l<9L}<4ALyu;bb2jBk9%Mg# zSoSi&3%U=aVzGI93>e1W9k~&JTeRQTG8N{au(Zz9b=WwFx6TKBEo$M`C0esw1Az_R z&N!+W7}C~I41qb=?Y*E{M{wu3O(=0ob~{!{6nF8j#iz|zpD5R|;h4B( ziNad92p)knB~D0M4^mRZyUX6$A6@3Q)aog^T$3f`JDXA+b5*vp+4Tt4)OD-Fw(2LE z3PDaYgM{{E01GY+go!p?K@xvm2Mx)WnWcxTQcBM3fM{o+shm8S!9^<2$5nH|$wGeN zEA;L3FNagT_(@G>b-YN7>~;Wv5SWgqiF(Tv)_K)|%N=g0da++n&#|Y~&uHdX<*tN{ zj?1%2Tyibk+}_T4z37EWh}5G5o~U|$rd?QFc%GxA2B_;Rm)I_HSXh_w3TqZarTC;M zoaictj;VmKX2d~CeXzTS6Yeu)q%!x6PQUQ|x#Mj~gNg+6L+a~6%EebF-h1z9ovKSF zpK*G*z}yIpODDy1vfu{MHh^oLROSvdFkx5(7U_D7EY1}@2T=1#Os2jmW^eYnN1&T;(k0}?}4mL^2Z&iVHQtlIUg6VYD z{fv9}EQ8&L@h5-~#KS3$C;Jt+!4V_OtWg8rR`_#n?6c$mr+fK4{z2odTY7_5_RNN% zNL@y$Kx0APF2_tYC5N}3Pcep2`(SCfD4P63G(b@|;Sq!TgwGuw=(T(C(qp#rkaIH5 zHRX+Ih2^V9P>;(N8`Ul-d=;S3P#c(;(01T}pBN~WTcA%vW>*w`4KtQD~dVo4e@8g?^i`;Kt+xGvBNMVt|Ihm;$i@xIulLZeI8** z84$#<>#%n@{rOf%UB3G~;F*XQmVcM-dn0D3KS(ukmbuj+gu%efaN9F}RLz>#HQw9n z6&XU~`X`tFoGDdoMu(AeC`x^2_r*1rKU4J6F6P!XIm1>otBxpq_KMPmQL|YV_Wj5$ zi_q%jGLyRG&PxJ~+ek3T@v z8Uy#`VQusyn=lR5)8;*4g%$e)kMPpin4Bzz zx&2wFcM!kTAf8fCST1`=(@dSUWdXp}uAA80=5w$V&g{JzWpiY(rV)H`<1%=2VcU6K zt7_T`dhC9_0x&3KK$C%28}z#14`$rA0^n4qNptNbaYH7}bQ6nx7OWbtCQ4eUAM9@U z={h++R)6O+h%&Uw-xMFHH(rk-I5Q%ClgF+t)t?!+bexBswYM5H%v<^uxiz$NZr8?0 zxLxf5MCFym^uDK3O*!o-3qXM{hL2ddi#IUSO zhf}03gpM?jsZ%YDCnwIIZ+j{PQ6H;J>I&vw^p(3hPT?Cv4H*1Yn7|~Klu9Y zc&h&|{<0hNz&AlWfBUfg2Hd$ql>nbzz+BX;1b~7(7u6wV` z@2x)H_4_>@zyHg9o%1^5d7kII&ie#`{y5AOj<$?#n)5QDjnd)b0<<8L)=usCpZHP1+ZB;niSZtKLD0~8dvX4}8-&3UH&SmJT`aS=^ zMgN)M?OwNC7;6}pX>5A+(2WssSp0G}DXPjiQ7gyMaA(51RjNb$2E$96fz5qOSBd|ouXuXukGL@GUlD7w51*CLXU!Cv~%Ke{68Sivy0oPfGt5_ci9A;G()q=RCYS-*;b@ka2;`^4NOO<;QY@YTKsTjsGGW) zB6kU6Zz9Kk{(3C_*!L7w?e@n+X#_6zp`PEp9rUgP+PXVNna5b;Dyv1+GubO+)m1Eb zs<1oTq(57JX*M+q-=DuJqO9I^T|YsG-+*zHM<&OH-|eX?4_uj|gQK`(o(cnS&vN9h zL;(F$gcg#M>j$OQO;r?udWE}494I}>J#V(=%R6-b!Mj-=8FZ!@I9dDZtcPvcs& z$aP^C%Z=``g>8=~CUmIPyLON>aB*^;D*D4^k;mcBYa_p%HG^9+ZoI>7dkZ#w73zU7wZ)}3 z{dyvZN@*h1ukMTzujy_St@HDmM7S?hJ-{>#GNk7!mnKGu9#EjOI;`#EhJB=q(m1x3koq_W2@0~SMJ~pMPX+=4cLqFd9 zAUpI6^>*87K>Wa|K~HIr;@Rl*cF;+2Xx^zeH!YS!VrWd{so`+8JmrC3+txw=;n`EKDWO_g4w-~C@FT6kI2#aTjlXgN4U z=T}2k?h$=|J&JPuC3M&N(%wd@sV4ua&BPHM1uT!8{+%J!(eeMligf!MmwmcI@>WEW z=v+ON6Ih%miP@nxEP7Pbuo(Xnx&t*F+>hm&86;)^I`RabnH^} zfapTC7Z*@@OEgPa?HV&HYUr&hMLC9qT@)qGl_FmI366kHY}%CJ{E|9^!jZ9Msd3N1 zg{Cqd=!fXnH7e+=b@%0hP(6Mu&lFAUG;FPpuc`%-x*iJ*;b|DT0PzV4#HXW_pgOuD z4&yFzIjH<|3@f)F6>4wD3 zvYrSBMdXH7j5usuf}|Es?DTpxt+B%!i_jdIKihvnY2Q*(AAF_L`3@lQH`PCBM~$C- zZ3l`X{Hj@@?3ty$VRtoTbG%!aK3*?dYEolzcVTQ;a!JQCzO$m>IOwDPX!&ySHGC}o z-BGSEly30Zs?E(*skpJ3$jl*i#di1$=u5?k3&#&G|acfbkf&hV_ZK#UQmyt8?)a^wr-h!f}o3{Q{1AKRv8Vz~fiLjttz4X@lVxib_#%HO33q4O2(wu@5%MY)%xus~|GGZ(&K0frW_Umc3>Oj!E4r5pK zIlo|b*UH%L<`30vaX;=RyRFUaeiU5&NRh}^xMzIQZzz9lGS|%Rk&xcQke$!8{mq6;|1Y34-t@sLX+~Y2s zAD^oYJ8hk9J&NZC9zi1!@;+O483mNJ(#aPy$I@2IZMs< zwn>csvKo*BBby9@+E8@u{y4(BQp**Y@7c`b={O^zOulWI`7`~XCspAd6Lh#48-7QT z|EC7h7L~3-o4nBqdYK3$K*yAy_g~zMR!M^XZ1G&B*Qr)g+2TDtB|u*{OqagLb?Lyt zFU6_moPYGV#2eOK)*UlDjE>Nle~Y}a9eHbDMi%O8=3lGs|K56QpuUoD4|q8`EyFLC zQ21M&@gkb#`}t`ZC%cynpQ{V3e<>MX**R(Q@z=rAStI^{)7aKbbq7yE7p1=-K^zY# z{GdIeavaoZkBGt9On#PY|yxdhyC#a6*Y$CPo?_HeCu+kLovZ;%EFlHoF zT6nz9`;uBV3xe>J7Fs`@7)ty_)j0LicMS5Cr;8LYkY&TZm?X)?&mHRYExSl;*kRBn zv{#JUV6%BT!^*J+Wl5Jl32M0bjAmP!M`q;{v_IO#5s+?zxU~j5PzTK>dm`6&s@p^% zrvpT^z9~C1bEo4Bma@9-QO}jwif{QEn0yUnkB5m{6yGXy0X;5qJ@2i1uIonXXWylr z=~FyHfyO>XjPG)fAZ;Uubx-Y`AyL77cRmQ4vRj9z<0RA;c)73LlvvREg5l0Z4JNws zEjRB9x42&!tErW-bq5P9eH;vX;%-?!WibhA%njG}5%ZX)XB`%Kl`k z;Xu|o4*%Hggr$h61hLyNgVo%^{emUF*L5<~6`o8MS3Kz{uRqq{%@rPNdzy8WmhzTo zF+zE>mBmc1g8jE%I?oTkDWv7Bg3QC`u_6`=)Cwf8og@a%@g=n+@eED^LNlWX1ET&q+S(XrH|sC2V9^xjw#ru zk*s)^*~Em*UaM2m%dLUWco$WfS!Tb<@B&~IQf$Gs>b>XEKCG5!X|!j%wLrFxpiQ`d zxV7|_TN`}ctSh#EK5)k-;mxZi5XaYP`PY_e1I=HBKl{EALOUOvb&FV&{c*Llj6u8C zSuQj11@xUnwg_RRnRUy313CKsp}GEwY!y<#d>uSBwA%h!P_cr&lCLA+*Wk9TQOJ%V z8The#fa|Eac6Q}ihho1AXj&v$FG#26Wtf0 zcEBh;uhp1R8_K=DxWueAi66*cQC63!A+S&EDpRA*DgzIVW9tml@dN&a8I+b1&w-vf z(0h+stydf)k-icoWBJaXHGE{fg`eC+BY;LyjPlKW1bZ2~Ti(^Rl+Ng2;%T9XYo^~$ zJYB4^M25dJXVV8HO@8o25|yQiHWcg+Dd{Sw9tD<>R_RU~vL44+ve7Dkj|lZ!NTJ!FBcETD z{i}>k8!c;PX5A?dQG}FlI=USG_X&RZ1E+?~P5y5)Ti#;{DI}%sK^MM0Qxo~Pj*0iw6yD&DtQ0xuqfp0ai zjPCQI64%sn6ZjtbxTtDJC=SUE9udJfrYPR58+=a?lx-3=cD zKIbBbUV0hvrLCkWHN;}}_r`1#xVC|D4BP$JmW2+RdxqpPU_VZo$?f4!a0;o@OBV^g z+fW!6V*RS(XW^w$5ub+=Q9#O&;cHqRZn{QvjBo8WflNkV9?Z7jn${6$yF4?z%i#1JC zrw30qT|aD}-trLMNn7?q;0`>%jAQ#ivzX%QTeH3s$Vf)#(7%TtgXk)kNdk3~dmnMr zPp9yz&-kl)E8c}5cSd$B!4L$J+!20`C_5AhukMHM3H(T}qJVq%v8@c*Q`gDU^|vuz z9IF%cR;LC@-S$C5hlp67)Y2H^g2m>DH;0ZoJKk_+gGnlM3h3to&6oju2Im60NaFNk zx8DNt2>5#Qho71By|Yw`Qlw&b5;QTXa1%h4 z{`Lq7Bj%VVbZ5_bP3Lf`dM&X~HBAPQUrZP1-)A`NY#hM&ms!|?TegV6 zQOn5-9c#-SVUdiC8IcY!@^7_1$GN&%KMBr2ygFJ#IpJJQk;gz>UX5{12DGxg?QkDS z6bQSxG@e_aUjw;1)OoV&vD=CKXY5TU&4X3V>u!Ty<<@~uY*v)WBFYv>rq1lwN@PhsJ%yLOXT-oyr%PTp*&qZo0mU4ddOdZuYIJ1D-{vzA?JxSc071&)K$ZMaRj zds(LE@eFJ9e7$qGFN4Rwv`{LsP5Bb@n!zK$151|3mG7?83RG7vwdih%z**RYd?AGS zgIsBi#U+3Y=+qqVtc+0<)_@dzyQX;`)mNcR2cE46?)Nwh3UafZzNEV1RorAr6{K=p z7^ESCzwbrR=Wm_?5h9Q2b?+a0l_II$Ake1iZjmnXt|gWgucGQ}bt$>-wQ$4L#Lcb- zR=E0-OOJm~mRswhP2mA&G&dH#3xz)i*7_XH60HG~PytcxHPP+HyJkHn7F&%a(<=`x zHYq!rcbt4|Q{R){Ufe2Bs=5Kjq~Iv1{ke|K zSAiQi7=#44ktWih5B;v-c)PHGaW6E!cFWnZ;^H4DM`i~B2 zO_XaO9fd14O>=VFmNa?%Mp(*bxM)WAC;LIgpkpGhd)}C08n?3*Jh_@NlVW`oQceFP zv@XMGRunGpc0In==N9y7T=#4G(!JxB_S!1g!z4KKu_5w5cG*=0lU)1!onWT!Vo$c7W&JTy~ra4(HwC{JOAd6v|h^YzUX%b!47l9Mo0!b|2^n5w1uc z5)E$cpW-h8o`c+{XEL}1GY#A2cfW>TF;_|$KhJLMr~XYhaix1$%hOdW&yu_|w25?u zSL4~BLAsRoiEM4~FRzcWX9i|O_fje1>VjEA8b^Ujk8+SN>()kGBMM`KE2vrAX_Q+T zWjFRrVL&wETwc8X)*3hCQklDy*u$9QPL?R_*ggsh%S%u#!T456!!*phiK))NDgAK? zGarjB!TsIGd_*0290@#C>rXk!BfDFTciXwpP?~g=O(<5-dzT@w(80cLxhS=x;ZomL z=?iBlkxhY=KxJaJnSwpbAt*kF6E-dbzuhisI{nMXd;Ya8BX@(MCtn14*qY@i43Esf zjBu1%35}zTn~}s^k8Nm1JM>E63<}d~Bjp?yr^WBg>nU!vK9(m#RI>8~GYWmM(A$#5G zMgClWgIdJ>eiX~pg$mY+t{|xeLmE3RC*kp(8A73ltRwJU{C<--<8nczZBS zQAFk}6}omfGOT8vej2Mkbf-#?;W&791(+H#DIRSoAw@N&Z}78L_?83zVFwDaL+kqN z(EmJ-kNp$qS1gZo@+ntuLayGw5>0?vUVmy|Sz}!2?bMM?uQoDA-S7LcWnPM-2oMj8 zp+nNbaRk_5=PYq0t>aU9z72@4Sn6Qb$+in~`|K3WnW)8aglr5MaV2Vh6{xwxe+L z*V6y>*OYWOv5j(QsYE3iT0~im>Hij)8TS~a`7>f)owpo3cJT!q^9d%k6H-n6#GcDw za}kj=>fZ{;SVv)8K@lC*vW*S9N4~J%eyV^4+Wc~9i(`s!MpXf<3j}!uRRHS}=eu`M zqf7$K-j4=Pt7U;ShPexG3STz4Y+#YcKL57oHS@@E4#xiIR;UK>hD{!|@KDUwk zPgCiahD&kA|SBF3nc$vaWzAz(lQ-^k$rZ>@K^Q|!&l=mxrOw38cunU zdpmweVLJ1n?-6@!zanoB#L|^cPJMG3QDl=Un*@_SKWU+74AY_IJF!`yKJ_^t=hymV z6G^YH1Vn&I>5V%A2c8iodFfgs5pjpTXhng-iNvW0&u z;C%-9hKup|<5mIPnN;eBYRl>QFA=`*(tuzc{6M_gnMf_W{@*Wyy9yy5DSRiyQ=nms zy8Ew-JS~?P$jLb&Q$ht_n&Lyr1CPjCXOzcSXo zYH84%kZHoCnM+EfvSb~PXl%KT-A;woJl}MlX?hTROf6q~4{ycoPb8VRk z&%^P;V}Pve+563VK`nSWNzf>DT}#<#p3C}jd>`Wi4h^85&47$y${^a2<^ z9Mvo$Y9-RG#B7DW{Z4vWlU~U^(xGwtk15kTH@@4Dg-) zF!6C>vLN5x#4yTh*sHOM2h+Sb*TVxCHIlTbOWon+N0c?COX^1KzsFB~`%OKjot)@fyU1;q2qG$oL=^P=%_aVl9mBr2#UCCV8a)2q?W(PdPnY`8A&jv zBhBla49ivg-0bR9rUL>}XVGRK1m;Uksms=t&&^esR%0k#!$25eX9F5@T};u5)fFniQ9>lg7qgqh`8W52d-|6%a-O_H z0)W2l?`S4i5Ijrq;=(j~)3orH9^_WMzCFhbcRUZK4B(Bn8wr+K(s}31Ki5jb3ZWD0?W*Z+O~X#^`r!cCLU_ zRbAqS7WaB$uZT}UOV1dsOLN>>htPwRI-8Wm_itoUq)SETD%yegZGKH0C3HeO0|8!G3T0i;?Gsa_13vrIIA`^?uLsp6Y9T z3+tvMRi0C;OVd=!qeibGm4MxC49tYpFJh|oWpx;i$xjM0psDLfR43c$@Y4)+wq(?E6#nyJ%1p^Z;t?CRbTTe=XbF&ET7Biry6U2ud9ml&vhN? ztviZ=edu1gxpIX|+NP<6nee9NRdbC~<~f1-tbx4YW?Zj~Q{Xlck^3ZyeRT-7210&; zZr_1xg4_JJgy{~v*RZ)L67cHIs7Jptc5Q%Z@TO7iXXzTXVnO+DSJ}1ugHm&QLT@nI zgb9Xl%m3(_Zz)=Qf6VIYt1cN7sd&>AMZA8xw<6+LucgA2HPe)UJY@hm40N;8MAE!O zGQ+OOsCC06L=rwKng)trqwlve4OimQXskU*cDOaZ!($AwZ@TmEJvFCM%OwaK>V(vK zwAS9jZfBH}>SJYIN2aBeYpT;Km(DHR(O|I}i>s&-WP%IX{FtxK1pJBD92SE*%W}wv^ z%R83Utl|qG%=Q_D-{FwOvmDnJ76ws#?8711pD`ocWr*XIhp3nY>la%2x*hVimmIWMUrOp6QVhO)j{9++-Y}h zSkvF?qP|j9ZRJjPema}VeLDmh5GpzT)<6^VtEx=FTd9niyoX0AD|~-i+4kC8o^EZ< zbKG-+rL<*T-vGYy)uXjfBXcc}fifeRR3%nY_WmdYz=^)d4qlsdlT$Vwrq^+lsO&m( zxf(~LxL5IX+N(&L^GKu`FBF5PMyOaNT9FW5@YyH?k#DJ4R5eVIJ?~{|>L;-BC{I z@0?YeP3^jBCk5z1E}0JL=-_uDzr&CviqHcoDrJCO|JV|zk0^Y>>@~~W`c!7OE$wWo zQp6%ER3>7vjN!uzvCMk#5)R*M@;PmDr z6)Y3nJsUrMe#9y2Y#cdc5kS>zU+jwI$O|RHZvMR3lz{@lGzKiXnkm=5A&1|q_|QkQ z&OFgwQSg*5v)}3C2DdGz>zrTyNRHNJi@w)Zb)r*40a$ZKF1H0^P=_QWMxhMqw_L#= zU%}D&Lpr8oXEpdx3g2&EZaXzRyH*WAu^!O zYX?!lvWex|F@ICI@>%Utjqa)hGT^{>AX%hq054;r5AeQirX*X%H;Xom-Wht7LBi1g z)LlMpj!ui}-9>zy9195=FK!wC%2qfUAcUtU!XH7Wd}=V01*U5->W5kC_dn~5O%Bfj zDT+VwLh518J7)99kVOCr`OD)7#gIPzlOx3+0Wc2CSS>F90lX8jwz&*r2Tb7^9d7bP z$`Z#QVa;q_i(_Tcq}MN??N<%5?ktx3f9sk)e~jA}ZgUO=-#cI{Ol~YlcZfau#bYyY z{Dh>4n2XITs};+WJP9CRRgRb@MCOD`kus3^gf2IxYsyAABa07&TnAa6(;eaL83@mt*)$2lzHJ9}oeJi)bm>KGP&=35Ae7U{S?K*oa>Sny!9>u-a{_en2yG+HGpri0d z>rmaR9B@R}9bFEAJ`ppLBsANxX3!f(>D=&NJD30#IS&-9lY9D8Y6{f~1q3QS)FLsJ?0t1#}|4gNd{wvy~cD|+Qt7%0Xj9Nv^-nFlH z#3Ca7rFd!*0r-XGZ2aN%n}DCG?`Ov&pGg|+AE=#T-YffRoUuq<<_#PwbvvSSa>(Nc7~&W>pSzT+rT~yb#Vh}e%VNd zsBuBNwd_=p<+HoWD_w%Qp1F4;?oTWa0BvsjU+AHQR#tCag|0Z=qGg>^HW%mvm{H5h zx0z#jh6X>Db6&3DZ|k-QP6<_gM_fan!cWm;H1~ifu~o}i&zT(7#;^^Z5akUG@-<^7 zOb|+@KLfQUiSlobmCzVI(_7bllJL6DQuM)&`r(NZbX{s%F*C6B_2(w`#9p8S(F7j$llu3fKd<$a>t~fU1WscH z1+MtV-PVj_Rk9ukUk;B{c)%Gog>dup_hbBn_^1c_BsNNjwjWS>ug9g}}1ipcP{TXHjDMT2Fj*H8)j-9cc}2CpSIB#yxB(W_s6l94uD z>~0Xs+Rr$4~uXf%}tHAMU zKy!D}v1=s9hfoU3&DTLDVm(gPt`nu#gs;ZEX1~jay*gX=Un!6SlVb2X%kh&IL3J@z zL*<-N4?T#tt2;NvK?$uE@UL6)O*-8>5d~m>kkw34pmS33f30wNl}4(&M6g)+!r)h^ zc1K=UO+I`=D@3rnqMDkFd>v*OJ{~`7*&DPq7(4F`k(MI8L?d^nk5-D!Hi04SfqX1O zs=U>2YjoHj!wU)|QO9kP#2zlW-~P8k#ojG*3jv9sk@iO}Tl6dZLqqZNxOdEW)CLLp zo@%|!iXULDU^47?Y0yEaKP~quaNWR4v531?u_)-XE><||`!U`XcHFV}0HjDrK}Bf- zweLKBj&cmz0SYa*WoV-$iM4zrDENK1-@MMaIvICgElPpyMq>F=DPGeiVq+$aVF8#K%`gj;!yuv zCb^o%Fq$O^`_FeO)m9Czc%2XX>wJK8>^!Z8?T-pW7y_%?HanZ@_qK&A%CCI+cDX5a z#nzAUxYL(IJ*n}s1XblXi`=uqZk6PZ?{C+RF+Ta$l64_1DK|vRl$t@Cabe4?k?vXs zDnODWC*>i|?p#SyZ0iY4VTm8N)@|_Ow?FodhjZz!6VN`3!d&squeF(P4lRf?-uB>T*YV&^;%Y6Z4EW4Rsl&$S8#n0CUJ9?|_ z(9g|p`Mblo(|Eq86l>oBG!(<$tKAA&wBO;RS8|ri8zBBvCk4)lF)@Matjjk#QTyG2 zb8=u+9?C27;zjO_bkyR!8gJfd;aleW*A%i|3vON=S=c?#VYz1>=Ka1avr{%Y;HKQR?LIX8TWeCsLkN@Uso4Q`Yk#-h zz`U_D_2r0f{XmNQP$z5Sctnvs4$>rwCBC3$SPSt%x4v^|g5{_hIrp&ox@t1jOXh*& z*(t1!g&cD>;xL}*F3(JI&DIXOozh7YG}Y~6fsSl-MfZ^B_!BpXOQIN_2&DJZFQnU- zf%HA{9N=~cq+Y3%Y;>Or8{h4vbRfj6I;s13{7o&u)VnzjJ0SiE_=)84dcq{%+@&m0;MYu95N zl&FW+c$n#2eFAmB`PQ8)q0ZD-0Y5G(U%vR*Ch+F@r5}Of2Geh@&b-lhU22(ri{(00 zu-hP7bK^5^rt=Iu@>X=yG{%jiI8(`Im%-Y%IP)~|{_Mn$AhCh*+(F#4l8i<#eB($% zL!#vJ^CG?HB~^AKUr?qcdicBYm-}QZlW*-0U6)aDw?QtFkP>d|Z_?j39L$ZKL>h^e zB-MG^ztanLX80A(z;Y%dvzuEWOWc?+{0`k?uF(05{e3n}c4`G-wk|v#`^~qR^2ux2 zA)6ui&{Cp%%4ea40@c~^eYs!UA)*i*P+o5qj_l^~yl4ksx`dXj?dXU0LdBatQK=xm zQR*lJH||#9R-q4S8a2ci{6wl`pfjSMXY&tDZ=6fxqQ+IvsD3}c67l+{(a*QNXwNY_ zU%{0?>Df>(Q`spTQGO#&zH1&YrczGBOWSf7^D*V?6*N;1f64VfGQPdF&sjOmz<8ct zNN{>j?I+1tV;!=4;IMdDd|-*1XDk_0!0c>5H4qSgakMGMd*cp;LZwSnb{`Dbu(Hi= z#B{D7zrLigJ)i6!a--}-PT>u8TAdZ-=fsYO24}QCc5Sgw+ce97o{?YG%473UxI{>k zg;_KWujk5l3Y3TVX?Wzc!tQvJsnl}41LpU=_5nM|lXxa}Au1XZ?{rX>duZhSyBqG~ zBZ(aUbBrmdi*HRM28JZP&9+>@Lk_;V8&MK2X>pf|; zagZ6XRJg3X?_Ig@VJUjT`xdgUDSVI3dnj1f@}rB^TY)zAePNeh!SVMpJOYR{!F%s( zoJTVmF3eE_4rnsD{ll_229LLK-(z_3@lEC9@CXqF_r z>Xbv^_sp%9-K_xX!r_8FsR{HtbiVZ!LOJqzx0tXzgb7axtx2zzTC70*?iB{s=R@{; zuMrioMD6Jq0dYkwBkJ1iLcTmhCOwa-8|R|Cu0B$+`bs06>>NcGkF*hj6X$juL77VA zgZ&@$BjV@6CuKLVq0^#XmA4_8LRY9QYLUbaREt9M0W}st7%K2wS(Z^gFIrk@b;T+- z77lxtRyus?mUl)UaqcSjoSaTqlE*Y`g7drAyyS3ILIkmqs@6wJ7o2{sd0+bZ(iLV{ zbR2ug&$n4IT(wcmpPw74cg2OCURN=`BIhq;8(eXz#Omzfnv#7Z>%oX!eifq$2 zXIzmNe;MO?k5g?)b6|-9{1$Wdm1HM+ME=fq)ve^n^(wx(>uEGfXtx_{=5l3#{}HIa zM`6Ccd8vjpSjy!W2-TABVqH$p&`o1*cyPm^F215z9yCSVU8=WHpkp#jcH6Mf*fWe*=DE5H4Figr;8R!j#QRc*ZL zMAUDLIj8;CpPns-p?YG$0cIACsu4)ePHMAac}n2(1$c5vDA~$iV5Q&gooI}3hj@fO7(3-#@9t&h z;pjPIPaya%-fcz|rh@)@(jW;GP<+g(wx=wStK09h5CRVGY4>W-)N1Aa1DL3zeIX`8 zrPJB%XlbSrqesz3x(_1+?A0b8pLfg^Y3B-8u~mC5mFm&XiVtm|oSmGi#ZlrL>&E(8 z*2U^&>5RqrI}Tw^r3uVtg_0Ua*=SX>;g11`D`E;3jhL|GXC3=c2Y5eS@<9oTe$JO}(mej~Q5!wqqJ; z9rnW5y2~J0eG*6_BNwO&exELgUy{uvC6jFYzfpIj3pSXd|sOotBL zb!XBO^8bt?y1Dp8U)=f08Jrva>^@o`?25)?u=qY=ESs^$C$_fVzc)aW3>U7RoGE@( z#N6CeK2}gj2ITMt|9@bK-giY^r6-taSqj_fHQmma zdE|N1+%9=^=Si(%PL;{5CZ0jrFTB#AGJgElT*z)P%Myjq;gtV05{Lo|3NEl8h%V#Q zYqWn((e-4ZT-&Yc5kZ15u$5i6JJ=p1H8zD0_${9mdk`e0#tQ6I^Q60<__Aa;DMJ6r zlBcfL_&wVP1|`Q+Lj=srw`oAWR{YfoKWP{2x(ZBS1LlRc{vVFQPc8v=P;eX@7r-PF zkf9Qz@RSLQldJ2dj3`D!c zNkG|ib;`@lz-Oxe1wJ-xoBh(ffF($j(83X!)sF z@PEUEpvxHhiQxhpLT8>Me4sr2wqjg$=1Q{DP@Z0r_LxHX!V>JmU)(#hUWRaq-2j#4 ze@Xlcdshy+!(mb{(YEP{T5Jl0gXqolZ-?as`4?TDo5dlcwfLKgqkBADbSjhUb4$B+ zOVW9v8(Mlb{#^&@?2m&A6yo)OnAZb+xXO&RPiA1cApday|Fu=WWpMwL z?i4s@2nOs}KFV(jWp%}VB#AEbOzgpORl2qR9Pd@Y2-Z~rBPhCv;0yTDGi4oPK{pJ1 zZpXbTqcHwk+{fr;a$=4UZFp4fwJPePyogYSh*!XX9mcqv}{3XSv?MzZAQn zVlSid$g@^7)njXp>WoTfizF*g=^jGJe#>*-94w)Wp*HLq4Bk$q8_q>BmF-g}T`KdR zL@16=PtwOe!BIBh8H=blw=WZouYB;B@|kfwcKv<*uKqis+?a$owx!ynEA5?<=aYf6 z!R-p?RyKaGQqBxqwyi!cmt1BoEx>l9^UTP{4%g3Vmt&smj1h+q!HdMh)r zH&YDC{MQV`L`=;Kiv4^53-tv}4!xk_e}}ebl5Qm{vnH3(;nz^~uP)j+d@<%Q&{(KF zN>JBqzuEBD_zjZ$C$cPWbf}3K(O^4ZW^)ZDJZrQK!Nh=rl+Unt#D+YR&H-8TjyjtW z7OQIXm0^x$7Iac5<6Vi8s@F)FATzsvtbs)$kP2;T^-;CaVCXdyT=83`gqBF6KB}Tw zh;8OAXA8wiyYF+@)5{`=${C!{Uoa&g@z`4}Kn`JL`ktQ{RAggkk4N#`Y%poh?)|X- zDs}TA)GJ`&!|`bilCC9|J@$tDefo2UYVHY;a~yB8QP9JH08k61B&~|oUaCO8-V}ps zIh}ADB6jI1_@PMe75Nj6<|ZFG&#zrCd}1f_QB>k_GFSh*Z%^1pLj{ilOMmE>R+{9k zyDKbn{CZQ4$H9;!m=?7M5{1n7U;pj5+$&Qr*`LDRa?@xf7zY$nt8T$!WVc}cGA;ax zP1_?)y7d)Gf`E#$TpL^3psg-bxk_+tr(N@DZz&Nts&g-(55?`ZSDO#7bZ8ia5gJm2 zrM#j7AXb*1W8PD7@p6X6XU%Vvyrf5Tu$|Ay_o0UIe0&;bqiXOY_0jaVA8W+rKTAmCkR~l?@U{3yn?hi8#MNHp2tqZTUJP_Z= zJI5<#Qye?0>2vKMG4h2!_bkrOTjY+1Kamz^cL$pxu6cyxUjjJ37}51z^Gl{;v?*^` z81&hm-!hdvSi`QI`tFkPg}*<4z7|pWmZvfN*U2DX_Q_g{ z;Gu_Y1L?N~866JJqPp3HE42VGo49)IgU2-0+t*xP>Bwo4Gb6dKtLlId=qr(hcgh#L zUjR-!m4GjFnzHS6CqAtI{exXAvTVGWAhC%(xMB9+m}Ji#r7Oh#87^ueh}A3+XFNDJ zc6QT@)$)nZ=Ge&_TK7F0B9)DK+X-78w41%u=Uo18q!zT|6@4|z=Z}Xg0wrttpOUqc zu<(~;FhlUj<2Y_MlwQ>!N53?BbsMbsUU*73K$4P9{#qLOhVlrX>@;}011P2>2-@A` z8#7};qw4lnrIX2-RWH>g^h10lWEAcDm6-?OHM;gMZd)Yowb-{8YuXv#SPMKr+T_^~ zHVFj46oyFt^2B3pbN}EM2^V#`8OTA8uIb=@I(cjN72`udToC2P%xmIrw_pO`7l7#OBL-<|N+yrBCSs1Y!{xE|x zr{MDA$C1Yb2fCn(cIl&$19`}V;l>uEqqR{qhKEib?Le|+H}+)<-nAjFCH#T3d?!`_ zp&Z$~Gw}25vGw(ztph0N6(y4z4OX^}?aK$G@?oxxKa%asJd9%h@U_)!ex$5)C@FwyR?n&gRBNbB`nz&m- zwf?~Zv2WIpGQogHz;@%1tGcHN5nD3NxpF0A>zh*RHmA6RPs$Zu+uzo%S5P8gKAsw{ zad4r<+zQem{20ouz9Vk?Kujq%*Zm`nH}S$C+g#mwCNB z4kb+4bvy=xF<-y<+%hWu%I)7K{q!ws`6~iIf^q*TvHwKtvLnrLra`bZJgl8sacq75&w$o)-UE<^}pBVbmi-$RA@ic1cB#B&ftub z7(V;tMcBDK-uC8e9XHkP>*jdy+pLp*7Py^J){5p<6JTC`Kpwm{RIFAeFKm#gxA`y& zAaxp!L#`zp)wf!k`b_}urR;)~vR-VV`~evqascZ9&=EH}rH5xfu{VPu3CX8SZIB=Y zU764f$Gv+366}JpqHt|*xqn$2$^Y7lf&*+6=tY4sdyZ(8@iq$ffEx!z)m>!1gu6Lt zZN&RzHn@fJv4&cm67t`ndNz7ooH&QPa(P}XZM>f}?Y?Xmq^F7=+ z(4q!dHF0mS6R+0toLzA5+q&)0W$O>s&BlQZF4p(!xavA6Y{n)Wt(`&%~t>meGhCaW1Tz6e?EMR)#TMr}+i!O7!N9uTG zWTcXtp^o$mrtT~W)w?r|eR7I@#F})WNfU##6q7yQC86}l4t_p+P*=PL4E{IjBixaw zCf9R#0_BTcXFbrP(`21m^YttT1MgO5XfaM}FMdg^oq(^2)!nS@n@hf=_LT0ceWDdU z`%B1Q5=UG~^9oyXncsoISW3#8{3*-A2*tqPzi0OCm2sg}Zz zU*<-jRtlFFY);Pv7-}rWE%hon4<%5ihAq;qX4HH6K!dTX`}I*+Iv5>V^^rk2?powJ?$(zXiS3ty z+P?3#1@>@jk9hwBjbcCDc&D0yDzmy68~=%hSJb76TifWMuUr0GsM2&Id7XMNM?(ZY zOF0eH^IrIXZ~W++h(s}1fpQ8s$`F+5VRQNsvx?pyxd6Jlz5zk)Rj&L$d|ib@liT~( zYm16>gG#rw)G+7}0R?I45|EA&Dkzc@kQOG5QUaq(r5T;lB^?6>3>fh{1NFxD-rqm4 zz3+KXJkO`ju2A*i!pLCn!9<_F#&Jhaz?1MsBBav_^~JRJ*NpV0c_B2d!gSRB-7cj& zAfqN+xlK~d)*uBw3@j`k`{@wvjw;fb*yh+=bNV1oMZN3Fr7W42Y}--mXwQQjOQ!j)9J9+2czFUHCV zo`-MA1v7g1w|r+vzy;GSHI=?2Mzo8cMQBW@LGhu7a&hn`@rU_hq$(a|b7WuJf$g&6td1$Wg3|Ux-7mwE08C|K;bL;o4eDA5AD=>7~V=ClYO1K2$ z2FcOmy>ZObGxmLY(m6mgPv(t^l1vlS_XgY6V&K-gtAw68{J={hLG-0z@s*0)Z&X|2 zKDxz+4f3N+E@PePMA`>DB%!Ugg=|f??EO}`bEc67Q(y5~`|Gd=6WQs@!8=QQ?&!cZ zRD0B>SwK4$;RU&<6ZR@?&LZKNR0vDYt-C3(5|c2Z3)X(i{xorSy+1!`zce*&AFFrn zx+iFzSE4{~GIr2R#`-004Wx36y|0)0#8pw8H-Lhb5Nn0TKk&}t?uThU1dT=+a zAgSl9%ADQXVe`SMMw(_>yX^eZPZ#$wqg3_s;80p8$aX2{ulOVz7ovG(G5gk_T1s7# zb@Uub{Mub`RMQF8OJ~Zgy~c9-SDFsHog52Ie&E-zbeQ+Y80WwrORE;=#2{0R!v2V9 zu^)q!;>^c;Pt(&E_{Ob%$**h7z4Z;*#Y9411Rpi$$>Nhn8|*q`=hF;AOez}6PdC~` z&CuRGtt!`+8ix`^l;1+4iF;;}g)37Ewp*Z26epU1H*pKsLW&dkLUXn%MR@D6#Q zwOAI?mDiCHaoV2+{1+e5q8f0u@_{jZ!KYCcL%ZtKB}Gsn!_RLP+$}3T1^P{@2^E-3Tu7C{ z+}hneL##qB(`wq@M^$YlM_T*`I-qw;p4RwQXF6s+scL>^H|dH(W%oW5z85C0fO2$R z!R*0EeuUhf*_Qe|T<^4Dh&D(SHUS&v#VbCTign-OFOO>fKxfpOb2!c1B+DN6=UAGv ze|xz*R))bM{R?wTtA-Y{@%!lZA{5 zN0_>pB2UE=XhOv2)l#HF_*M9b}Qn?(}<)#f5gJ6drw)pTrs<9A!kt z;7eM{Mz-$+7QaBL;`Xb873vNT5B>qr?;JE-^o(^?E{*rj&{gAT@2d6l>TW(R^56qE zzFSUmZkHKr>2=mWZYf!uvMWbCPvVudveJ6JlSYfai!KE19#?%tf4a+y?Om^2i_G|X z2YYap$z1{xtQ5yWzSt;?Y>>z@1=TK5+L-l;Ibc9!wd&K_tL2XQD$E3P^#!XglplV z((%d{yG(aRu=@@8E8yDkub>tPf*iEyC8)M-xTVA~8{H_*qEt%^GPXQvr0FM~WEcG) z())RF)(Z_wBHg5Gm)%+o1pDM^@=3Etv{6o!t0@Vl_|thbF9vF>%-3qfyJKOqLqAoLf~o)p-&t(?J)tQ_-yG0`t}8?VBfglaLT9@lS0?mzkWn@DK4iFp2fUEp&YqT; zh0%2^lcye(%8Ek#MdB^Hd-BCe!7G$=ekfXoq%R~8 zzZq$GwgmaE@ggH9NBegw8?v~ZOV6mp!+mjZe%O0)LbU|OE~~~<6*4SIhSgQKIKW?d z&}l`~=C++8E^ieZ)7R}NsQ3luhtL<(9WwRG0P4rJdS`OO23m;qK%aqrJK&NIPGCq> ziL`i@Dz*5XfA6wxx#!if^megf1>(XtvxJ+Td0xDbVTq`FD(Ifip=?TS+5*a3a?E?N6V5&&xk1WW_3x$i085w zS#rF^8MRi@k1vwKxO(mwW#3))*@k$|+)=|AW3Eud;b(r_fc^#$9b(<8@T+YNP~6or zp2NNvNbdVfFhhVjxpI2Xk{mMV?Zr8|&S)r$-%7FCpDloi_7_1IYlToJ@7LdJT?DnB z`I&u+ruGODI(;^NJ|Q|MOdAbC16Jj~b|1Pqd`D<|-~EdMQ9~=`2+_FbiE=5!vyq1R z5Q?H}T5m64&R^)f0F$qeV(G?#V9Q*Pv8a)IN|Jy`GxZ391|Q?vb-y$LKKn}|_0akQ zWPJ=AJ6=JBQr2Q*pS;9u&2!QH#*}?ZwjLXJ9D)7q+1bd}2TC3Itt~$bhReH5^*eQ` z<=bgATI|808EDFNHixWe`!}M9yaa21$7>g~kmlGHvz@n>-19cS%sSexFg%Fwm8=CoTxWxE1pNo|tW&5dBkC(CC^qUnTHH+Rhqy3R3^Vmicl7N$K5k-K z-)~Ta_VObWFEcWfkO({`i2sy<+rl@d;P5yJG64-<{(>8>%2xG@>b;clLGgCf=q6Xw z61`vV22DA7H`e^>mfjPi?<5|@I;&ZKKF1w5eybz8QF`B_N_txjnm^D z9|!O6CV0@x#wa>9hvTfBH7=2%QCUnkyhO%eM#O#%ik*+ofxCuMNI~x}BEGm4uD>l@ z{Bnz86cy|IBGa^rbT}AY$oaS{6?V3$JhCaaufu6X%}wOjRG(>=YK^#ro9cgO><@Rn z#k7R7bayu8Nb7t5ISM#1;L|DGD4@5Ze~h0DPysk=;hy~W^C1T%L5GL?{{siyVa6se zPVcacs!hqS(5G&U%Y1n=PB_e;wC-P)&D-G5?^8`6>~j)RmepUfWd2{ zV+!IdRv0JV%I}q`;=jfrw)71+r4t@)hfT@Hs<1{j-KthVy3X*qxl zYT-iA5shq$18xs3WM_7I5UWb^<_Q@h=f@e2Q+XFFa7!*{-*Mx9o;ILU+A*uy`U~Y4 zER1fr`k>bbR19O4hjlqRKC20x7yA}DWc;rf1SKD>Gb>ZB4;f9ZYE*jNW}cq~I0<57 z{4okHQN`6eZ*EM^VDu}s%LgTfcNd#c$RQ-`mb|pzcB1UXwZ)(XV}QpcjyyU8BsHD^ zRlDN1cZ#k6EyH>?-&iHgYEh9wA^hW!(#dPjp>$^Kp{!ami#gYHkFA<%xh8$!jrK;` zBILfBsN-IrYYIaRld@B2GkcCn|0C$QRMSi?E?qXVpRiv!+_lnk08=`~A1buf231arC zru1PjWwFYDTTM<2KAMTkG|0JG`&N=0tRL{KPAF46desp2jYN2cN4|XH8eSGze*Iuo z)ksWUmOmyt#^Id)f$ib5{f2^b9)+e_d=ATfmjFVU=e)`MoeajT z@Q1QctsTH?Et;bq>uEJ-?a%7-e9XktI^4?b z4=%Hb6a2Nq*pF0Zul2)_Z$IR-aPHiFN$kCIejEeu zo)mv5ikuj|ZqmOO_I5@U8O;ytlF*0PeKmUMjA^57;pVb+(a)_|tkP?PWcJ4{pRKa< z!%k@2(M%-gJfrX;;TwVG0@ZTtYYzD!l6=9jJ`*?Dq3m%hcEMm;HP$0>+3YL3P$NkD z;vB(P>xBt7#)_y63c7&F&sQqa8!zaum_5)PIA$NjhJUdS=@!)S2ANdaI2dkst$n%- zDyn>+km5uBGwFM!d{cHMI~nCJD<3Kcs~jA&6GYD^R@R$2ocSoNk+o6y!fcU{uG-uu zYepe=_#%Y^!?MN<}Z|!o$N6A2)LGwei(3EE+K!FOMjD42KkARp~AJVvon{7 zX_@K?aMo=&6mTSz!h-dEoSh}IQ<}R@2afxYPaU;2RlN- zcHT(p-qp{&W(Z5ZNZ8R;bWM(T4jE}ik&kb&61ZI2W!_6K&yTCjJ60xL!kZ^Ni4G1& zTQAIez#5~2^0_K7fGfY0-Dr>zD0#R_IJLiqeg^yOT`gbH?|C_mNA+Epw^11bCnZnQ z4eN<4hcH)t!SY9`sL`g+CKwO8Ej#f=;+5Ql$OZcB1Utcg%b%DhS5o&*RjD11FnuyP z&BzWd1siyUEpFjiXweDLUEe7Q%yYcUT5=tq>zL`$6+ag0QVMg}nZ@lAC6WjA?xFZ z-d3`*qFiSAsMI}?6~3ysawlM1+)V>Yo*CLazkZu~dA^O;*@ZPv=o0w9ZW62H7)~js zm0||@#VYi-krVbD3xnrCRbbrT;fk*lshCsns~WN+(00rS_WoA+nNj2ZOtTTeg>spV z6Tv@=%_s#()KPUFc*E7!o!aaE^ahSj<^op;dzskU6rn$3gL2wx`dXT+53r*;r`GMt(r{e{W|@A} zX?hI;vIIovSB%Yc$#B|L)5zIFRJ)mLbzyPy2zgYdZyL?n-=+@sl;pE!r-<*Q>dG zRl2C`!_TAT>z&Pu-Q~AEwD_{%eR3O)$8V3LdUw3a46XSKvcX+F?K68TGsxEXsj(={ z7+t|pER>?SMc1)nLhWpJ8g3{ZW&NQ4Gi|i zA`BCbJnSuz&6SJ9^~ShD##3=&Z-uN);5=$M{N}EOy(YB@P7EpT_M98YNq-h9ljFyQ zio9~O_A!vLW_~#!_g;81Td*}bek~4#&nwR0$7m4PGFNac-?Odm`LEBqw( zc2%z-6WeyC_?JY{Y}YT2I}+8=>-K$M#ds{Sy}f4hI^1)AvUKHqD zAqa&8zPie8Dxu5cpG<2t90w6E#WGgz(Oz}z7e?%fa^{6Y4>}p;;OD^6+1CN{=5qOt zL65ZS-E3ICBlFPHF+-mSrOh{cWsbGvZ{$W}jc_K~ z^eWfEOC5)vm0Co9#9)+o2};Aeh~#KyaAzk^u?KB9Ri%C}Nii=CEnSWXQ-XPaL=cG%%2$-IBgHd1gfGk%HodEQX1{5Y$Y zTiV-1)$UcF)_z_l&XOFcUyucj4ja0IT!}5v{dw|tzm3@0z{w+#fRqM%6WKpx0uH}r z0^iiz?%^K8X;M6yLIOS-MU(lXl+S39Y1FprR^^c1GGxr-YiIr@hWqewnS;9!xFfm# z(Z0MprM19)qRXfId40?!b0UpsmsA36TJP0ZvIPP};W9i@c5AlO~n&3|i?B-TQ=7?U` z+#M@fxOO)beY%JIkk6&EM4EPa%%n>s?7$v&? zFOmYBYzlxdTo~ikgtuzE*QQu{Ut}m2NXn`f4+33?(^|sS!#^pK6NvPT&TUp%%1Nt~ zSAy~*f^TMABdV@*)4vsT;NXF1E9KU>KA*Y(u>3XisarG$PDl0GDwcF>-_gtV)GulG zF^riFWn3yhS$-c~=CLprgYgT(1noz~&rYb4zT*)7PWSfA=m&@_kv$6|eL>plInDJ# zvThuxc!z9YU&qB3x!b^U2r0&zEcKn|67&xwjWcB(Y0hssslT!8l}a{t>mL=sIW=ld zggv#jxlEIX4W9`jP4c3HXAwfIIIal&7$fy~a(eBAOnC6Rv#z0H#!apO#rKrrgG7Yi z2k6DP0m(9DB(j{x3^bA+$uV54>tcJ{YmdDcJs;WZD*r^jZUs|6tiQseK(3mY#)spR3ia8|+KCOEhq;RlGHkt0mWFNH+?REgSRt?uf!`>& zQXvG*v-;v<%-d7={IDw8YBCkhLo7l%`926CGr+S)QTUg}&x2VvhENK*< zTcSxT_3pY2xr~hEwc)mb4wJeYD!HKSvfLu+$z~Mi96p#J@6s}A zPnVO3hku4>8H@317ubHkr=QeB2^I?boQ&O{U(mE#%rLn5DFI(7>9t$(8<+5kQf7#( zxA3gl_NR#9Rsmv{ZLPeL(vhdAl@J<+)gsNe{p<(`eVRLQYG4o=rA7>xO2}z4+awZU zQm4>4Iz89&!h!>bS-IJ!frfaiJ;hiJPLI_R8H-MjjxILO^HPoX<(O_b+U|y5VJ4J$OFr+UkgORkVi9A zt&Vak)BtA>cLD?)pnm$szj00M!w;Fvs|y_r`gLfYFc{HWzKpP|DoS*Yd7h>;oEH-abuX$o+ld_k*$i*ki zg|BH@o+mkWA&rfm&{%xdAHLhUayG|t)D(iVSzb95Gi zlfQptDF0we5_C|VaX7f`ry^w8_E-_(S%#`~*|KvN()ZxYe)vlv(H}&M)AX%RB^)Uv z;=k+K)~B?gye0skqX#b@8I5gbeZ7_Ub7yxcTlJb>S>F<(Q#n1ncaZ5~r7?Ucuq4-qv#^Rj@}t}}_%qPK{jQ;Q=`&l*>V(OQeJ`6bH0wpXBD6IgNw?*Xr% z-Zd|Kq6156s#%7jU{X}K?$?_y+vsdu&aebi)o z@vP~rX|9J?b^#*qt!Fr-Df;}yE1!F$k#c#f62J32V#xxl~Rgg4T|>X1=U(W%fSV zzZX1Y@b>=iiiDKRXE+HgzMYgxP17W#&O481Q$BYuws2Yi2%weUeV$nib(<&o>FyPc zbgYu;2~yJpx=GB7-?~ZgcI7-1;@GckGXLu0SfFy@AN@n~V~x@dDaK0HgqZXUHWar`O@!bwqz7(#kwHr3bA#m=>bi z$;@S`lk}Rjyv>=PEUc^t!HFd8Vn5c_&Bl`q>aR|I;GNjNhTq$N-|E~U(z4HU)@1DR zcc)m?w3*1ZkvxLf zUlZ!st^QkxCVO(UCzy9fhF?7FsH3mTG?%iutIM$K7e$VO!C@}G``Aa5l`B>^gF}<3 zvk2N&-5ia0adltJDkKPVJ-6!Y?32F6yyn;~=@@rjAuE!Fz-T#!@&V8^*Ra&jd{XXlVwu~koALeJ z6ZZxL{4H(A#cT4Q%>R<5MRFhB$AnIwxXi-fsvZXpXaWPpJNHWtU2`a zNzTTr`bdkax!U};rt$p-x)O~!Nb>y@vmxi#cVTtwp>GuyS)vhsO5IwDhn4_uM%kWobauv}YQQX$X+UN33E^F~Lg4&IJ$U-hywTdp6x z3>h-Z=38TT}-pA68;25)DM4wB0~}tm7S1#?Trfkj=0X!`JI9>D76ntPL4i{(dU+n z#GH`g*vkbnCEmWNS?J>sx%jdDZy?EE+~`D>P~~Y;QW~>ci>sfSL@rJz8ERIfcLr83 z^PK!>a{8_c)mz%sRsxD@-)AE+cFIhn+#|Z92Q&2R8?C5n_hRRWgm=a3*!8V-`bn@v zJIUWGx`h}HSH6}9DEEFG7S4%!$M>2Iza z87-VycXSXRY6s#Ou31H=^D`(T(?uU%tOZvkSDMV`C@_ zh9qTy-LK*yY5omiT{cL$^6$hH2wEq*9z45}*Mf69yU&B>@Xk~|oLK{<*i+3oOStn4MvdZ@{i900ZAk<0Wz zxH3>;EFmsF4rEyVY0>bFzO6iIe!ABqw2znp5&8J!8P>kj8uBAH-Ku8t)v+KIqNrjc zCLXU%tsWau#1xPmN zeL!vUyL&aQ_ShoxeJwtN7a2#`LCBR{HbbP;7cGMT5Kb%g>@S(h|2k2>xU!zV5P~lw z+$Bj$91*+Klo&shLS}Awzw8WRjyF|*YBz~>pQ#xIL}&pS-?@`CqYQL8GKHqRXr{?a8^E^HoI4=r7k& z@TJ_`DwGesQQEND%)V3actB9cdNTjdc#Ktx^W7A3IOgF>Acp*vwz|)coh)LY*)VWH zEq&daTzAH7HkYp~PA?U>A3H>%-^fR^N!)%cuK)GHgTX&s)6$;R5u!U@h7DS4Ehv`e z=3K$h$9CB!?SWY&zI@$<&aUFfE`iCFn^d1a8PEsB19j+$Hf>XG&$8ykApZ8TA(RE?{lG58k6EKrZz?&40;>Gj?W#7NAVtcNSzI?F2WFyvFD*xJocc}j-W zIL%LvV-+_c-j}#C;P|TN=gfacHR0X#-6{9@W;q%4=)5<@7v;hSCGa+Rb*8 zHpO(FWYo*^LHTYtw1Zf;JNHdQcR1b_SrhD%lQBfY)ZbmlGnZjaHanIffoUC<>(`{9 z)P14Vkhcv}F*(1Pa!il`C+&^JQxzYv4>gSyyKiWN0(@WQ@jbGumz}aBCid?;Uk=6z zUi31AHX0d`-*s}V~>IC{8a`*KTLl+3yH5s@)5Kfi;^ z8@g(|^A>jAdl&IcgX_tyJo|LhA zktP^P#c)R0S{Gy6WvIrI|3$UdhenrB;x}tbHJZC*a{kbAd1!NV7k{ymoi4iqQWO0 z{z}OxDpwJeTX7#-Mk#$Uj=S0Pw*3a(o6cNJ*!i@6l##;f6ec~%}pXqRE0PKfeULXKR?hQPx{Z5DOY{$lZh46k(Fd&zK z_|86kaer^8ZmWOn{XCt`|0YyaiOPInmzVTc)*lS9xeGfKIc1Zzp^4w*&_3*wP1Z#K z;eQ~HbX2ti$Q6``9&+%cghg%^JF%z!O8qE#K!az+qKM#|<7hBfJ{I*y8s5KBKDWZi zg`6JNt?D6PY#F7&@o2m)7QZ`XOIhbRb1rt(Sd|qq`QTjbZG7z*DbKI)O{#t7t>O1i z+Sn&NJ0q-P_srLhGAr;WvZiF5CBRPRE(F70uCC5Ith$AZt@zi10`UizB`@J0_;z=r zR3DI*m9^T2JI?uO$M7zicN0Q5Eo4x&202_!B2Q!AH3?YFg_eF6y9}%zXgKN~&-~b< zppVHi&_TYfMxs$=^`Ft=(D} zB}iM*bl`P(ZR#!S%GBe@dyI zo=ok#u>vvd0kKa&YTQj=kQ~n_wb%qljbLnaxplluO#L7)<27c#Mq7D^3O!)9F+(;r2IublLfk+hLuA)s6S-$|LP4%)j=a}d zGK3SvrO{#-c=^xv+|Hv}8Hn`D>YE~X6B*g59-R=fBF}xEG!JEqBG-6TajYWZ|ja$={?vlgtn@kd(c{ z|3Nr_ccRi&dbz= zBR1vZJW~b{uFsSGx1^T(i#47PB#z88L-1@H*>Z$jg-@?GkyM==y}q zvv1hWWfm=&ZT&vPUVIb~wM3eqNl3!wnBmzLJNJ37h|P-$gR8-V;r`IC!ea%m+xmRW zH$Gw~Mez~OSe+HCJ_-eBkxv1=XK6i9Hfi@&ds%KjHE*Z*f=ReoRE=EFEHT#2&v zwjAb~8(l&kwvJ-&qY)qMPRNt7X;XlC;|78i#@kI2|EMKW{pvwfZx)pCsYmf5f5ERz ziz5uhp^efX-KBMZ)S!c6?A=Y1mIE0zoR;Sfv|;^I*%4pTuY4KKsR;L*S*-aVWh@Gc z_G(|c-ka70@&^#w9@T5+;kr{Rf));}PZoZTk9SXv)Y;WEn|Bm8j^Wu-i{}rKu}3QJ zKxXvb;r`Ag6c`|ztUvRuybj~-1xKC8kw(tuqCbbexO& z5>D&?ft%=$EeBgZQmanJJg1ws{()J(LPXX&vNa0LGKl(IbG-Y}d7kbQ|0AFjxM=oD z+EF%D!^6S{o-q*vCR3g}dQVQ4z}&-;Kn-(n)8Vpx05YDd;&=I=*&kQAlG%638_qR0 z6s&fsQH=0W>QTOl8%_{YtrxKv{dDKZL=CPIP&n3$JR%!~X{6!f_Ip4d56^%56>eqc zg2v{KX6vRhPiOB{RaEZ1ah-AiB5v6_2wfB}D6k9m$^#GGeW8n=-^rS@#iJS+A@$zx ziCutw0#mK$CoS@dtgoW|r*Qn7AaY-QA)YlScT zR8#y?8@pEfUiVWwS4^cgbn=sLj(8eOCVAtRX|))Pbb`*40{Ua7V&l^5v9A|UGR5pi zcI(!47rmWT2)t*mqPr#GAI$bHZrdnj!kH`o8?JcTUaul8Jx&i#x6>0s;eTM|&5;_q zBG*Wvt5wH~e$vg|t}}mGP)duXJ3-Tjw*D(=I$9uP``_nw-TB`UC!HeS4)fDM#K|Jw zj6iFqaT`uk{g)Np99(LEbu_DwY!MCkZ;i?A2kLv5BqiC4PY`@WSm^piHgy-0E3x3? zu_(ErAt#JpTw0i^$RHu)i8T|62PYdY)F)2znXEhme_ix3PuT=>4-gf?fR6oVnCJ5T z?=a6JJHsqxl&Drku4U^#YmN55MQ0g<=&bZL)#Q)$%Hg&*`1%nDSft+M`f6e$9&^t8 z;-hwa=d|1(u1O=4*kGBsCne=WDXpo`Uen@8$&*HCn0v`Ka6!n#OzgrAvoR2k>)VX3 z$PIS;d|RO7;Y^}|6D87h*n95|zzarF&AYpA2k02P0a0whXBRb`g!mkBveUS@)ctLH z%u9CYKdG9Bt#`b#25p3)e`~jjz*) zs(NR2f(km*!{6jCPTYZ$n-XO=-u*jbF;)kC+!5Q``MFJ#H&@quI)a;x3@M)|NJf%Q zfT~GI6Uek23HZ)>gNoKOEA@cZuo9-BZH{>s*>dQ0aPugClZ1Urc(800vT_;FIs^+^ z$fLjvU=Z<~n1-4*iB~3EHMR$DXC}TLWmm;NmpV<=MO5Cz2?V|ICl-sOtu|U zLdGUBrUpY~wtB$qc=VmCW$OfP;=j|1wZ`*XG^7xjAk_3nzujNBAu3m*vtF7l8nW5J zu?O$hE-U{mB2>OwxZ_rNFtHrG6=QoiyEOH=Uk&*KdV9-%$!*EMYz^oYnI)>ECGG{x zh(L15;4wgkAuc*V2e{wWGt0%!TuXz_FCuHtSsQ)q(UeB!RYspq(bYxxB0TAN-L^88 z2X+?2BHji%&f^GXPjGGv2@SdZ&c52NMp-BgnthJ-f-|r1yWU1|NP7%uI^jZMl<)Zl zyN3W?F?f7NZ0gY4`|uG;c^_JAyNU8Vgkf|0Y*q&#P|tZNE!Rrz$8%{hy!wUjSYWr1kkI06S+WnrVZx>xi+x zGj4Xf-JyH+ly@h$nVakKPuon(sx#9gzQ~BX*4-ihlCZHPy0PO{QdK>M)YrQz!?O`w z7+Uq1iot*Mu|oe3Zi%AH1vY((cppj8w{aVQBD`IQXL1VPu#^^YNW~9GgAY_s1Z*!Txg9t9A)e5j1_jdt^8H@aBbi%z*f4R5i~ zQuP?#-5U8zGDg-Z+_p6gD zmUhrt6Q^`lk93#3(#^38p&%gA6-#Sz({GRiB9IW{wxqDxKML5MFuhr&MeG9jpC>yJZ{mmN2X1Xm zyRR;=dd=+bw#$rt#vDa#k1r^mW1gs#v>YbW;*u8P>8`Jj8;qTKag%F?#)8l2rdTfU zOTQ7sg|B%IlWmPW2WfuD^pFHM??%`5@7@C-SFveLpWnzkbE9y_wTfqoJG)9SYF5ih zI7eOOKK0bztgeKREth4!jsTyPX_0mQSoe3txo;&IsgsUG$3HKHb|(4(GQhq-0Uqqp zd68f8x8%VO3M3C)qct!45c6WZMOPL~)@YqSaS)9zR%o6X1y8#m%v3f{dw$ArG*pQ1 zYzk1grMZ^Lp%kak<9xw&>(;EzEA&&Iezb%h^PR0&i zgIeo9UV{$Vsbrmuvm8#L>qbtz1xI0XLJV5jozkYz6$ZUTXBlTLMo0_ydX>hmq#6xt zIaS7??7_*bE@^Z#VpVUpgKZTYHH9)ny2GaobXsgP{ol|fXnezdjVW^@#Enj6;JEvW z`5DOXL$E0!%%#j5WJ!S-Pa1c&l~<~>(2cXTg^P2#+h2^#-}h;zM{`31{lswLhaDKvunAJKKw`X{b>0AbNAi^)Fz3Pm8@-pTz2*YObtw0?!l zmRYBjOx`egBK(Z`;aH#7eIcDbSid4J|27B43Lve=`5vLmoswjj+vH^EA^pV^&Fr)_a* zjX4F84=9`2zPh!&6&@JNu36U- z8*LG{xW>=h4+hxLWdHro5x$qvXAG&+qjA+YZPPZZg3|T(#qdTlsR@DU8x5wf$e0z3 zsjLL7wdgVRpObg$4cF1PKl}j+p|u>1{{Lp+n3yrS*o}bt&Lh)7#oZjqpWoZDs-ITL z(GK6&j;A^s*oJYRd!%L9;|lJ}=zGloAzWrfom?J(^l{Vh-v`#NmgvY?{d23tqJM9d zKUd$sKfdVEw{X*sZZE6GYTxzP=Kr-=`LYv?lH!g=oyP6w#?{y`^-z@`h&%GaMa8Ka zs&wGGIEYmLaA%Hc>o_$)C!S4squOzEPeOMpd~8`8l8aY?^&*!7Re zW}|exqkLQX&Ix{0yKq-JRXpX4)mtE-fB1?2GyIw&hT|W!HB9SuP;~4Tzgk~cL2qk% z={1wJadM~ia z%tj#h0?O%1_8+LYXp2p1q7g^jheb8UQTX8egt<&{@GO#FPswL_<`bczs_tRfkGf*u zwcpW_d}K-#jj>B)|w=&5G8kZK`0}ioOJIZyH!*)2|5g6=6b3@mqQCeTAZ$ zn$-((40A8Cg?O1j&2LOLn28MoAA1RPn{*c?2+3o9bnIIrd_@{NMij%YNh zy(5EZ#Jf)#}d5^=7T+T==TqlpINkfVDYDjtvFQs|R`_Azp6T+taZW zK5G=S?V4JIu4q>uN(q9mOI71#w6c{ek&%g-x=D|(Og?g z{S>3gS77a#8Mf+0K33mpOCG3|?$1LG&x`9sKLfF>Doo0@a?;S}la~*ozALaNdiL;( z{BzhiC&WE6B=}C~WdtSb%d*o|gS{QT_AG|LHT;3;t;2}Uq{qI8j9kcE$)z89rWJBg zZ3TIJ*MLfOUQ3Yh0lAZB?+CY)T+rm-BGuLKpiDOhdV@POG=3Rcw5E5=GPSw`1c{Dra9S-ZokGn|!3* zzv1DV^$yt_oN?@G(>36zs#IqJ^u>v^J%+j+UTxNZ7DMe}0ehQ)ojrz$pONw#JJ#)t zpRKv%vbwV;aX59%8gRAt^!yi+XH)0bEtvoiIkrV*=4_C+y&9I|x^oP0fC!g_ZFOzR zH3w=O051$W{Hy46`lg4@=l2=8pO?Hb@_A+ZpUrz(54(^4RVf}g9uFVhnTWcvJPKM(80xDRjyl78t-Y39Rzf0M(*b>) zI62>BiRL->yuVtFxdmL7aQB5aDKZ@FYlUj2D}$BnGs@Aa^xAxRcrR{_;mxS=-W3Rpo7NUe>C4);y5(HAXlLZ@)s7& z{u++-`#T3n;*`N3V=NuvD@m`pBF$>v{pytv)AXm0Ql;wKl+k~Fye1Nimda=zP`D!f z8cF!-b5WJaREjTU60XtC;jGm3jOKYaw=y?= zT?~isw6@n>IQ;o`;TeAB*YXKWU+vlAWCBIc$Hb z%QOf-=FlVI!Tpb7M2_AUykTkQBB$nB1@BH=}vHEq)>3(pPB*~224~6 zeIeO;&)n`U|5PJp7fSXN$EYIujJk<__o?8htS!y8rCUf>z9z}8&G@9R1KR_zq>l4< zmRzg+6mGJ)-Z3#;DB7%O5*aaZ-@c?HJ+ITv9h*P z2jrf|w{N(zmD2SyHn>_~LFxdrgEcqr zSaZa@Ze6i45MuzvUXQi?o^k2G+0`;}?KPPA@Dv4SNMOMnFlmiw(&D6xHq&i?7Z3Tq z<-{R$dxAJbzGQq~Sk7no6W9)_yGM>#S=JWDq;jA6!gaj96`V3hN<8zXmG^`-cisp% zsNnWQ1yVSA#(16}s5IZyfOXE3`=IoVXQhmv#S4>M3uJ2_$F+7-Hr9gB4f{0c!|JhyqUI)u$=$xP8&(iSO!|zQr zQ52;fKhXAuLlzr>&6W>c%d+4pe{EYctlIvM^;<7%tL!h`HTn594iD_t|GTwy^QeM_ zCu4UPm>NlmOq&V=q~UhMnzQr^mDfScYKg*>ZK&R()Hrg0;m~mNEr5mI`I)!t(?6VAyUgC3wqxKf_{d;#$?-QcZ^7b&@8Az%U+V1C(A`9m$NyD;!1sYn|g)$6t>F_ymu6 z;Z+HaJa9zByX{mt2>O;0Shxr{IYL^=_eTbRs}ZQ>@pSKA!Ru|bYVn8uSx2mjZ| z*yqwdQA9Gc3EcJ=$NjehARa&w1zM10ZD^I{eK{yS*ZO~on_%WpT_aJP0v2Vk3&^{x z(C{C3ZXowD>&4R@XGU}Whp}VGBMRPOX@$Tg8su-_wMi7wQ4K3#`w?@o>dO@w+TObK zkBcWSm*^19hj(aquVh@sJ6k@G(X8?Set_MnMkKY*yH&fl*c-I-Y_ly8XiMhG6w z2^O!xic`ZkDISqLm(_0AZ~Oh;?Mkoy*@nk~^N#;R*k=l5VVJQZO3}@tIv**b-GZMG zGvRZ40=FG<5KnVIhw<^v>%FI#_EqVyt|nNCT9jS+r+_V8|M4$G7MS$_mKoBEZ5WzH z|8|zLZJZT2ky9=MR2=Isma@IEmtlReK*@f3Ie>90#)@#GdE}d{GpA&xraZ_dA>C~U}1Pm6l6p=XQ1Z#8*4heD_@B}<9w=z zOnf+LqAtbQxbGq>En$e17PS%BEpblcku?HXx&SDL1`J>N_md4L&;?-i22K_8X)9Zw z|H<*hpLwoV-W0vmQ@omtJ`NL!)RLw>Aw^!U=~!`ndM9>c30H`=4} zYuV-D6L_ZdlNCo!(!+88zn@mfV<+E3#9Pom0_lvyC3|xLpDZa+UU7IR3`iGz5on%W znDA)#`T(Sp#u3fxt9$TrB>`n*Ov);8)!jprv0A4pJ_>!*0B={9*{ScR{o@-j%Sq-Z zMZHQRZmq^{W}frg1(Y{xZ37I@oP4Iwy;K}<>^Cx#U#$Ha6T#I3LSwB8Nv-aTdf6*M zFyxq*Qz;IW+VH?nN7Rz8)d&4HT}@!~mgP1~CFjxP%$KQw=`TITf!;a{Nb7o`v$t=z z(l2C}MioFjkk~`CaPVn77l69njEv>iK0fve_9B1bG0MfV;>lRvrbb6xb&QEm4l~ zSF5Y0zA)~?1rUM#13#Nq7?6UMAnxM=;r+ap<#!{LjGx*eZ)QnTZwG-%iL*bB=!AF& zcm=bvR)MRdMoLo)f&H*#(P>F4SS3tUPC~6S`vq?v$p=G-IMw!ZCHly>M*#M55~~15 zogaKOvW24uc%{FVjhwiALD~d<9n;f;O9nRk<32fDybCND{@)kuKUJSg@QXC?y}pU0 zg0V{u0Fn=y&OnaWLZ{vV-zV$h1W44|nyaiX3(5sqakH=#OvLJsv|@2!9r}cU8vrxe(8_6N-~hW)I#@+4aK~R=)3JK_Yd4d`Uh8S zOb|&DqE^LB(aUj(|l z9-*!;Idp@%p88Ou@tP(Q*&+LQ#ZfmS-o^I_aHHK7T!b57q;3HXt>=T@0nux{V94%z zkgm1Ed+9s?Dii{nHL#s4H0omgcOTouyYD>0mcoyYs2q=sK@JeQf9~D+ZqC&x=FwA~ zShZQRtWWYEjc2wQ-&yDUWV63}@XDRz#`nXPk{_4%ik&<=f(_T-{>EwRE{S7@emnAc zPs5?7$9m75JbL({rs1N3hLN+?@L@zcjLV0IbsR=+8qfx2H!R%>%H;Y2G_NoxO|o)Be_lV>tRX?fW1+q9Yvi^0OwXrZ z6rcR}cacHkD~EN`KoTO^8~qvU-~IRQy>(@JaIaI>LD^JB*CTah^(@CaU-!Zj$`i;% z=b6*w(oysdsju?ehW0pMx&9uc|lspIcAZ%nV(fv)d(Sd zp?GT=4^jGnAa#cyM7Dt6TNjoq@l;csz}W|9vi36-OO=VdF4|$Aaov)f1wq=mTXcVp zY>z-25wLTm`vMy((AcE7Lt@V4L`+MN)Q5h6Q3Bl#3{6ZYdqfxkt%;zy`q)%d1y@8< z?6pO2Iuf_XC8U#maCbd6Nr(HnR`iy+g}cRiJohM{Z{ zrToq2um)T8Ap= z?<)-vdwxe%L^<+RuDut6$Oe0CbMhE1AQ@guetJECRhE*`v526W2gRUi06x8)H8 z4&!l<67@&%lK+jgD{yS!v!edX-bZjrg7OmVSnDpqO#jm zYB`9Ueb2kh2F}a?y8fiu7jZzN|1cwU%@emhz0PjOGBbEjP`uOV`#&fjEMM#SZoQB6 zwj6LXe$Q)Iw0;En-4eL;wPs#f6BBM8`mu)@-lbLCAsIFVhv5##1kis7P-8{O$~z6E z#ZTrs{!+8gnM0wEbOfn0WW z;`U|F3}0ONs_@Y#Z~+;W=f=^wA=XJq!^@=$XC+P!cG_c_rF#UYdw8*wP%>tS*UqvV z{UI1R*-SxWSBkXnty`f;FQ<;l^dJH`ds7v1ke$|mkp)i4 z`=xamX>n2-M-JKF)IE`|%Z*(bQoj?yK^{njO$>jK`e5go#|)FbH9;);V0_ASE|QK^ zr6b%_7q?x%yEI=%LM$S0Lj5ga=kBUnnJ0M$%X*L%;}e=)9_%~$C$(pE@lRCD_OPk0 zQoiiO+*7LJrn3FV5+?&0p z92+#-cU^uRQn(Y&WG+7be(+&F(xpw7LF9!M=bnp}A@`1j_8Q;| zxnIU7s<;+|owkp(CR+*#S4S)L8mEaLF$tNx5XmR0^wM#JuUf47N~Uq|(5@C)d1Zrl z&WRI=&pkUgvhk&3tRnzPIkn>mylgM_)}m4$e-|^X?mHo`{-a-$xRzvFzzMiVuJAFr zp=*=7rK=55ufGw_yN8cG>0R1{GxTIOb}wlYu}R$vL=H4(OICv4TQ+m=H)N11-m_78 z;)ooNz$~H!*u+(pPIW&(okJBotQfnDwd!j~W!~?;ig0ULf|kd>PUnsJ4KydS4r(b= zUmYdRPiMiDvDNdlt!KwRyo5N45j)j10usNzZM17|B0;cBuI%P+u@djRJ>Vp7tQkL!P-lvZxiR13lsnSX6sM6dp)ntjlErJ8t@c`Hf_`@mQ7&Rk5}Quoe(>3VYS}I z&1a+_SqLd+7=N^{%l=Kp^%7dB2fwerYUTdo(he=zW!;XR{&go%w#;}4B~v8be##@(`xBWEOXbW{lrIYGv88Xq5+5K%FX)4wQhvlz0|h( zcFMwJa{7XQ=4-Ry=YuCZ0?sQyUnP;8?5e+NHeJELj9IrfnUYnnOu$?{ri?DmZrP4y zmdd_ixLzWdt6))eZYe>hsOyxP0O_ChYonlaanq8a0gTWBVSU|7$`V~!*fU8thDf%D zms9a}6Q=?I9t$SUJ9&s}RwY2~_-|%}5UZ4wbbsMzdhF23(Yxto)D8r98c%a(AMDCI z!G_wFPM=N!)&Z*0L`w)u_|?9{q$gdc0_K)7~e)M)nubGt4&u~n62d(lDz@g_ip ztXjLB7FX%CpZjAa*crmn+q!;f+s7Qw%FBK+P0ebalY6Za7DCE62W4%z8IBR2W5K4@ zJH7kVJAx#Oj{wT6->hoN;2UD^LTl#nTJ;#oREjE(UIAPAdZ2&Bk3K&?-a$N#f7G5i zxFeURNY5B;6EF|M`}PgCU=gEp5Jt+~Y9q@Hh8DcmnLhq^YGQq=@u1DeNn`-~bN&xO z@mX(#vS(hTV-Otg{2MFkWxUM3%=veHNzF~0cZJTy-kuKT{Gr)2@^+m=)D^?X$Jadx z25zm6!AD;xHR(3(0&VS0p}eW91(cjLqhBp+C*oAkQ7$|DV5EjIYC9?3bya7c)C3&zfKcb@};nCIJ#59fuC4Uw`^+<)^=2&1B<*H%&Hm!ekG$MMZ5qv6zG#M~k^PkbPC zaVfpJ*oBg#!$=8o;2fr|!F&4F8sj_l{ zi6S|E6SwSkP4Ch~7AOmdfoDrc*BRFYJ1|pmZOZ}|PhDQ){O83UZtF}+v|WSgp!D|+ zK|S=f%WLTJ&o*?WLJW${VM3SRxdxIg-}Afzdj_lL-`gaX8f(zOJ!dLV6WSdHpC(VQ{C=iom&XiiqR)%VUrS0TvKZ$I?Cyv)G!a!e?1qQ$Zg(bDg0NYoN znF%|!mgd>QIrZqE*meTtmS%4PO1x%;OiRAH-%b{;+k0(qaYDh74bcZVU;cuRzouQE zt<#CU9?XyhtoAG!vZNdiK?Ka?#leCdrb5XmU4a)V=8#HR4v)Q2+iuj5`PmrP*#d8p zRJ#28%6BS}@CbsX=9S^Kw0O2tUQlAsdE}C8=q0_V;c zV82%d&uY?_seSdK=d>`(RRk+IO=s>3Z%!RD>2}EsL5kB|_#Kw+I2tlR%(?k~B-z`u zuavci7zdk)>NDDM;Q(61ZBpc1$7rCmI|if36oHtu|z z7Av&7a-dRMfQ0kja!arSeh}rsC_6%^3rmZg?mbNAJKQ}hi`)=86W^Dvf^KPTso9QW z+~UpW7?e`uhLYz}QL}Vf=5jiu%LoVv`@QVErur1SNBZhAxrNS>iFDf#+Q5Zn|QIrB9%mFk$iJgo)n!@HhA ztFc;I9CByrzOcirq%Na`#0Bw$KpozkADakIv^KR1hC`T#h^FYCg?zzW`&n+?eI%{= zjDNr{_u|n!?~nsHM8n&OGktN2aISf@6J&l!*K2T~snmTvL%Ga=2`A_<#g!E8k1nF6 z#;odA%G)k-)_ago!ibS%9^hLJM*(h_TzuqhZDx-*ACjF+j#kI%Nc(?=pw1>Jiv~l&NrbBw;m|xyw zpk7?{J;{bz$79N3HREMGXRkoncG9P#2DmwOnPdLcy_iy3RXT*3Tu^zvL^|(!j%tim zhiz9fH^^>?p7Mu-@%FpZPw2>Q1=T6%eIZ%tMhm0*(7c-Ky?%P+Mvo$S&gkq?RZ zp6W~97uKx5D8Gg%$@$Kn!blQjqJLLN2|~@Yr^RvV3Z|yo*e=Ce_XQ1kYPUL3ZV@PB zVt(b^^J;M-Q#JkOR5B5XJLbSk&fH0v~DJeeK)&onT#w^x;aq&tv{6;(^Y)| zTklT&9+@84ZDhHK4r$rncTRb7nh&y<|3l^d&ujtk=6&4#Y=YF8+IPN1dmh)tlmMW~y0i8bC3oUw*ia2vp`_Ts)3#z6 zJoA*bZ8Hbg*I6+mk%7X4#Z7tZh>)4YEx52X5=S=bF`Kl~B^6$o5+SV;8$AC+9U|A` zhqq9$!l^zEsvIxzUUl1=u(>0TImpm)MlKOKMeHB+2XYrC%iq$vkVwk~b`x-idy1Xu zMHnEUscWAY&71M3B^Ejbrw!ipM8fGvyvq8);Nie~6Y&>9dxjKcv>4G<^s*kRRYiG7 zRtJ=GDSJ?dz%_a6Jiir2g)VXi!yAWM03UP>e^EOk9QR1Fwsl^EJdmo%TNOU=|%=et!;;Mu! zdZ}vZm-gBEaKiNMrSp43Ezb0-&`z8=(!$Hw?)9}66EgByl@Z%w_Uq}+^?Ga8=N|oe zi!cUOvzZqE*iQA&GLU7xgDxlM8X3G+~@9E@Nw zpr2M}a};v?SEaQvuR*{6dD%t8(mmx46@1L4QnKP}kc>~WpzMA{f5ByrMdtwbiKHvh zu<>D>6xN8MMv-x%tGZ6J`??NH|LgW8+46*5X)L?WoH=>o`0~VC?NY&y3VYL1;Kv|0 z)M>H#OI)@|Kx=XON}gpVCO8aG61Y2`DT%~t{kGm7`kzi(56$MjBf>o)p0$7>dxJ0e+8omDM6#cTT#K9m}{=l??qD)41 znqOLVeq3%}mO%vGRfUxw`#`GpHS&d#;6cY**OE~J<)uq0oY?rtV|%pCc9ScBYU{mo z6N7R{Q-$*VG-y|OXLYO1a61c7EUE}zu0i}*3EAj&wQ1R$L}su z&e@}+O&q7X!U*MGHh}tXz75oW#Xvy+)&2`^UIRNZK}%Vn%1Buy4j04J9da4-FodnC_6JpCVN*_kA?D8^zc*@U(wAlCs790;WUpmeXc$50d(!1z+SHk#*DWH;ZUQb?gl)Zt>-?@<4kNq3?o-%hl`sc2Ald&9G9G#$D zZW6GktX|g2ljlxQgie~aage;`k=998+ubD_oJ%saC#bNZoBwM-xsp!lDQ|tzK8KV% zA!lr+*k@pI+!?z-GR8R|2}+HA`zYJXws{-cKQy`8RiN|h`F2%BXkUg-#Jh}_>(&C; zm=`;?O{V!| zkiNy;p1y2WH54b@d6#C$^baXnoSKf8v(yylY(-U*gEhsqc0BL+A}jHDjl^xkPuWzS zoo7cm;H^nWqa6zx2PuzOhch9m6if+;SrE9jU|C2Aw37R?pns#onI~IB=yMQ6pWWnz zVk;`2B%xA8d0#AH)A<`X-m~C%%eqRFG5v3vR->(e5~ep&7uuPtY3(8-dS77;5o3P? zUvlhtCF4T64|3T~f^E{nOsYxh=!eLHmbFIgJ*ZUgquOu~PCEiHnle&0to{(HjX7jc zlOVJFptXw=I1uz@6WE~M!6Sh3QyI|0WXwLo;lim*UTKL=9`JF|4c!$=Y!o z2}}UPOcW{+Yd0}oUbXOSKpi9eDh~D=6yHm^U}MJYHG3K>f<_$V@&oyL*dy9ff@(~B z>1OJ)6%I1{df@EeAfGWZ_mg~PSKDQrVqxbi4<&Dy+m)p8`T*DZnai0wO=XK{RlBtR z8rEZoO&0bRAw+JR;ge9t#c*t_LB|9#VJ;+wA@-KAT++vjIPBCq{5F*GK zrZ_JEGcGWBgWBYAz$m7vMbSzTQDd3kK!`SG*ps2X<>!Lc_8iLjSPjXg@+<^tc$)I` z%v+C?NYtWm)TG!yy=NW+vx_OlmUgx9W;cG$_AMc%eDW}bM0^Hil@qs$-2T~4l%BLbMWpomb>C0Le^~?0Az*KNtDR6?7QVGL#pfV z>>CN3h$FGAlgZRElACV4kCC=a*;LZqX=}sA4C(6~jJQ9A=cKVku$pYe%!PEn`Q91* z@fe*xXdiS>jxcdlWs_;DW}ik!j1XT(@*{V)WeCqA+l(p0A(b)KLCr;Eq1i37+?uJBO|N^^e;#=6XDX1`F(lMt8&YeZDdwX-Yw zOf62mnZ9$#D${7ksB#Y4wF;hxPaL+m9Y&D*fPuTc&hW}Bi}{>sch&@T;CS1@cTh-r z9AGX+a?&Gt_XM|x%~+b=(Z>DRLz%fWBhOJ}q1lPbuZzXdNc;y4W@Nm3BBH(Y($IpL zmQ|x2QM#s=&f6F0O!eCDO`=w+_+|T`<`+ihUM#}~R0~7T7Wu2NQ(cmhjtO2Roj4Y( z5?_6yWIyD1?Crz86?cyNH`Ke=^5C@(qfP74a>KeHggm_nKu8sC005AnK6}+urf*Y& zv1Kou_hN?6TsO~TmE=rSE4X<~eH@E}?nfV^s5S9e@ak~#!T67Oi^CGfeJy$@!QZx62LZ`4@5%4@%c-mbl z@1u)Hh;j~nD86{SK5p-1xzhm^JAUrtnB?VO1-xKOqd}E8t!%Pk;GB0!nkV0OxOU8% z9`08&QJ~Nl`=!zU`ACD|ZS<`U{lhLgbMgG!uOJty%cWI{y3gVUQcGja(Z;og+#?Y) z#`ug&Tn+QQD5>KjM(F{J8lSupGT>!5rx}bO+N*kdpk$c_nt!+`VeyV=vzs=j?w6P# zat8B1b1wI_SiizKST6;%UQM5a%a8gm`7o$n zcHG_Ec4`ES%@Is2$KcgqDMa6qtK;|Px1xwKO7Kk}(1Ku&z?Z(L0U$f}#P+6wg4?-y zGgOkV>8D!1ZCI)std38rqH2`y5=^J``#hEb2lH6Z1=K+o`x2h>wk}+eiFd6siBz^j z|1Uz203oZ>z`nM_g}I$G!u}Z?cZM!F+&K`lsTu?~(2G6Y3a?=hb0;OK&;#m%uXmY) zh(c7)QrCVSe0KdRHYb7D4ENx2C6VO}qCSLzym*R{$(@0F+t51j!`uGk^t0WA+my#_ z?}jQkoS4|RN}d{kAKo2OjOb(xzu)&?(Lg{+c1cYY)p^HVG>V7fOi{Gx?5d#Tt2Mqp z6+oe@_)QJ4`lbR&#nm>hfJ3}8e2te$h0}nn2=F3I9%nmUtlq4uV-JC1LmMNcvXu7)&h0KdAd!_?UOKZY}pc)GiDp7llX;%CgY6F_qW~#XL_$vhd zo8_ZxT*T#Vx&+z2kyvwD!NT$YnM}HB9rR#yYQS42b>dP@Fl4Z;rqqDPNnc?{pq64t z>{PhxSZ0rv+NrqhMwuJTR(mM|djTQ;(<O9hb=e5kJH zlmof3uqNiZVJ_9|R%5SCle}Thw~lJI#HymK0Yj%>QZb!EW%V+b5i1+(o8J`+j=DnH z4zwxYr0^|>v@5oXve&I&!Hcmmt#gbB8k3(|@OlW{+F)NLnWDvY5CA_JeCGu6N$ub% zhw*D#{FaPQ&SleyNm|&N^ODr0?+(ncv>O zzOBzT=az54xOle7bet-6*wS%ou^RqBeL17+em+xu=G1g5MR%G1-lk(b+vM8*H|J0L zFSTK^?A}_xv1<~RXiuKuv`?2Lsy7YURXg*?M&&nPl2jq1m-9}gZ-EB%qr)jfhJh=%n;4(azDGGF0!ShTXG!L zc2~XLApMta>3rACfxTs}41{!OsQ8mUmvc%ozdPBMPKM&Ll@6|o_!A&vV!t8_NV3&8 z$#=H}qDjdz(Z%}aUpsf_zMql{F7-Xvb|CtK&?&L*JHB3M=2aI}<_ah`6>Exgnf4yk ztVVF-5@D^jiA3KiR-TL+DqCm2g~_q4c{;`GK$B0u0>C=@u(H|U={iTtCBQ1sROW&k ztE*4Zu;9^FC)#J;^^167NZHc`aQvsIK#H2&s+M@;0<8y!a?p1fP1dx)9xd^n?N}nK zUM3cFH`c6Q0xd%bkN!^7jUE>+FTUF-0_)R!;Qi$fIHrEmmakT{@N*B?zlmJncM?Ea zMhb4;U80E6z|$->pv7B6Z`=SG4s+6#QZ)Hgz;z^|Al^F=tD@k@190V|OB=8Ls0i)m zLHp#?K;-L0gP046=CgYXxOZqh<5$wMMYQh+d>~mm0$cy1VBro;;DGK0Kfa+0dNr=fjRffbdi_qZi&ce-hIC6GS|HT+LrV|LR^sNcjpR8z8-I2B1 zwt>!L5{DRdQt>}+%@TLr?aX458t3(~jJmhuZ*vJ&8%wrI_Xm+ZAVkUUFL#h zBc)0|h@6XbFu+91;vO0}fMk8uFq_y2lJ)cg@Oh6n5>j`@hyEwX@4$2kWf2z20GUL% ztZNm;9tk6-N7#Ymcnqo-6^55eq`4;I`FCjcF+d~0?;F4xbY{krGn!h)6^XVRADI>h zyqvn#*q@3U<*sd8^)sgQ!Op@j9zeKRhU7EpLD$-x!LDXO;_Q*YMH+19<@Q}2wA8XZ z9lM&cj#V!v3L;{9%b1N#DI+9n(Lxug;%`Oz)ruo^pYwZ#IVY>wznAx3r)tO^i9Nbu zlSpk-sdnmms=w}3mRNWi4^&U;^28Sr^Xi^}%!|Iqs_O(UQ<+oq zFAbK<3+3ws^=ahF@yW8)7@o!_=$CyLncIl4>G_2-9BGDV>s} zklBfUWu07)rsbv;zdeepR<^i$cYYwrNob(JSRH@|2pd(k zCvZE+rm3mR?>J*4lP|_ug8L`j&yq`CSx~ZDoG|kq2Y-GzX-t0eE~2 z(*L8IcW!7bx`jOKNU}8Trd@m1GnCX5UpC@UVgjA=oKoqpuw5}eRYmHIJ-5o`Nm#-v%sxLUA45rQ>e+t?Ge1E8b*`!S=>JEss zDj4eT0lUTjrOAprHLkYg5SfK&^hskLV=B!g_(b_!4c-6^`@1UmOFqmYE3?|tV9 zj#naf4IBC`eW+ale4hDb8&m|TP!P@+ZtNFcVYs0=%d=<+YtZox`v{B>F+k=8Pm5r{ zl>1zS<{UWyvFV2CP@U2|oo*gSsR{n5G7|$^VY{h*?PDTn*+#AQH*d2UsKi%aXW$XMZlov`3uaH5j` zb3aJ!<29kE{vIB^uZK5}n@P$-*DtN32fEU2mj-y*G8PcIS~P5320cT`5m|KVK!s+c z$TVlZzjFjzmx$Bzrwc~9^n9^FEjk}jT9lbd9rqPmj}~Q`PCe}grscdbli<-;qF+J* zA>sylAOAOy6J6lItbQ*@e{FWtuFn!3U1fNO>CNJ!ZV9{`;t9)|*|N~I#&0&m*)sk>)#Pz-MDH$M1IK3C&e2;l%GR}$f)Q=xn? zb4W3Opnhm{vV7DNci@LWTkWF=p~^uy0KLD>c`cn-63=ZB4@R+wCH=*7{8Sb##MJ(Z zNhf8%a^L79V9P#|pzVrz{yy{3z-$0s2qj= z15xqE57p|#j^2S>I7>Q=U0dv)^3wN*;APAPz9`WB1-=IKeJSJiISX!={qRf&6Gv*R zIKMo_2BJT5sJ$vBwKSh8pOE!BE__d4abcNt5SE_kf3Z=Ysjs+yV8RA4T47I{g_>%~VX!u(%xzbMG*!W$5M~>p+=(*a7G# zHuGnrfo`C(hEm*s`e7mrnT{+%zG`n_P}EPtO_N$eU!`Bkib)Qhd(mJ1>{4v%(}W0W zQ;^1}C3}vKbTQntycUF7QL<<#T~KFgS%9ndVfrXtO;<8z3cQWZkyeuKcWxsxQ*YE_ zc+3mTujdUWeghTm=_Qcz9^R>)q`3}VBTvT(^p|m$G5GpC6QYlqP?A&NU|DT4jS!&m^7r~xY4w1GIKa?xX_vY zkpIkL)x-EA_rsVu%v>^=nbSP$dSDdUevO2g(JHz5XqZa*eC8eRmk#rXoCq}3!l-a8 zO-^WsS(V$F3T?1BY%I+D+{aFA~`*{D0@ zEq?`lm)=2$WZ?ldvmBqkTx(iA2n#pi8y<*UqtpAvX5eH%l;FnLTfipvufbmLq(x(u z2fi__sdUSY8L+J5Q)$v`XzC4PR6*+RRJ{6C^6e;5Fc%>;VaT+aGk2cl6HPOF=pPo$ z6KtI)eZDtcU`Fbw-`EFE5(Y2yLgA(n_^Gq0aBosxYhbEXa&yBUg2i<9=5HcD@80?K z{4Rt!qV2%l@Fd6d#2&@{D_5~(X}Ip&@eS4@-M@Kw4UswC`1EymS$pyvL9l@c$#gzg zC$jOcht?3u-JKqa-Mp`f@h*RbnI2+9jveZ*l42&!wW$bQ;2A_m?ECr|1yL64-SC%Z zH+S%(4<=q-!x|M>wrts5U--J<<&rKu_PQ)Ce|bT`Y9g6k(gyjlCah8l*y)xK^T|R| z%!gPusI0d~gy)|Ywq0?1^Wk!P%yQ+nmvZN!e!JyXr}&BM2Xh_}-9O1a5(~Me&y?q{ z2KuM3i5U^=f$az2Wbps?tG9doMBJbArJNR|KINW?!7|Quu`>lN|k`b_7$Zw*T zVC(rhRe~w;p=TFALFKqhA!IUS@po z$`FuESutd_zITx$Vpr0mVU21lhUqQ8rHj`4;5&dv={jm`)HX5ho>*HNc~CcSrB0C@ z`m*$fXjux>;b~{yeU2F8sXowkYSpQl^$P?3GpsV9({L4ypZt)IPW^|D594@)J7|2< z^y}+a`?`7Xo^BQTi^Q2{LWy4IO9@n-41@|ABe>`bkdZebMafTij5Ij89JGAO+gP`t z6zg(8#GH2!F)jh28~amhFEFGBb3AyB1Q88IKNsQH)WuJz0DRN2ALMzU;crV=+~BCE zklg6LBX$)(LcmcX%Ya*Or9P4+CXhjfn{`C1buvJ+RmSTVqIRtnM4g|%$W!yaxiyfm znly3K2b!(lgIod|jg@({PgiaC8BiNKF^`w0?Pxyl$DeHf6t(;H{wdKy%J=mT10)wG zZnu?nZ>8kA?C}JrW*}&mdrYX(Eq%UOlt2*;cXiPJ?|-lTTv^v*v@7wr#OT`ar6H8U z(y!LXYcCA1?bBQH+nP1Ml{{XvZM%f&Q?8_?5_Z>4*}}{rI(TW*P!{R!nd5NlcNU_up+$JL~G zF?;r6R+g4oJ!lAYY0h-{IpI8&il(2BX^PMDP^~fr!M{UHm9m+fg|GK<4Cyk6EKT*v zdG2;I%~sO8&gxsD?_FkX+%FUD#;eNH^onNFGliqt{9dy-*uF`@g`4pq(w zrIhO|eafQumwa39_w3_8D&OHeXF-gq8tqN(*)`;a*k2Q>OA^4-sB>}U`}_@w`b|FB zN*X9@d>s%f@6+|9H@15Be{US5)(}r|ULzRG6NByb{Xwv9ctgAK23XJX!(Dw#jO9c9 zc+-%hfOdz~|27l2)Gx8E?cVcE!$CX9-n4y~N^j?>#chrh>!!g;N;tG@o?&xqd|0i2 zJI|Do%~%X+5M+DO`r$(%+Rw^uV)_=#qpJrPg0h~>)cyds!KP4BG*30a&;efv9SYT{ zBlt$Ke&OmZ%U^+$>y6(I!(Zn;Un9Tun?C|NkSEVfzbv4ZkA2X&`mGRGLpsAgY@Ne2 zXef7UswG;xSL~g+q%?X*_i9f0zR_n2!`YqJ}d(>v! zU+hgU$hRfJrjVsGlrO&6@gXGJ_c`4&%9~s(_~?5?@9`&sSQBHyxVy8iOP+4tV<#3| zjUFII)B7rdR;HQWqZ_v!+$M%#tgsjnJQj3WN18bt_*M=;L9WzC|3?ZWjnnF+ygB1-xZCa83>uq_ea-Vli z7|@O0PmM5n-cQ9&&f9`^V~K0X%lBTuyDk9oP~2#H$Us@6P7xQK9_8;QjA>V220Riy zWwBd`97KhlG7FxC5^{OV^@(-PCjpN3UOb5QNWHevY=d|vFIn;{Ak9A_}`7&?#ea<}JFrjmG zjns1U6>H}z?QEemFOT0Dx2~Dd| zQFus_ez+v{f>)1~(>bE|b3x3nu!VpK8zxUI!jDn0-X_t{*Mu>Cn~_V>@)PSPzuZ-e za0ds5-_%^IMxOc2PR8;pL2PK5@St%Az*D=wT2-ECr2wB&zDz0T{rvr}Miuj4q(|SZ z)}=&ENUjyr`F+6fT;SMx_}gKs;3Sm?eZn_={7Gv4*n?zeo|xeqLLTQrbqytIpYmEU zcZts~>KyOlE6}@A9#7}ZrjVBdn1$Z>_WPdIN(1eGl!s-LeGB5tL zCD7_!z6f#lkn}cVfEUwp53!#sRTMswPu{KSDg*4Nru0=CK>0npgWRk2_3Ot}b?)l_ zEKFQn?op*!C;*z*dU$riF4tE2d{Z^=T#R9lovD4hCD4?I68QPspc)P(iYt2;ag!Pg z@MV3fOwc1d@oL5RZ^XIWPwDRTu7GL)(ZUorX;=2xWe&vme6h0+edNjL(q({S*er&g zDX}~r_)LT0xfxx6qt<2C06KO4)u(g>!@Ti;t5-og#;~W`TstZbXy07|P^fh2J74dl zumA>EqqBjB?_2~G3ioMy)>M#*UUg`zu`57ewc))PW>VDvoNksx=^(hh%Rico$t5>Z zFK_W1&2mSp51qd|C7k(@M!>EACctHs=s*4x{~IZ!5*^Gjx!I7as9-C-_vnXZU!c2k|8_x`vT4{TrY2`mNkwtO=w4?x2gM)pb4pqQ6tg zc@Cz7e!k!F|FrjI0Zm?AyBNXZ3^*Yoq4H5wL>vl&2#FP;ii$XZ3=&&ZltDy95J+N5 zTc`!1Rlos=N*yXgM23J6f)xoBBq~CHK!QXFa|jRuWIF48WBYyn=f69b=ezJCdEdSE z-fMW)v)0}Qp`k1xVA~q@M8)+}be>2$BpG{DFyz|4BE2H7ICM==O2GS`(oC2?vp5ar z&&OAnNeZNf-;2h*iG>w!vtAxZ@tYSHGh{+Xw%(+Y zi&On|Pb}jQa6O!X#=(vg!;GAF_Fx&^Z5DbC%1J|y0+$xaVXNh`F1zY3yA@g0nc<<` z7q8#kTEa=N4gPC2F8|BnlCXwMDtqv8b&Nz+Ccy0mC%ChW(zklq)y-X}SMFUS?`_>* z(%e+(#WNmuwS3_qUFTydUU1@P*#l00$Ml(s)MEeGt_a;kS>*l6J>be?v#a;vB9m70 z>I#zXrdOI2(pc*04==_lg+p%oXR3ACwYPh)<>C$HzNt~DM$CCL>2e8o_356mvbv(;;dM#SNX>>0OmYQ zsj?mCGc1LzH??1J22Nn*3U#!^Vu65#6AlOLfiPZkWoY;waeV~e!c{({ux*oHWLn8| zLiJ70Isv>aAt*D^!6{3{3AFKR0$P}O<0_1H$&y-?Q%6pZjMtCNF8<)Y&h=OLsfK`D zJti8{0@A#4*9_1;CKS@34w-&*IJ*INmS+{ws#q$a}%L?zpJ@p)d z*P}d~yvLwBfkY66oP|G`k}eg&M?VWH80V1+~==j(~t%+~&(P_bDv zuEoTPUni!P`j3N`I_W%BR3@EFoEaI?9n&AuKRh|)bC9{^@DAn{l2hen+qRell~vSI z$Fg_fZ!|NUUTI`G12Zs3p%6XcF#^r=o73txX0_9r&K=|khektI+Ynyt&nJph+uD3p zrTG&ZgRzULOU2zXw%^8>otN-bOe;r}Uf^te!|B(zX{U_M+X|!0O%e>kaeQlFDpdH5 zs5)$d|4~uM{%xOaXBXr{Ho7|M7RLy&8tyxF#-tl(6bDxssy; zV|Sv8qODo1=G|ZWV6>YT8%|8~3cu{(J9(>O5{K%zO26b_A8hgP_FhCj`MpgxL0fm+ zV#AyTy1db)SPWcoYT1_VY9t6Ci zDpKcXrfMRj{1nz|p$Bd_gj~_J+weMzl%a0f%4fXgv#3!oi%-{U>#ozx;OnX|63bpo z(yt9Yd~l&B*jX*4^$D9Le3@A8y)$O_rK-0&ZA?;JWn@v9FwR*OPAw_jIvtnymi0Vx z>nnka`VV>weM}lRr8FAL+lSH4UxO|j#M-`Mh-8kw;)W$&+jH!(l5UxoAGT)Cr7C;v zzXguT-(4fFQrVxBmU+w@bHWapanc1iQO?(ZNhzjRl*DKHV47!)&<_8F;is8}X7ztH zO>dBj5=yzGo$8?VHE!Vl<~o(i+V2B@DdD-a%bSPA$C;29ek>Tv?DjL2^=W z+i%Ggr<0m3h(lHoU_afebyL;r{g>)+)YR5o^(-cVvtN*#NVY1ElxNn_S#=NRbG0V52SOd!b_KJdbJgD4191(qXqCJSwgk8O>YM{mRu?7}6e8w!+*buMF;4 zi|+4Lhgxn(85ugfVyIijYq;DD3%^};{!ngsNpeZCU;8h*N2%cq*tdl(6lB7N0FMe?L$(oQUJ=d*_>eTK^=#pBOvI?4(S;s?k= z-J{}#?%B;g!Z@bz0^5s`w}<+H7!~j@$f4~ulOLWXPmIckPC5gUXLuZ2zqUkjF~9vO zCn$t^!^EquZiZf?KT42kG4YqCl8I{Mr@uemyd6Nh=OEyt@*Nz>CA~uRLFMz zqC>3NdUjd(>TyZIMBzy=hwybt!d~PC;pO@R+ek`1s_wG-t9)nKc&iQ^^>D ztbZz2Kvl=nb^Z~H9pH}g=)GZ$EAsr1Y&|Ns%>N?bEBvvQl<QM6B=ix-ZY=^z_7wSQY*gDRYZh(u_@E7C8{}2OHK{EC+bl}r z@Ikh1*TOJ6vnRRept{{T$q1?6^KvSNjyR$v{c15g3)y+w1XA>DMU3wIJ!yr6Zub4} zzH>i9reI0^PEmnB&54s=Ju!)Z0WC^r5cd?BN=93W@aJ`yR#t*3pLU{>YL|jM zquLRsoiE{OfNdwHh{+O35$A1R_Q=S^;Z7;B69;&K8t1DYI}-xV2iP(eewdX;!2Js7QY-bTLp(Dk=Xv66 zy(4a>s}z%V$7T9c+#muI^(V$w2<#`#Ig8H0BGAiHGdoh+%9bm7d9FDo8$@ z4s&!e!k=C%A?jCScEqu8!DdcYnBdu{9n#8TprXjCB3`FDAZ8$hoe0^|g{YcwTgM8h z--S;Wr*%A^oPf{MSWIS|67)x>6`K@2KL}h zV)f*gT{5SAN?bm=#DAg;iD-RRlDX>ZH@wnu1{SrE{N_$ab9`qnSa+v0%dzBNmskr9R|_f1z5r+0%LiV$7>kgiCnD&q_T-i1lP8 zu)?g1NheX!oNeM7mrGS8C`FM^hrjy>l*0h{Ny#-H-hjmQvp;2&h{$M{&LyZ&Lb!B21e?#l z1DHkR*i-InO!?}FBTQ-7C0BZ{knGY2-$JG;u5WU?R3+6O&W>w84YpUsSO%2qi;!6B zSa%92ap7F&^R%rc`s%?2H4LPL=$6S}Urqzqx?OcBgDykj9mlJ{p5BH86ZUl0_)l7t zN}Z=HcSg0swoB%?n~8gh4s*@gLIkL^ri9_1&SN1VUwN{a&hLS_1l&Dn4p>^Na%{iV z!48zDY9m@=1*rXqXQVVOicmLh>Uy`#riR@p96#dT@D*yn)}FR#Frd3>op``&%#GC_ zH7Xmpo5oqMc`D*h!qa_VUbA>C)@@-|gPxo*ke-%rhCYw3D-eE8r1iLS%G_D9*%cZk1V7~? zac_$5>CVTHy{I>E&wFi|f#GV9$OqE#TSU_=LGG!WU{y4X$t7h@{n3b$as3&6%VuDd z=+^>4$V96U31)eQ2NTdQ5rJZdl!@+FWbI~sG?-V07aN$K-3hiFoySsMRxJrly0`+J zmvM7O9#9XRzq7B9ikt8E{7*xf{-nxYKG{td)9UEc1@7Xa-H4!F zAM$>kvs*2+kfq?3Iu0HLzpf+;L`nTNz$zBklAKuMHeG5xIn@qB>_3WnJzwOh1`kfr zBwjk2cu1&d6de*^G$R)aP*$Qot07C~POYHv-- zrGCXjO7iXWL^0#F6859A}b zN&;R)&6zG%OnX<5S@~PAs7tH#aVL(N5c%gQQ|wmjU3nLARPCqGl75rQuD8z!l z9H{C463!P87X9pfy+0`|HP;e#lxL$sz$ABLgmzdjn{4b;h2<}X1I_4?!W@^inc+Jt zF!~?Z?CHW7X$0|{{|qypFA5M$k&7Jc;|dtS%c+&Tl#kUKZq);`#0&vvkTaF-x7PGPh zF0lj-nNFASHRLqZ(Hx0|8+b)*X(N)+um=zI{|}a7O$#EC<;9B0<;>|K;tPAq36yUU zJbgmph{oG=RBpsg;7D_(c0TBt^s?PF5vh6Z{7GzSQJkxIf>KV!&ljN!iXB{$m;tY!8!(pu9FjwlP9{AS9=CSh$zB^M1*bw!&rO* zbuo8`6-|?13OP&(RMnZET)~P3TCD`AZ(F_cb5GDFd*+j*Q9kSx`g&@BS0eP=5q94^(n9!f_~<=X|Y;)c~%x@9MFU(mD~?9K&jy<8>Z zcvpmFE5$66`z**eS`?GN)ATPBk=vxPla48SX>vW34#_sg$LzX||5*(}DTTao&T)29r^KEo=}hk4Zz4#PS}lA+%zChHT3|oID~~G~K1#*wdfO zL}Mm5;*1|uSJsHN*XcVwmB*A2IYrSL7p6a*1!qANsZLFJCG)Z|i|@;_@F{(aTEXk+ zqME&zsz(1VkVma@uHsP&#y0|xftb>iNkrv7)q&8*33wD~hyx!p0Kw?G^CU`DZt~>+ zhJF7~?Bxef(9n`dWxwk_Lh3$I?Eek%{wa^Q*SEeyEn^*;=LD9qL|TRBJy6O$`^KfR z1YLVDF9(?NfbKulF(Ghg2<{yM(G1#rD@fv=2rJ8LCB`ikbGE8o4ZRSLbiIKk0s}Gr zr#c=t&bGO122>U@N%hn_3ka&kwWIRsCdH-))0qk<*N0q3I57a;{zB0QZ3v>SLJ@d; zL>SOVY+wF885;n<|EaNH@K@3_EsEJ(IQ+p?Pfj~3%&6N1(`Z0eif=Z>LeTw7Qym*Z zs&?%!uFTklI_~Dzg#}RO(oyRweMri6e6hn0QJ8XoO~;bek<;19lcMwu-$35YwfH-v z6$4WIYp-QDQpUT_tQdl>asR#=Sjrd@KDYD^5bs~cIWMcnQd7lq|b!+{bFLOU$-fxJ_X(HE$d2QywmvvyRz znNDG{QLpAlWW$kjgPGo2r4yKqv$>9KvI}iAW!W>Kda|HQ%Fowv$HwSAb>i4tjr{3b z5Ddhyh(F-a)7Yz%N4@m{`W+6gfnslDSRgG{Xof%LK$(=CeJCVOnUIt%`K~_CZfTs| zcP{jkt75?NP0>y&A5xhY!o#I8cY1Q>#;G&NiczkN)9p1?`s|tnIr>~esTG@1sR4g% zZXn83OTH6Vns3N06iuYT*9v(8KW^`Lzwvvp%>}Hr5ERC=|%6=5O>yB z1EHYud6+5xf!K%fzZKf(%4IL0Y}@A`vpqvu-4cWZ-> ziNoPL&ZP;UV?W?4xv#{KHeC&~ZK8kle)9z=eEk)1F*HLtN{^br`6eg68jpuGGZ&Ru zKSuh!z&qac)_h=Gow=}dOBQY*0~_ks-1+vTGZ{cA8x_g16Sx{*vx%7 zp!--$1OWsFx(h(yPL06&@5IWYS+TV3N(=m*FEj!-kOO-`k3V~VJqw~)qsMGchxc^g z{HzmSC4(N#GL?W%$U{n{tDZN5DMiu?_E1>lDMIDz^ zcd_)GZ*ymAprB>8UdwJ&k-o2=H}MK)(JL`Y0N7TVS$<;KI>kMim4`tv%^ICVDlOix zox6PixiB(-YLP@FS}mRt{AMe{@21fW69|O4JFAR}7CEbkoXA)l}G+23dH2T$H9M=LQUk~3FneR28%^n$9l#7hc3`JdVi`!Arw8`mgfZe zR~coY*!V7!V|s2_Ow zG3BL~Y$i)nkqct-K`uk(KV3&^~QE_Cx|S^APEv(lx9 zR)EL{=sI!T-TYBZbLZ%TAmmnC9{OTfo*&)p*!+CqV^5f-2=(r;%nZ5(d>5E=62AKp z-b)#iSF}HMzeh;n>eqU`iJtH8TKz51DCh^E56jNEIr)-)4BGars(t#jnd&Y3E*TbR z_Y@wNIE4BK^;x)kr{I8=v$jovbz)sIwdG&$d2)< z&Px6}VV5HrH2*_Q@CZ{HONFP%kqT^@DJ@8bi%Ms2^H2Q*--;I3%G$!uq^A2${AHh- z9JJ4ruw7_l=amo$t1#W5iR_E^?&${6=jX3)%8G$+p_3LzUn%muSayQu7rr3hsV7b+ zncLZv3HX4}N)+vuc!{0XkMtVFRk)bLe({~2ux57IVgEC&77S$skwifUO_?WMfkDuM z0Ei?xM%pki)cofNgMo=gGJv1Avf*-x+K&_}m-vZOogmfx37eW1V1rn9(0oK1ppx(e zP~sDONrT;YI+WTy&0giRkj^U1`-X*A6~C9r_KlsZbLu0!*M$xxVg@H)`Y5_XWVK?! z!rcwci(!ZPtzSeU)L{_J>Clij3WMy+8Iq2wIhTZ~g)9DQsVBEt*X!)~*TO zKzNCC*e+H1Vj>)*(Tq&XzU7oi?KYdqW}gX!wQHZF#HF8!YOAJ&kJqE4S89n-}vGTBn6C5^$=iA+cVASAhj;m^A$0 z{e!OhWccF%GSy_Dyg)t5+>BXyJBj>$#ytLxTPsk!aBke{y%eLKRmS>I|la zt2>NXXNBX+A|@4IqIyM~QaVN4I}GGy%?74mSbs>lr`g`CMe*nXmr!QOqNR@^@Wp|@ zyE0^=uP)27B+jCQC{yLYVC$c31UFtx=~G^yB1ZzRZnZqcHV)9+Q{ljVA#z}^z_gOe zU8`}d5`F%hwuoI4kRCV?YgA4nNWtbxO0&f zx8s~WV%RfqX6k^b$;qA0I_E`FKhBdOo;?TM7;7kfELc~wLPEfNLv!Sy_0uS&?PgN0 zr$!yP<~@D$p=ml-Gb+kWN%q&QP<7Eg46*v68+=#>5d4sohB$JJGPN8u#VId<)&LV< z0t%Keu*{{hrJ5BAVlNcIS>jFYzqPSvp#N>b9?c3L-8~0x678(n7pf%EmAT z@|kD2o!Qbgu86xgVun;(GZ+p-XQPG+`%Iq2o}|R>1r)kDKPed=`|83zqZzMvTg8%p zl>`ZoU?MCZ9gS!A7xQ7ScW_{il8)04-EzYjI7dg)VN-&u&}K5ofsY)aG$CfJ;GMjm z#w1J2O1maSp8LyZ(N6`ywH)Xx9*bdxMz!@B1h*eO=hxrA10CA}$FRS_#Ox)t6FkY8 z+o?Vis_@kD5GzXAlK1(~i`%^5W~+AoDsa^jhoSSo*bMu>Y_|hix)K&W@-xzK*Ndj& zCm6StXc@yz!;1S@QPWFr_!5SU24kR6t_FkN?cvxi=^Q0JGd8;P) z>;UOB0`hQRS()Wid25=DYi(qR)e_DaHn7kpi=orw`B%b1vf>~qmC6V{@B_T7-J|`$ zEK14mOIX+~E~2w`mz`7fvfG`q9B&Ui41~nc{7v$>{?JQ#L_?(qIKh4VQWj64x@m`% zcFUtx$Lqp_2MjS&L58l1fN@W2!0R^*{4Z}e{$NB8peHLTx52-(3UXj6A?x*!u(i-9 zp5tWzLUXI4N#=_J%t6sc7@IS$>!_0|IsK|&VK^x|jd^gG?K;@VG3FZ5woFpw)z*P_pHuE(Yn zaBE~zx4A869$_N4ghjOtO+;Dg8$z}jdBh?>r3bJur<$~) zJWn`6Jib(Zv&i$3^c-f-Mg z+?*KNy>>zny=m~zAqQ!DAjWOZdmGVaBr~lu*OM@ZoAiZs1##8V_KQ}1o8cB&nvVeK zoFldO%0}$3GLN9Yi2g^lFJBVSkeu}2|2p(vB_Pi8Ur+e25)gv$|BEM3LUmNQTAL+t zINj42Ev>#87hkw8jMrbbR%^!gp3nYo_uPydo3bgVy4{Qyv#lN(%+1o;lzkU(e}KL7 z(z!N@DbrBvRmx9V-7YJa&Zs-D{ex6%=Gv``XP($`ugW$AKHmB4;{^WmkDW8u+Ag*~ zQ1dbY5uMqxZKj9o?n^;O`ku@%E$f_F1(NRLx2~J{pi29P@nbVzA)i+wpM}Uw+Uq}? z>9da$c=Y2>zxO^_u>9<|)@QV~&7>Ii?O!lA8xbbDuvqK8$Gba5XS% z^zNUZy5Lu>)+YvY-)nvLvHA0-t)D;TU0SWx>9Y0E%pZCY)mKO{Zx;M`tRwpT(OHA| zZ>?RlO5*S0Z4ZIwPgZ?vz5nx%KA(R){`to literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion20.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion20.swf new file mode 100755 index 0000000000000000000000000000000000000000..66261c06674ad64709d6653e747f98d5eda3bd2a GIT binary patch literal 64321 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

HCefRJZ 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion21.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion21.swf new file mode 100755 index 0000000000000000000000000000000000000000..06ca291e34a867e55d25aac1fcf2d0b37a119407 GIT binary patch literal 209248 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

Pz^CZ`o`IjQm%ezd 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ชvYb$-+0E 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 literal 0 HcmV?d00001 diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion23.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/MethodExecutionCondition_demo/MethodExecutionCondition_demo_Fullmotion23.swf new file mode 100755 index 0000000000000000000000000000000000000000..49094cdb0a325987f11199e2e104de6d1e6843da GIT binary patch literal 79353 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ⅈ-3(Y=U0Eb1$~`*H`F&EmV~#*#Skq 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 + + + + +StateDeterminationStrategy_demo + + + + + + + + +
+ +Assign and configure a condition execution strategy +
+
+
+
+

+ + + +
+ + diff --git a/org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo.swf b/org.isistan.flabot.executionstatemapping/resource/help/html/demos/StateDeterminationStrategy_demo/StateDeterminationStrategy_demo.swf new file mode 100755 index 0000000000000000000000000000000000000000..47d3d858a393d34d81ad061b39ae42997f8f9d0d GIT binary patch literal 752869 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 z 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 +1b#x0tsKN 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

Y5Hlv}gKyig7Rv1Xu+5 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%0Dq|-4%9YWc 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

9;{}fO?2t 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�_!JJaPS zTWIFOglBkRHC|5IV2zP3MOL!$5q1<=$$*|Mo9b0HN%je%^*?HIf8&X-j)zvH0^fT1 zr$V!N_)ng(`Qo}Rp!)`&Ae(Ku%lYuFRiG=3dVi=ivCO4;6dX%`J0r>^J=x|!NP*d1 zPAr65t9IHjquFXjIfZ8YuwGof5@mu{PgsLGqBx@^;ftWy-eUqn?j8Lea*S__JfJX_ zzl~u{%En#G-?v>u#L2GtQYL4v`4GY0ogd^_tJNQ3tL1=j=KNOClV92VFR9faL@zT$ zy>bNi(Ah-f?9X}^r55uQF3(5}KT%4W-d;5By_lFgXRmXk$fpfG_*)>7<|_0i@J`9| zRa&oavtpsUn<%!;#$u3Ze?-(}tW~x`V-kd%s_b48!bTVjx|=%|zL3OF5wkTsKBb={ zS>--ryI%s)dN*dGPWQun^zJvRnD=xu$UBwW#+eqxYJWQLGsRTxUlgLXcE+qH*5YK7 zWAFVEyVoeB3y+-)mv^z)r^IeQAi2;s6PCW)m8@IzoN8PQWqM9c)uRk$$fAs)#hSB% zgN$eBqhctvAaaky zdU(r&1u}4A1dSBOvv@-9sI_n3#%j+4Wh6>j@2c_SWMOrPVcjldHHRnOLh4-B=&i?7Z9R$3)qRdV~Ywq^gw{;Jm zYK9!^vj#xt=>XmnwID5v&wauz6lI!o>%9SmJ(N!R3#%|QYd&egojx9^H*eL;@yLil z+D?dX6yAte4+@Yg=ZjvMbj`R+lK%>jD$!e-LWECu&Gv@Lit|4WYZjskJ2sGeDcr~z z7Vfi0IHN?YQt2IXataH=t=xJ66iwD0$kbb-O=`g4|=$eS69$ER`$HsJ0Yrs{{w#|U&Ts9|w

Je~*ZK-N5m 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≠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 HNX8ciJ>&wh%#U#BMuGksJjPmW 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