Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/headless/org.eclipse.viatra.query.application')
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/.classpath7
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/.project28
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/META-INF/MANIFEST.MF16
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/build.properties5
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/incquery-generic.product204
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/incquery-specific.product206
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/plugin.xml53
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/DefaultRealm.java45
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadless.java259
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessAdvanced.java179
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessBenchmark.java158
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericEclipseViatraQueryApplication.java86
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericViatraQueryApplication.java89
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificEclipseViatraQueryApplication.java76
-rw-r--r--examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificViatraQueryApplication.java68
16 files changed, 0 insertions, 1486 deletions
diff --git a/examples/headless/org.eclipse.viatra.query.application/.classpath b/examples/headless/org.eclipse.viatra.query.application/.classpath
deleted file mode 100644
index ad32c83a7..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/headless/org.eclipse.viatra.query.application/.project b/examples/headless/org.eclipse.viatra.query.application/.project
deleted file mode 100644
index 97ccc2209..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.viatra.query.application</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.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/examples/headless/org.eclipse.viatra.query.application/.settings/org.eclipse.jdt.core.prefs b/examples/headless/org.eclipse.viatra.query.application/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c537b6306..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/examples/headless/org.eclipse.viatra.query.application/META-INF/MANIFEST.MF b/examples/headless/org.eclipse.viatra.query.application/META-INF/MANIFEST.MF
deleted file mode 100644
index 2c1df8291..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: VIATRA Headless Application
-Bundle-SymbolicName: org.eclipse.viatra.query.application;singleton:=true
-Bundle-Version: 1.2.0.qualifier
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
- org.eclipse.viatra.query.application.queries;bundle-version="0.0.2",
- org.eclipse.viatra.addon.databinding.runtime;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.core.databinding;bundle-version="1.4.0",
- org.eclipse.viatra.query.tooling.core;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.viatra.query.patternlanguage.emf;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.viatra.query.runtime;bundle-version="[1.2.0,1.3.0)",
- com.google.inject,
- org.eclipse.emf.ecore.xmi;bundle-version="2.11.1"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/examples/headless/org.eclipse.viatra.query.application/build.properties b/examples/headless/org.eclipse.viatra.query.application/build.properties
deleted file mode 100644
index ce082b113..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-1source.. = src/
-bin.includes = META-INF/,\
- .,\
- plugin.xml
-source.. = src/
diff --git a/examples/headless/org.eclipse.viatra.query.application/incquery-generic.product b/examples/headless/org.eclipse.viatra.query.application/incquery-generic.product
deleted file mode 100644
index 2eabd86e4..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/incquery-generic.product
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Example Headless VIATRA Query Application (Using Generic API)" uid="org.eclipse.viatra.query.application.generic" id="viatra.query.generic" application="org.eclipse.viatra.query.application.app.generic" version="1.2.0.qualifier" useFeatures="false" includeLaunchers="true">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>--launcher.XX:MaxPermSize=768m
---launcher.XX:+UseParallelGC
---launcher.XX:PermSize=256m
--consolelog
- </programArgs>
- <vmArgs>-Xms200m
--Xmx1584m
--Declipse.log.backup.max=100
--Declipse.log.size.max=0
- </vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
- </vmArgsMac>
- </launcherArgs>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="com.google.guava"/>
- <plugin id="com.google.inject"/>
- <plugin id="com.google.inject.multibindings" fragment="true"/>
- <plugin id="com.ibm.icu"/>
- <plugin id="javax.annotation"/>
- <plugin id="javax.inject"/>
- <plugin id="javax.xml"/>
- <plugin id="org.antlr.runtime"/>
- <plugin id="org.apache.batik.css"/>
- <plugin id="org.apache.batik.util"/>
- <plugin id="org.apache.batik.util.gui"/>
- <plugin id="org.apache.commons.jxpath"/>
- <plugin id="org.apache.commons.lang"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.ant.core"/>
- <plugin id="org.eclipse.compare"/>
- <plugin id="org.eclipse.compare.core"/>
- <plugin id="org.eclipse.core.commands"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.databinding"/>
- <plugin id="org.eclipse.core.databinding.observable"/>
- <plugin id="org.eclipse.core.databinding.property"/>
- <plugin id="org.eclipse.core.expressions"/>
- <plugin id="org.eclipse.core.filebuffers"/>
- <plugin id="org.eclipse.core.filesystem"/>
- <plugin id="org.eclipse.core.filesystem.java7" fragment="true"/>
- <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.resources"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
- <plugin id="org.eclipse.core.variables"/>
- <plugin id="org.eclipse.debug.core"/>
- <plugin id="org.eclipse.debug.ui"/>
- <plugin id="org.eclipse.e4.core.commands"/>
- <plugin id="org.eclipse.e4.core.contexts"/>
- <plugin id="org.eclipse.e4.core.di"/>
- <plugin id="org.eclipse.e4.core.di.annotations"/>
- <plugin id="org.eclipse.e4.core.di.extensions"/>
- <plugin id="org.eclipse.e4.core.services"/>
- <plugin id="org.eclipse.e4.emf.xpath"/>
- <plugin id="org.eclipse.e4.ui.bindings"/>
- <plugin id="org.eclipse.e4.ui.css.core"/>
- <plugin id="org.eclipse.e4.ui.css.swt"/>
- <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
- <plugin id="org.eclipse.e4.ui.di"/>
- <plugin id="org.eclipse.e4.ui.model.workbench"/>
- <plugin id="org.eclipse.e4.ui.services"/>
- <plugin id="org.eclipse.e4.ui.widgets"/>
- <plugin id="org.eclipse.e4.ui.workbench"/>
- <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
- <plugin id="org.eclipse.e4.ui.workbench.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench3"/>
- <plugin id="org.eclipse.emf.codegen"/>
- <plugin id="org.eclipse.emf.codegen.ecore"/>
- <plugin id="org.eclipse.emf.common"/>
- <plugin id="org.eclipse.emf.common.ui"/>
- <plugin id="org.eclipse.emf.databinding"/>
- <plugin id="org.eclipse.emf.ecore"/>
- <plugin id="org.eclipse.emf.ecore.change"/>
- <plugin id="org.eclipse.emf.ecore.xmi"/>
- <plugin id="org.eclipse.emf.edit"/>
- <plugin id="org.eclipse.emf.edit.ui"/>
- <plugin id="org.eclipse.emf.transaction"/>
- <plugin id="org.eclipse.emf.validation"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.bidi"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.ds"/>
- <plugin id="org.eclipse.equinox.frameworkadmin"/>
- <plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
- <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
- <plugin id="org.eclipse.equinox.p2.core"/>
- <plugin id="org.eclipse.equinox.p2.director"/>
- <plugin id="org.eclipse.equinox.p2.director.app"/>
- <plugin id="org.eclipse.equinox.p2.engine"/>
- <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
- <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
- <plugin id="org.eclipse.equinox.p2.metadata"/>
- <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
- <plugin id="org.eclipse.equinox.p2.publisher"/>
- <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
- <plugin id="org.eclipse.equinox.p2.repository"/>
- <plugin id="org.eclipse.equinox.p2.repository.tools"/>
- <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.equinox.security"/>
- <plugin id="org.eclipse.equinox.security.macosx" fragment="true"/>
- <plugin id="org.eclipse.equinox.simpleconfigurator"/>
- <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
- <plugin id="org.eclipse.equinox.util"/>
- <plugin id="org.eclipse.help"/>
- <plugin id="org.eclipse.jdt.compiler.apt" fragment="true"/>
- <plugin id="org.eclipse.jdt.compiler.tool" fragment="true"/>
- <plugin id="org.eclipse.jdt.core"/>
- <plugin id="org.eclipse.jdt.core.manipulation"/>
- <plugin id="org.eclipse.jdt.debug"/>
- <plugin id="org.eclipse.jdt.launching"/>
- <plugin id="org.eclipse.jdt.ui"/>
- <plugin id="org.eclipse.jface"/>
- <plugin id="org.eclipse.jface.databinding"/>
- <plugin id="org.eclipse.jface.text"/>
- <plugin id="org.eclipse.ltk.core.refactoring"/>
- <plugin id="org.eclipse.ltk.ui.refactoring"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.pde.build"/>
- <plugin id="org.eclipse.pde.core"/>
- <plugin id="org.eclipse.search"/>
- <plugin id="org.eclipse.swt"/>
- <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
- <plugin id="org.eclipse.team.core"/>
- <plugin id="org.eclipse.team.ui"/>
- <plugin id="org.eclipse.text"/>
- <plugin id="org.eclipse.ui"/>
- <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
- <plugin id="org.eclipse.ui.console"/>
- <plugin id="org.eclipse.ui.editors"/>
- <plugin id="org.eclipse.ui.forms"/>
- <plugin id="org.eclipse.ui.ide"/>
- <plugin id="org.eclipse.ui.navigator"/>
- <plugin id="org.eclipse.ui.navigator.resources"/>
- <plugin id="org.eclipse.ui.views"/>
- <plugin id="org.eclipse.ui.views.properties.tabbed"/>
- <plugin id="org.eclipse.ui.workbench"/>
- <plugin id="org.eclipse.ui.workbench.texteditor"/>
- <plugin id="org.eclipse.update.configurator"/>
- <plugin id="org.eclipse.viatra.addon.databinding.runtime"/>
- <plugin id="org.eclipse.viatra.query.application"/>
- <plugin id="org.eclipse.viatra.query.application.queries"/>
- <plugin id="org.eclipse.viatra.query.patternlanguage"/>
- <plugin id="org.eclipse.viatra.query.patternlanguage.emf"/>
- <plugin id="org.eclipse.viatra.query.runtime"/>
- <plugin id="org.eclipse.viatra.query.runtime.base"/>
- <plugin id="org.eclipse.viatra.query.runtime.base.itc"/>
- <plugin id="org.eclipse.viatra.query.runtime.matchers"/>
- <plugin id="org.eclipse.viatra.query.runtime.rete"/>
- <plugin id="org.eclipse.viatra.query.runtime.rete.recipes"/>
- <plugin id="org.eclipse.viatra.query.tooling.core"/>
- <plugin id="org.eclipse.viatra.query.tooling.generator.model"/>
- <plugin id="org.eclipse.viatra.transformation.evm"/>
- <plugin id="org.eclipse.xtend.lib"/>
- <plugin id="org.eclipse.xtend.lib.macro"/>
- <plugin id="org.eclipse.xtext"/>
- <plugin id="org.eclipse.xtext.builder"/>
- <plugin id="org.eclipse.xtext.common.types"/>
- <plugin id="org.eclipse.xtext.common.types.ui"/>
- <plugin id="org.eclipse.xtext.ide"/>
- <plugin id="org.eclipse.xtext.logging" fragment="true"/>
- <plugin id="org.eclipse.xtext.smap"/>
- <plugin id="org.eclipse.xtext.ui"/>
- <plugin id="org.eclipse.xtext.util"/>
- <plugin id="org.eclipse.xtext.xbase"/>
- <plugin id="org.eclipse.xtext.xbase.lib"/>
- <plugin id="org.objectweb.asm"/>
- <plugin id="org.sat4j.core"/>
- <plugin id="org.sat4j.pb"/>
- <plugin id="org.tukaani.xz"/>
- <plugin id="org.w3c.css.sac"/>
- <plugin id="org.w3c.dom.events"/>
- <plugin id="org.w3c.dom.smil"/>
- <plugin id="org.w3c.dom.svg"/>
- </plugins>
-
-
-</product>
diff --git a/examples/headless/org.eclipse.viatra.query.application/incquery-specific.product b/examples/headless/org.eclipse.viatra.query.application/incquery-specific.product
deleted file mode 100644
index 6bd024932..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/incquery-specific.product
+++ /dev/null
@@ -1,206 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?>
-
-<product name="Example Headless VIATRA Query Application (Using Specific Generated API)" uid="org.eclipse.viatra.query.application.specific" id="viatra.query.specific" application="org.eclipse.viatra.query.application.app.patternspecific" version="1.2.0.qualifier" useFeatures="false" includeLaunchers="true">
-
- <configIni use="default">
- </configIni>
-
- <launcherArgs>
- <programArgs>--launcher.XX:MaxPermSize=768m
---launcher.XX:+UseParallelGC
---launcher.XX:PermSize=256m
--consolelog
- </programArgs>
- <vmArgs>-Xms200m
--Xmx1584m
--Declipse.log.backup.max=100
--Declipse.log.size.max=0
- </vmArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
- </vmArgsMac>
- </launcherArgs>
-
- <windowImages/>
-
- <launcher>
- <solaris/>
- <win useIco="false">
- <bmp/>
- </win>
- </launcher>
-
- <vm>
- </vm>
-
- <plugins>
- <plugin id="com.google.guava"/>
- <plugin id="com.google.inject"/>
- <plugin id="com.google.inject.multibindings" fragment="true"/>
- <plugin id="com.ibm.icu"/>
- <plugin id="javax.annotation"/>
- <plugin id="javax.inject"/>
- <plugin id="javax.xml"/>
- <plugin id="org.antlr.runtime"/>
- <plugin id="org.apache.batik.css"/>
- <plugin id="org.apache.batik.util"/>
- <plugin id="org.apache.batik.util.gui"/>
- <plugin id="org.apache.commons.jxpath"/>
- <plugin id="org.apache.commons.lang"/>
- <plugin id="org.apache.log4j"/>
- <plugin id="org.eclipse.ant.core"/>
- <plugin id="org.eclipse.compare"/>
- <plugin id="org.eclipse.compare.core"/>
- <plugin id="org.eclipse.core.commands"/>
- <plugin id="org.eclipse.core.contenttype"/>
- <plugin id="org.eclipse.core.databinding"/>
- <plugin id="org.eclipse.core.databinding.observable"/>
- <plugin id="org.eclipse.core.databinding.property"/>
- <plugin id="org.eclipse.core.expressions"/>
- <plugin id="org.eclipse.core.filebuffers"/>
- <plugin id="org.eclipse.core.filesystem"/>
- <plugin id="org.eclipse.core.filesystem.java7" fragment="true"/>
- <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
- <plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.resources"/>
- <plugin id="org.eclipse.core.runtime"/>
- <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
- <plugin id="org.eclipse.core.variables"/>
- <plugin id="org.eclipse.debug.core"/>
- <plugin id="org.eclipse.debug.ui"/>
- <plugin id="org.eclipse.e4.core.commands"/>
- <plugin id="org.eclipse.e4.core.contexts"/>
- <plugin id="org.eclipse.e4.core.di"/>
- <plugin id="org.eclipse.e4.core.di.annotations"/>
- <plugin id="org.eclipse.e4.core.di.extensions"/>
- <plugin id="org.eclipse.e4.core.services"/>
- <plugin id="org.eclipse.e4.emf.xpath"/>
- <plugin id="org.eclipse.e4.ui.bindings"/>
- <plugin id="org.eclipse.e4.ui.css.core"/>
- <plugin id="org.eclipse.e4.ui.css.swt"/>
- <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
- <plugin id="org.eclipse.e4.ui.di"/>
- <plugin id="org.eclipse.e4.ui.model.workbench"/>
- <plugin id="org.eclipse.e4.ui.services"/>
- <plugin id="org.eclipse.e4.ui.widgets"/>
- <plugin id="org.eclipse.e4.ui.workbench"/>
- <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
- <plugin id="org.eclipse.e4.ui.workbench.swt"/>
- <plugin id="org.eclipse.e4.ui.workbench3"/>
- <plugin id="org.eclipse.emf.codegen"/>
- <plugin id="org.eclipse.emf.codegen.ecore"/>
- <plugin id="org.eclipse.emf.common"/>
- <plugin id="org.eclipse.emf.common.ui"/>
- <plugin id="org.eclipse.emf.databinding"/>
- <plugin id="org.eclipse.emf.ecore"/>
- <plugin id="org.eclipse.emf.ecore.change"/>
- <plugin id="org.eclipse.emf.ecore.xmi"/>
- <plugin id="org.eclipse.emf.edit"/>
- <plugin id="org.eclipse.emf.edit.ui"/>
- <plugin id="org.eclipse.emf.transaction"/>
- <plugin id="org.eclipse.emf.validation"/>
- <plugin id="org.eclipse.equinox.app"/>
- <plugin id="org.eclipse.equinox.bidi"/>
- <plugin id="org.eclipse.equinox.common"/>
- <plugin id="org.eclipse.equinox.ds"/>
- <plugin id="org.eclipse.equinox.frameworkadmin"/>
- <plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
- <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
- <plugin id="org.eclipse.equinox.p2.core"/>
- <plugin id="org.eclipse.equinox.p2.director"/>
- <plugin id="org.eclipse.equinox.p2.director.app"/>
- <plugin id="org.eclipse.equinox.p2.engine"/>
- <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
- <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
- <plugin id="org.eclipse.equinox.p2.metadata"/>
- <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
- <plugin id="org.eclipse.equinox.p2.publisher"/>
- <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
- <plugin id="org.eclipse.equinox.p2.repository"/>
- <plugin id="org.eclipse.equinox.p2.repository.tools"/>
- <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
- <plugin id="org.eclipse.equinox.preferences"/>
- <plugin id="org.eclipse.equinox.registry"/>
- <plugin id="org.eclipse.equinox.security"/>
- <plugin id="org.eclipse.equinox.security.macosx" fragment="true"/>
- <plugin id="org.eclipse.equinox.simpleconfigurator"/>
- <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
- <plugin id="org.eclipse.equinox.util"/>
- <plugin id="org.eclipse.help"/>
- <plugin id="org.eclipse.jdt.compiler.apt" fragment="true"/>
- <plugin id="org.eclipse.jdt.compiler.tool" fragment="true"/>
- <plugin id="org.eclipse.jdt.core"/>
- <plugin id="org.eclipse.jdt.core.manipulation"/>
- <plugin id="org.eclipse.jdt.debug"/>
- <plugin id="org.eclipse.jdt.launching"/>
- <plugin id="org.eclipse.jdt.ui"/>
- <plugin id="org.eclipse.jface"/>
- <plugin id="org.eclipse.jface.databinding"/>
- <plugin id="org.eclipse.jface.text"/>
- <plugin id="org.eclipse.ltk.core.refactoring"/>
- <plugin id="org.eclipse.ltk.ui.refactoring"/>
- <plugin id="org.eclipse.osgi"/>
- <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
- <plugin id="org.eclipse.osgi.services"/>
- <plugin id="org.eclipse.pde.build"/>
- <plugin id="org.eclipse.pde.core"/>
- <plugin id="org.eclipse.search"/>
- <plugin id="org.eclipse.swt"/>
- <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
- <plugin id="org.eclipse.team.core"/>
- <plugin id="org.eclipse.team.ui"/>
- <plugin id="org.eclipse.text"/>
- <plugin id="org.eclipse.ui"/>
- <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
- <plugin id="org.eclipse.ui.console"/>
- <plugin id="org.eclipse.ui.editors"/>
- <plugin id="org.eclipse.ui.forms"/>
- <plugin id="org.eclipse.ui.ide"/>
- <plugin id="org.eclipse.ui.navigator"/>
- <plugin id="org.eclipse.ui.navigator.resources"/>
- <plugin id="org.eclipse.ui.views"/>
- <plugin id="org.eclipse.ui.views.properties.tabbed"/>
- <plugin id="org.eclipse.ui.workbench"/>
- <plugin id="org.eclipse.ui.workbench.texteditor"/>
- <plugin id="org.eclipse.update.configurator"/>
- <plugin id="org.eclipse.viatra.addon.databinding.runtime"/>
- <plugin id="org.eclipse.viatra.query.application"/>
- <plugin id="org.eclipse.viatra.query.application.queries"/>
- <plugin id="org.eclipse.viatra.query.patternlanguage"/>
- <plugin id="org.eclipse.viatra.query.patternlanguage.emf"/>
- <plugin id="org.eclipse.viatra.query.runtime"/>
- <plugin id="org.eclipse.viatra.query.runtime.base"/>
- <plugin id="org.eclipse.viatra.query.runtime.base.itc"/>
- <plugin id="org.eclipse.viatra.query.runtime.matchers"/>
- <plugin id="org.eclipse.viatra.query.runtime.rete"/>
- <plugin id="org.eclipse.viatra.query.runtime.rete.recipes"/>
- <plugin id="org.eclipse.viatra.query.tooling.core"/>
- <plugin id="org.eclipse.viatra.query.tooling.generator.model"/>
- <plugin id="org.eclipse.viatra.transformation.evm"/>
- <plugin id="org.eclipse.xtend.lib"/>
- <plugin id="org.eclipse.xtend.lib.macro"/>
- <plugin id="org.eclipse.xtext"/>
- <plugin id="org.eclipse.xtext.builder"/>
- <plugin id="org.eclipse.xtext.common.types"/>
- <plugin id="org.eclipse.xtext.common.types.ui"/>
- <plugin id="org.eclipse.xtext.ide"/>
- <plugin id="org.eclipse.xtext.logging" fragment="true"/>
- <plugin id="org.eclipse.xtext.smap"/>
- <plugin id="org.eclipse.xtext.ui"/>
- <plugin id="org.eclipse.xtext.util"/>
- <plugin id="org.eclipse.xtext.xbase"/>
- <plugin id="org.eclipse.xtext.xbase.lib"/>
- <plugin id="org.objectweb.asm"/>
- <plugin id="org.sat4j.core"/>
- <plugin id="org.sat4j.pb"/>
- <plugin id="org.tukaani.xz"/>
- <plugin id="org.w3c.css.sac"/>
- <plugin id="org.w3c.dom.events"/>
- <plugin id="org.w3c.dom.smil"/>
- <plugin id="org.w3c.dom.svg"/>
- </plugins>
-
-
-</product>
diff --git a/examples/headless/org.eclipse.viatra.query.application/plugin.xml b/examples/headless/org.eclipse.viatra.query.application/plugin.xml
deleted file mode 100644
index 43f5c6948..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/plugin.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- id="org.eclipse.viatra.query.application.app.generic"
- point="org.eclipse.core.runtime.applications">
- <application
- cardinality="singleton-global"
- thread="main"
- visible="true">
- <run
- class="org.eclipse.viatra.query.application.generic.GenericEclipseViatraQueryApplication">
- </run>
- </application>
- </extension>
- <extension
- id="org.eclipse.viatra.query.application.app.patternspecific"
- point="org.eclipse.core.runtime.applications">
- <application
- cardinality="singleton-global"
- thread="main"
- visible="true">
- <run
- class="org.eclipse.viatra.query.application.patternspecific.PatternSpecificEclipseViatraQueryApplication">
- </run>
- </application>
- </extension>
- <extension
- id="viatra.query.generic"
- point="org.eclipse.core.runtime.products">
- <product
- application="org.eclipse.viatra.query.application.app.generic"
- name="Generic VIATRA Query Application">
- <property
- name="appName"
- value="Generic VIATRA Query Application">
- </property>
- </product>
- </extension>
- <extension
- id="viatra.query.specific"
- point="org.eclipse.core.runtime.products">
- <product
- application="org.eclipse.viatra.query.application.app.patternspecific"
- name="PatternSpecific VIATRA Query Application">
- <property
- name="appName"
- value="PatternSpecific VIATRA Query Application">
- </property>
- </product>
- </extension>
-
-</plugin>
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/DefaultRealm.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/DefaultRealm.java
deleted file mode 100644
index 900eace7c..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/DefaultRealm.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.viatra.query.application.common;
-
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Simple realm implementation that will set itself as default when constructed. Invoke
- * {@link #dispose()} to remove the realm from being the default. Does not support asyncExec(...).
- *
- * Original source: http://wiki.eclipse.org/JFace_Data_Binding/Realm
- */
-public class DefaultRealm extends Realm {
- private Realm previousRealm;
-
- public DefaultRealm() {
- previousRealm = super.setDefault(this);
- }
-
- /**
- * @return always returns true
- */
- public boolean isCurrent() {
- return true;
- }
-
- protected void syncExec(Runnable runnable) {
- runnable.run();
- }
-
- /**
- * @throws UnsupportedOperationException
- */
- public void asyncExec(Runnable runnable) {
- throw new UnsupportedOperationException("asyncExec is unsupported");
- }
-
- /**
- * Removes the realm from being the current and sets the previous realm to the default.
- */
- public void dispose() {
- if (getDefault() == this) {
- setDefault(previousRealm);
- }
- }
-}
-
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadless.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadless.java
deleted file mode 100644
index a01b0fe02..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadless.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus, Istvan Rath and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- * Istvan Rath - refactorings to accommodate to generic/patternspecific API differences
- *******************************************************************************/
-package org.eclipse.viatra.query.application.common;
-
-
-import java.util.Collection;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EcoreFactory;
-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.viatra.addon.databinding.runtime.api.ViatraObservables;
-import org.eclipse.viatra.query.application.queries.EClassNamesMatcher;
-import org.eclipse.viatra.query.application.queries.EObjectMatch;
-import org.eclipse.viatra.query.application.queries.EObjectMatcher;
-import org.eclipse.viatra.query.application.queries.EPackageMatch;
-import org.eclipse.viatra.query.application.queries.EPackageMatcher;
-import org.eclipse.viatra.query.application.queries.HeadlessQueries;
-import org.eclipse.viatra.query.application.queries.util.EClassNamesProcessor;
-import org.eclipse.viatra.query.application.queries.util.EObjectProcessor;
-import org.eclipse.viatra.query.application.queries.util.EPackageProcessor;
-import org.eclipse.viatra.query.runtime.api.IPatternMatch;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
-import org.eclipse.viatra.query.runtime.emf.EMFScope;
-import org.eclipse.viatra.query.runtime.exception.ViatraQueryException;
-
-/**
- * @author Abel Hegedus
- * @author Istvan Rath
- *
- */
-public class ViatraQueryHeadless {
-
- protected Resource loadModel(String modelPath) {
- URI fileURI = URI.createFileURI(modelPath);
- return loadModel(fileURI);
- }
-
- protected Resource loadModel(URI fileURI) {
- // Loads the resource
- ResourceSet resourceSet = new ResourceSetImpl();
- Resource resource = resourceSet.getResource(fileURI, true);
- return resource;
- }
-
- protected void prettyPrintMatches(StringBuilder results, Collection<? extends IPatternMatch> matches) {
- for (IPatternMatch match : matches) {
- results.append(match.prettyPrint()+"; ");
- }
- if(matches.size() == 0) {
- results.append("Empty match set");
- }
- results.append("\n");
- }
-
-
- public String executeDemo(String modelPath) {
- final StringBuilder results = new StringBuilder();
- Resource resource = loadModel(modelPath);
- if (resource != null) {
- try {
- // get all matches of the pattern
- // initialization
- // phase 1: (managed) ViatraQueryEngine
- ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(resource));
- // phase 2: the matcher itself
- EObjectMatcher matcher = EObjectMatcher.on(engine);
- // get all matches of the pattern
- Collection<EObjectMatch> matches = matcher.getAllMatches();
- prettyPrintMatches(results, matches);
- // using a match processor
- matcher.forEachMatch(new EObjectProcessor() {
- @Override
- public void process(EObject o) {
- results.append("\tEObject: " + o.toString() + "\n");
- }
- });
- // matching with partially bound input parameters
- // a new matcher initialization will trigger a new traversal of the model
- // unless you use pattern groups, see executePatternSpecific_PatternGroups below
- EClassNamesMatcher matcher2 = EClassNamesMatcher.on(engine);
- // defining an input mask by binding "name" to "A" ->
- matcher2.forEachMatch( matcher2.newMatch(null, "A") , new EClassNamesProcessor() {
- @Override
- public void process(EClass c, String n) {
- results.append("\tEClass with name A: " + c.toString() + "\n");
- }
- });
- } catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
- public String executeDemo_PatternGroups(String modelPath) {
- final StringBuilder results = new StringBuilder();
- Resource resource = loadModel(modelPath);
- if (resource != null) {
- try {
- // initialization
- // phase 1: (managed) ViatraQueryEngine
- ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(resource));
- // phase 2: the group of pattern matchers
- HeadlessQueries patternGroup = HeadlessQueries.instance();
- patternGroup.prepare(engine);
- // from here on everything is the same
- EObjectMatcher matcher = EObjectMatcher.on(engine);
- // get all matches of the pattern
- Collection<EObjectMatch> matches = matcher.getAllMatches();
- prettyPrintMatches(results, matches);
- // using a match processor
- matcher.forEachMatch(new EObjectProcessor() {
- @Override
- public void process(EObject o) {
- results.append("\tEObject: " + o.toString() + "\n");
- }
- });
- // matching with partially bound input parameters
- // because EClassNamesMatcher is included in the patterngroup, *no new traversal* will be done here
- EClassNamesMatcher matcher2 = EClassNamesMatcher.on(engine);
- // defining an input mask by binding "name" to "A" ->
- matcher2.forEachMatch(null, "A" , new EClassNamesProcessor() {
- @Override
- public void process(EClass c, String n) {
- results.append("\tEClass with name A: " + c.toString() + "\n");
- }
- });
- // projections
- for (EClass ec: matcher2.getAllValuesOfc(matcher2.newMatch(null,"A")))
- {
- results.append("\tEClass with name A: " + ec.toString() + "\n");
- }
- } catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
- // incrementally track changes
-
- protected void performModelModification(Resource res) {
- // somewhat brittle code, assumes there is a root EPackage in the Resource
- EPackage rootPackage = (EPackage)res.getContents().get(0);
- // add a new EPackage
- EPackage newPackage = EcoreFactory.eINSTANCE.createEPackage();
- newPackage.setName("NewPackage");
- rootPackage.getESubpackages().add(newPackage);
- }
-
- public String executeTrackChangesDemo(String modelPath)
- {
- final StringBuilder results = new StringBuilder();
- Resource resource = loadModel(modelPath);
- if (resource != null) {
- try {
- // initialization
- // phase 1: (managed) ViatraQueryEngine
- ViatraQueryEngine engine = ViatraQueryEngine.on(new EMFScope(resource));
- // phase 2: pattern matcher for packages
- EPackageMatcher matcher = EPackageMatcher.on(engine);
- matcher.forEachMatch(new EPackageProcessor() {
- @Override
- public void process(EPackage p) {
- results.append("\tEPackage before modification: " + p.getName()+"\n");
- }
- });
- // phase 3: prepare for change processing
- changeProcessing_databinding(results, matcher);
- // phase 4: modify model, change processor will update results accordingly
- performModelModification(resource);
- }
- catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
-
-
- private void changeProcessing_databinding(final StringBuilder results, ViatraQueryMatcher<?> matcher) {
- // (+) changes can also be tracked using JFace Databinding
- // this approach provides good performance, as the observable callbacks are guaranteed to be called
- // in a consistent state, and only when there is a relevant change; anything
- // can be written into the callback method
- // (-) * the databinding API introduces additional dependencies
- // * is does not support generics, hence typesafe programming is not possible
- // * a "Realm" needs to be set up for headless execution
- DefaultRealm realm = new DefaultRealm();
- IObservableSet set = ViatraObservables.observeMatchesAsSet(matcher);
-
- set.addSetChangeListener(new ISetChangeListener() {
- @Override
- public void handleSetChange(SetChangeEvent event) {
- for (Object _o : event.diff.getAdditions()) {
- if (_o instanceof EPackageMatch) {
- results.append("\tNew EPackage found by changeset databinding: " + ((EPackageMatch)_o).getP().getName()+"\n");
- }
- }
- for (Object _o : event.diff.getRemovals()) {
- // left empty
- }
- }
- });
-
- /* the same could also be done with a list:
- IObservableList list = ViatraObservables.observeMatchesAsList(factory, engine);
- list.addListChangeListener(new IListChangeListener() {
-
- @Override
- public void handleListChange(ListChangeEvent event) {
- for (ListDiffEntry lde : event.diff.getDifferences())
- {
- if (lde.isAddition()) {
- Object _o = lde.getElement();
- if (_o instanceof EPackageMatch) {
- results.append("\tNew EPackage found by changeset databinding: " + ((EPackageMatch)_o).getP().getName()+"\n");
- }
- }
- else {
- // left emptry
- }
- }
- }
- });
- */
- }
-
-
-
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessAdvanced.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessAdvanced.java
deleted file mode 100644
index ab7113996..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessAdvanced.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus, Istvan Rath and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- * Istvan Rath - refactorings to accommodate to generic/patternspecific API differences
- *******************************************************************************/
-package org.eclipse.viatra.query.application.common;
-
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-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.viatra.query.patternlanguage.emf.EMFPatternLanguageStandaloneSetup;
-import org.eclipse.viatra.query.patternlanguage.emf.eMFPatternLanguage.PatternModel;
-import org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder;
-import org.eclipse.viatra.query.patternlanguage.helper.CorePatternLanguageHelper;
-import org.eclipse.viatra.query.patternlanguage.patternLanguage.Pattern;
-import org.eclipse.viatra.query.runtime.api.AdvancedViatraQueryEngine;
-import org.eclipse.viatra.query.runtime.api.IMatchProcessor;
-import org.eclipse.viatra.query.runtime.api.IMatchUpdateListener;
-import org.eclipse.viatra.query.runtime.api.IPatternMatch;
-import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
-import org.eclipse.viatra.query.runtime.emf.EMFScope;
-import org.eclipse.viatra.query.runtime.exception.ViatraQueryException;
-import org.eclipse.viatra.query.runtime.extensibility.QuerySpecificationRegistry;
-
-/**
- * @author Abel Hegedus
- * @author Istvan Rath
- *
- */
-public class ViatraQueryHeadlessAdvanced extends ViatraQueryHeadless {
-
- /**
- * Returns the match set for patternFQN over the model in modelPath in pretty printed form
- *
- * @param modelPath
- * @param patternFQN
- * @return
- */
- public String executeDemo_GenericAPI_LoadFromVQL(URI modelURI, URI fileURI, String patternFQN) {
- final StringBuilder results = new StringBuilder();
- Resource resource = loadModel(modelURI);
- if (resource != null) {
- try {
- // get all matches of the pattern
- // create an *unmanaged* engine to ensure that noone else is going
- // to use our engine
- AdvancedViatraQueryEngine engine = AdvancedViatraQueryEngine.createUnmanagedEngine(new EMFScope(resource));
- // instantiate a pattern matcher through the registry, by only knowing its FQN
- // assuming that there is a pattern definition registered matching 'patternFQN'
-
- Pattern p = null;
-
- // Initializing Xtext-based resource parser
- new EMFPatternLanguageStandaloneSetup().createInjectorAndDoEMFRegistration();
-
- //Loading pattern resource from file
- ResourceSet resourceSet = new ResourceSetImpl();
-
- Resource patternResource = resourceSet.getResource(fileURI, true);
-
- // navigate to the pattern definition that we want
- if (patternResource != null) {
- if (patternResource.getErrors().size() == 0 && patternResource.getContents().size() >= 1) {
- EObject topElement = patternResource.getContents().get(0);
- if (topElement instanceof PatternModel) {
- for (Pattern _p : ((PatternModel) topElement).getPatterns()) {
- if (patternFQN.equals(CorePatternLanguageHelper.getFullyQualifiedName(_p))) {
- p = _p; break;
- }
- }
- }
- }
- }
- if (p == null) {
- throw new RuntimeException(String.format("Pattern %s not found", patternFQN));
- }
- SpecificationBuilder builder = new SpecificationBuilder();
- final IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> specification = builder.getOrCreateSpecification(p);
- QuerySpecificationRegistry.registerQuerySpecification(specification);
-
- // Initialize matcher from specification
- ViatraQueryMatcher<? extends IPatternMatch> matcher = engine.getMatcher(specification);
-
- if (matcher!=null) {
- Collection<? extends IPatternMatch> matches = matcher.getAllMatches();
- prettyPrintMatches(results, matches);
- }
-
- // wipe the engine
- engine.wipe();
- // after a wipe, new patterns can be rebuilt with much less overhead than
- // complete traversal (as the base indexes will be kept)
-
- // completely dispose of the engine once's it is not needed
- engine.dispose();
- resource.unload();
- } catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
-
- // incrementally track changes
-
-
- public String executeTrackChangesDemo_Advanced(URI modelURI, String patternFQN)
- {
- final StringBuilder results = new StringBuilder();
- Resource resource = loadModel(modelURI);
- if (resource != null) {
- try {
- // initialization
- // phase 1: (managed) ViatraQueryEngine
- AdvancedViatraQueryEngine engine = AdvancedViatraQueryEngine.createUnmanagedEngine(new EMFScope(resource));
- // phase 2: pattern matcher for packages
- ViatraQueryMatcher<? extends IPatternMatch> matcher = QuerySpecificationRegistry.getQuerySpecification(patternFQN).getMatcher(engine);
- matcher.forEachMatch(new IMatchProcessor<IPatternMatch>() {
- @Override
- public void process(IPatternMatch match) {
- results.append("\tMatch before modification: " + match.prettyPrint()+"\n");
- }
- });
- // phase 3: prepare for advanced change processing
- changeProcessing_lowlevel(results, matcher, engine);
- // phase 4: modify model, change processor will update results accordingly
- performModelModification(resource);
- }
- catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
- private void changeProcessing_lowlevel(final StringBuilder results,
- ViatraQueryMatcher<? extends IPatternMatch> matcher,
- AdvancedViatraQueryEngine engine) {
- // (+) these update callbacks are called whenever there is an actual change in the
- // result set of the pattern you are interested in. Hence, they are called fewer times
- // than the "afterUpdates" option, giving better performance.
- // (-) the downside is that the callbacks are *not* guaranteed to be called in a consistent
- // state (i.e. when the update propagation is settled), hence
- // * you must not invoke pattern matching and model manipulation _inside_ the callback method
- // * the callbacks might encounter "hazards", i.e. when an appearance is followed immediately by a disappearance.
- engine.addMatchUpdateListener(matcher, new IMatchUpdateListener<IPatternMatch>() {
- @Override
- public void notifyDisappearance(IPatternMatch match) {
- // left empty
- }
- @Override
- public void notifyAppearance(IPatternMatch match) {
- results.append("\tNew match found by changeset low level callback: " + match.prettyPrint()+"\n");
- }
- }, false);
- }
-
-
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessBenchmark.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessBenchmark.java
deleted file mode 100644
index f88dd1ca7..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/common/ViatraQueryHeadlessBenchmark.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus, Istvan Rath and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- * Istvan Rath - refactorings to accommodate to generic/patternspecific API differences
- *******************************************************************************/
-package org.eclipse.viatra.query.application.common;
-
-
-import java.util.Collection;
-
-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.viatra.query.application.queries.EObjectMatch;
-import org.eclipse.viatra.query.application.queries.EObjectMatcher;
-import org.eclipse.viatra.query.runtime.api.IPatternMatch;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryEngineManager;
-import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
-import org.eclipse.viatra.query.runtime.emf.EMFScope;
-import org.eclipse.viatra.query.runtime.exception.ViatraQueryException;
-import org.eclipse.viatra.query.runtime.extensibility.QuerySpecificationRegistry;
-
-/**
- * @author Abel Hegedus
- * @author Istvan Rath
- *
- */
-public class ViatraQueryHeadlessBenchmark {
-
- private Resource loadModel(String modelPath) {
- // Loads the resource
- long start = System.nanoTime();
- ResourceSet resourceSet = new ResourceSetImpl();
- URI fileURI = URI.createFileURI(modelPath);
- Resource resource = resourceSet.getResource(fileURI, true);
-
- long resourceInit = System.nanoTime();
- System.out.println("EMF load took: " + (resourceInit - start) / 1000000 + " ms");
-
- return resource;
- }
-
-
- private void prettyPrintMatches(StringBuilder results, Collection<? extends IPatternMatch> matches) {
- System.out.println("Found matches:");
- for (IPatternMatch match : matches) {
- System.out.println(match.prettyPrint());
- results.append(match.prettyPrint());
- }
-
- if(matches.size() == 0) {
- results.append("Empty match set");
- }
- }
-
- private void measureMemory(StringBuilder results) {
- System.gc();
- System.gc();
- System.gc();
- System.gc();
- System.gc();
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- long usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
- System.out.println("Used memory: " + usedMemory + " bytes");
- System.out.println("Used memory: " + (usedMemory / 1024) / 1024 + " megabytes");
-
-
- }
-
- public String executePatternSpecificBenchmark(String modelPath) {
- StringBuilder results = new StringBuilder();
-
- Resource resource = loadModel(modelPath);
-
- if (resource != null) {
- try {
- // get all matches of the pattern
- long startMatching = System.nanoTime();
- ViatraQueryEngine engine = ViatraQueryEngineManager.getInstance().getQueryEngine(new EMFScope(resource));
- EObjectMatcher matcher = EObjectMatcher.on(engine);
- long matcherInit = System.nanoTime();
- Collection<EObjectMatch> matches = matcher.getAllMatches();
- long collectedMatches = System.nanoTime();
- System.out.println(
- "Init took: " + (matcherInit - startMatching) / 1000000 + " Collecting took: "
- + (collectedMatches - matcherInit) / 1000000 + " ms");
- measureMemory(results);
- prettyPrintMatches(results, matches);
-
- } catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
- /**
- * Returns the match set for patternFQN over the model in modelPath in pretty printed form
- *
- * @param modelPath
- * @param patternFQN
- * @return
- */
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public String executeGenericBenchmark(String modelPath, String patternFQN) {
- StringBuilder results = new StringBuilder();
-
- Resource resource = loadModel(modelPath);
-
- if (resource != null) {
- try {
- long startMatching = System.nanoTime();
- ViatraQueryEngine engine = ViatraQueryEngineManager.getInstance().getQueryEngine(new EMFScope(resource));
- ViatraQueryMatcher matcher = QuerySpecificationRegistry.getQuerySpecification(patternFQN).getMatcher(engine);
- long matcherInit = System.nanoTime();
- // assuming that there is a pattern definition registered matching 'patternFQN'
- if (matcher!=null) {
- Collection<IPatternMatch> matches = matcher.getAllMatches();
- prettyPrintMatches(results, matches);
- // get all matches of the pattern
- long collectedMatches = System.nanoTime();
- System.out.println(
- "Init took: " + (matcherInit - startMatching) / 1000000 + " Collecting took: "
- + (collectedMatches - matcherInit) / 1000000 + " ms");
- measureMemory(results);
- prettyPrintMatches(results, matches);
- }
- } catch (ViatraQueryException e) {
- e.printStackTrace();
- results.append(e.getMessage());
- }
- } else {
- results.append("Resource not found");
- }
- return results.toString();
- }
-
-
-
-
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericEclipseViatraQueryApplication.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericEclipseViatraQueryApplication.java
deleted file mode 100644
index a7d5ffe65..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericEclipseViatraQueryApplication.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- *******************************************************************************/
-package org.eclipse.viatra.query.application.generic;
-
-import java.util.Map;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.viatra.query.application.common.ViatraQueryHeadlessAdvanced;
-
-/**
- * @author Abel Hegedus
- *
- */
-public class GenericEclipseViatraQueryApplication implements IApplication {
-
- private static String modelParam = "-m";
- private static String patternParam = "-p";
-
-
-
- @Override
- public Object start(IApplicationContext context) throws Exception {
-
- Map<String, Object> arguments = context.getArguments();
- String[] args = (String[]) arguments.get("application.args");
- String model = null;
- String patternFQN = null;
- if (args == null || args.length == 0) {
- displayHelp();
- return IApplication.EXIT_OK;
- }
- int i = 0;
- while (i < args.length) {
- if (args[i].equals(modelParam)) {
- model = args[i + 1];
- i += 2;
- continue;
- }
- if (args[i].equals(patternParam)) {
- patternFQN = args[i + 1];
- i += 2;
- continue;
- } else {
- i++;
- continue;
- }
- }
-
- if (model == null) {
- System.out.println("Model parameter not set");
- displayHelp();
- return IApplication.EXIT_OK;
- }
- if (patternFQN == null) {
- System.out.println("PatternFQN parameter not set");
- displayHelp();
- return IApplication.EXIT_OK;
- }
-
- ViatraQueryHeadlessAdvanced hla = new ViatraQueryHeadlessAdvanced();
-// System.out.println(hla.executeDemo_GenericAPI(model, patternFQN));
- URI fileURI = URI.createPlatformPluginURI("org.eclipse.viatra.query.application.queries/src/org/eclipse/viatra/query/application/queries/headlessQueries.vql", false);
- URI modelURI = URI.createFileURI(model);
- System.out.println(hla.executeDemo_GenericAPI_LoadFromVQL(modelURI, fileURI, patternFQN));
- System.out.println(hla.executeTrackChangesDemo_Advanced(modelURI, patternFQN));
-
- return IApplication.EXIT_OK;
- }
-
- @Override
- public void stop() {}
-
- private void displayHelp() {
- System.out.println("Usage:\n<call> -m <modelFilePAth> -p <patternFQN>\n -m : Required, the model to match on.\n -p : Required, the pattern fqn to match");
- }
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericViatraQueryApplication.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericViatraQueryApplication.java
deleted file mode 100644
index f93336460..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/generic/GenericViatraQueryApplication.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- *******************************************************************************/
-package org.eclipse.viatra.query.application.generic;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
-import org.eclipse.viatra.query.application.common.ViatraQueryHeadlessAdvanced;
-
-/**
- * @author Abel Hegedus
- *
- */
-public class GenericViatraQueryApplication {
-
- private static String modelParam = "-m";
- private static String patternParam = "-p";
- private static String eiqFileParam = "-e";
-
-
- public static void main(String[] args) {
- String model = null;
- String eiqFile = null;
- String patternFQN = null;
- if (args == null || args.length == 0) {
- displayHelp();
- return;
- }
- int i = 0;
- while (i < args.length) {
- if (args[i].equals(modelParam)) {
- model = args[i + 1];
- i += 2;
- continue;
- } else if (args[i].equals(patternParam)) {
- patternFQN = args[i + 1];
- i += 2;
- continue;
- } else if (args[i].equals(eiqFileParam)) {
- eiqFile = args[i + 1];
- i += 2;
- continue;
- } else {
- i++;
- continue;
- }
- }
-
- if (model == null) {
- System.out.println("Model parameter not set");
- displayHelp();
- return;
- }
- if (patternFQN == null) {
- System.out.println("PatternFQN parameter not set");
- displayHelp();
- return;
- }
- if (eiqFile == null) {
- System.out.println("EIQ file parameter not set");
- displayHelp();
- return;
- }
-
- ViatraQueryHeadlessAdvanced hla = new ViatraQueryHeadlessAdvanced();
- // Initializing metamodel
- Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());
- URI fileURI = URI.createFileURI(eiqFile);
- URI modelURI = URI.createFileURI(model);
- System.out.println(hla.executeDemo_GenericAPI_LoadFromVQL(modelURI, fileURI, patternFQN));
- System.out.println(hla.executeTrackChangesDemo_Advanced(modelURI, patternFQN));
-
- }
-
- private static void displayHelp() {
- System.out.println("Usage:\n<call> -m <modelFilePath> -e <eiqFilePath> -p <patternFQN>");
- System.out.println(" -m : Required, the model to match on.");
- System.out.println(" -e : Required, the pattern definition file (.eiq) to match on.");
- System.out.println(" -p : Required, the pattern fqn to match");
- }
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificEclipseViatraQueryApplication.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificEclipseViatraQueryApplication.java
deleted file mode 100644
index 09e5dc139..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificEclipseViatraQueryApplication.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus, Istvan Rath and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- * Istvan Rath - modifications for pattern-specific API demonstration
- *******************************************************************************/
-package org.eclipse.viatra.query.application.patternspecific;
-
-import java.util.Map;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.viatra.query.application.common.ViatraQueryHeadless;
-
-/**
- * @author Abel Hegedus
- * @author Istvan Rath
- *
- */
-public class PatternSpecificEclipseViatraQueryApplication implements IApplication {
-
- private static String modelParam = "-m";
-
- @Override
- public Object start(IApplicationContext context) throws Exception {
-
- Map<String, Object> arguments = context.getArguments();
- String[] args = (String[]) arguments.get("application.args");
- String model = null;
- if (args == null || args.length == 0) {
- displayHelp();
- return IApplication.EXIT_OK;
- }
- int i = 0;
- while (i < args.length) {
- if (args[i].equals(modelParam)) {
- model = args[i + 1];
- i += 2;
- continue;
- }
- else {
- i++;
- continue;
- }
- }
-
- if (model == null) {
- System.out.println("Model parameter not set");
- displayHelp();
- return IApplication.EXIT_OK;
- }
-
- ViatraQueryHeadless hl = new ViatraQueryHeadless();
- System.out.println(hl.executeDemo(model));
- System.out.println(hl.executeDemo_PatternGroups(model));
- System.out.println(hl.executeTrackChangesDemo(model));
-
-
-
- return IApplication.EXIT_OK;
- }
-
- @Override
- public void stop() {
-
- }
-
- private void displayHelp() {
- System.out.println("Usage:\n<call> -m <modelFilePAth> \n -m : Required, the model to match on.");
- }
-}
diff --git a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificViatraQueryApplication.java b/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificViatraQueryApplication.java
deleted file mode 100644
index b64a51299..000000000
--- a/examples/headless/org.eclipse.viatra.query.application/src/org/eclipse/viatra/query/application/patternspecific/PatternSpecificViatraQueryApplication.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004-2011 Abel Hegedus, Istvan Rath and Daniel Varro
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Abel Hegedus - initial API and implementation
- * Istvan Rath - modifications for pattern-specific API demonstration
- *******************************************************************************/
-package org.eclipse.viatra.query.application.patternspecific;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
-import org.eclipse.viatra.query.application.common.ViatraQueryHeadless;
-
-/**
- * @author Abel Hegedus
- * @author Istvan Rath
- *
- */
-public class PatternSpecificViatraQueryApplication {
-
- private static String modelParam = "-m";
-
- public static void main(String[] args) {
-
- String model = null;
- if (args == null || args.length == 0) {
- displayHelp();
- return;
- }
- int i = 0;
- while (i < args.length) {
- if (args[i].equals(modelParam)) {
- model = args[i + 1];
- i += 2;
- continue;
- }
- else {
- i++;
- continue;
- }
- }
-
- if (model == null) {
- System.out.println("Model parameter not set");
- displayHelp();
- return;
- }
-
- // Initializing metamodel
- Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());
-
- ViatraQueryHeadless hl = new ViatraQueryHeadless();
- System.out.println(hl.executeDemo(model));
- System.out.println(hl.executeDemo_PatternGroups(model));
- System.out.println(hl.executeTrackChangesDemo(model));
-
-
-
- }
-
- private static void displayHelp() {
- System.out.println("Usage:\n<call> -m <modelFilePAth> \n -m : Required, the model to match on.");
- }
-}

Back to the top