Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA/Query/DeveloperDocumentation/FeatureSetAndTesting"

< VIATRA‎ | Query
(Features)
(Query Explorer)
Line 5: Line 5:
  
 
==== Query Editor ====
 
==== Query Editor ====
==== [[Query Explorer]] ====
+
==== Query Explorer ====
 +
 
 +
* Context menu items for resources
 +
 
 +
 
 +
 
 +
Here, you can add your .eiq file to the pattern registry.
 +
 
 +
* Magic Green Button (depends on context)
 +
** Load ResourceSet
 +
 
 +
You can load the whole ResourceSet which is being edited by the editor (this is the default when pressing the green button)
 +
* Load Resource
 +
You can load the Resource of the selected element within the editor which can be done with the appropriate element from the view menu of the green button.
 +
 +
After you opened your instance model with „Sample Reflective Ecore Model Editor”, you can load it with the „Magic Green Button”
 +
* Load pattern(s)
 +
 +
Opening a .eiq file, the magic green button functionality changes. Here we can register our .eiq file.
 +
* Load as model
 +
Or we can load our .eiq file as a model.
 +
 +
* Pattern registry
 +
 +
** Showing plugin and runtime patterndefinitions
 +
** Unregister pattern
 +
*** has effect on viewer
 +
*** plugins can not unloaded
 +
** Show location
 +
*** jump to pattern
 +
** Checkbox filtering
 +
*** has effect on viewer (checked patterns are in the viewer)
 +
 
 +
* Result viewer
 +
** behaviour depends on state of the:
 +
*** patternregistry
 +
*** instance model
 +
*** details/filters
 +
 
 +
** Data binding: EMF-IncQuery provides a simple data binding facility that can be used to bind pattern matches to UI elements.
 +
*** @QueryExplorer: the message parameter of the Query explorer annotation defines the label feature of the selected match.
 +
*** @ObservableValue: allows the developer to customize the appearance of a match inside the Details panel.
 +
 
 +
 
 +
 
 +
** Use-cases:
 +
*** default appearance
 +
*** following changes (modifying the contents of a .eiq file - that was loaded earlier to the Query Explorer - automatically triggers re-loading of the patterns)
 +
*** navigate to source (Show location)
 +
**** to instance model
 +
**** to pattern definition
 +
 
 +
*Details/Filters
 +
 
 +
 
 +
 
 +
The view of this content is based on the selection inside the tree viewer. If you select a pattern then you can specify filters on the pattern parameters. However, if you select a single match, you can observe the values of the pattern parameters which are data bound to the appropriate model elements thus automatically refreshed upon match changing.
 +
** choosing a concrete match or matcher
 +
 +
 
 +
 
 +
** input parameter binding (matcher filter) – popup window depends on the type of the parameter (object or not)
 +
 
 +
*** has effect on viewer
 +
 
 +
* View menu
 +
 
 +
 
 +
 +
** You can change the way of the pattern registry’s package presentation (flat or hierarchical) in the view menu of the Query Explorer.
 +
** You can reset the UI
 +
 
 
==== [[Preferences]] ====
 
==== [[Preferences]] ====
 
==== [[Validation framework]] ====
 
==== [[Validation framework]] ====

Revision as of 18:13, 25 March 2015

Features

EMF-IncQuery UI components (use-cases)

Query Editor

Query Explorer

  • Context menu items for resources


Here, you can add your .eiq file to the pattern registry.

  • Magic Green Button (depends on context)
    • Load ResourceSet

You can load the whole ResourceSet which is being edited by the editor (this is the default when pressing the green button)

  • Load Resource

You can load the Resource of the selected element within the editor which can be done with the appropriate element from the view menu of the green button.

After you opened your instance model with „Sample Reflective Ecore Model Editor”, you can load it with the „Magic Green Button”

  • Load pattern(s)

Opening a .eiq file, the magic green button functionality changes. Here we can register our .eiq file.

  • Load as model

Or we can load our .eiq file as a model.

  • Pattern registry
    • Showing plugin and runtime patterndefinitions
    • Unregister pattern
      • has effect on viewer
      • plugins can not unloaded
    • Show location
      • jump to pattern
    • Checkbox filtering
      • has effect on viewer (checked patterns are in the viewer)
  • Result viewer
    • behaviour depends on state of the:
      • patternregistry
      • instance model
      • details/filters
    • Data binding: EMF-IncQuery provides a simple data binding facility that can be used to bind pattern matches to UI elements.
      • @QueryExplorer: the message parameter of the Query explorer annotation defines the label feature of the selected match.
      • @ObservableValue: allows the developer to customize the appearance of a match inside the Details panel.


    • Use-cases:
      • default appearance
      • following changes (modifying the contents of a .eiq file - that was loaded earlier to the Query Explorer - automatically triggers re-loading of the patterns)
      • navigate to source (Show location)
        • to instance model
        • to pattern definition
  • Details/Filters


The view of this content is based on the selection inside the tree viewer. If you select a pattern then you can specify filters on the pattern parameters. However, if you select a single match, you can observe the values of the pattern parameters which are data bound to the appropriate model elements thus automatically refreshed upon match changing.

    • choosing a concrete match or matcher


    • input parameter binding (matcher filter) – popup window depends on the type of the parameter (object or not)
      • has effect on viewer
  • View menu


    • You can change the way of the pattern registry’s package presentation (flat or hierarchical) in the view menu of the Query Explorer.
    • You can reset the UI

Preferences

Validation framework

Viewers

Rete Visualizer

Testing framework

IncQuery Debugger View

Test suites

EMF-IncQuery Test Suites
Test project name Metamodel Test type Tested feature Coverage (the most covered components) Repository CI Site
patternlanguage.emf.tests no metamodel unit test Testing elements of the patternlanguage and parsing patternlanguage (50%), patternlanguage.emf (50%) incquery-core-repo Hudson
runtime.base.itc.test no metamodel unit test Testing graph implementation and graph traversal algorithms runtime.base.itc (67%) incquery-core-repo Hudson
runtime.tests dynamically created component integration test Testing matcher and functional dependency (minimal cover) runtime (30%), patternlanguage (30%), snapshot (30%) incquery-core-repo Hudson
network.tests network.ecore component test (performance) Testing different size of models and investigating performance runtime (30%) eiq-examples-repo -
school.tests school.ecore component integration test Executing different queries on school model and framework testing runtime (50%), patternlanguage (50%), snapshot(50%) eiq-examples-repo Jenkins
ecorequery.tests ecore.ecore component integration test Executing different queries on Ecore.ecore model runtime (40%), patternlanguage (40%) eiq-examples-repo Jenkins
bpmn.tests only instance model out of date out of date out of date eiq-examples-repo -
derivedTest derivedModel.ecore out of date out of date out of date eiq-examples-repo -
runtime.base.test school.ecore (school1.school and school2.school) unit test Testing getters for different EMF types (also dynamic EMF models) runtime.base (70%), runtime.base.itc (50%) eiq-examples-repo -
runtime.runonce.tests eiqlibrary.ecore component integration test Test cases that run different kind of derived features in run-once engine runtime.matchers (50%), runtime.base (45%), runtime.rete (45%) examples-repo -
bpm.tests derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore component integration test Executing queries on BPMN model and testing IncQueryEngine features runtime.matchers (50%), runtime.rete(45%) examples-repo Jenkins

Back to the top