Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » Create a runtime model using EMF
Create a runtime model using EMF [message #1849857] Fri, 04 February 2022 20:37 Go to next message
atepheh kh is currently offline atepheh khFriend
Messages: 17
Registered: December 2021
Junior Member
Hello dears,
I am new to EMF.
I want to create a runtime model. Actually I want to create a model and give it values using my real environment. I know how to create a model using EMF but I don't know how to give it values. I have to use generated codes and APIs?

would you please guide me how to create a runtime model?

Thanks

[Updated on: Sat, 05 February 2022 11:43]

Report message to a moderator

Re: Create a runtime model using EMF [message #1849868 is a reply to message #1849857] Sat, 05 February 2022 12:59 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33143
Registered: July 2009
Senior Member
Use the XyzFactory.eINSTANCE to create your objects, and use Abc.getWhatever().add(...) and Abc.setSomething(...) to populate them. So yes, use the generated APIs.

Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Create a runtime model using EMF [message #1850045 is a reply to message #1849868] Sun, 13 February 2022 07:49 Go to previous messageGo to next message
atepheh kh is currently offline atepheh khFriend
Messages: 17
Registered: December 2021
Junior Member
Thanks for your reply.

I create my model using generated APIs, now I want to add my model to ViatraQueryEngine :
ResourceSet rs = new ResourceSetImpl();
rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml",new XMIResourceFactoryImpl());
Resource resource = rs.createResource(URI.createURI("test.xml"));

// create my model
MainPage main = ...
Webpage web = factory.createWebpage();
web.getMainpage().add(main);
		
resource.getContents().add(web);
scope = new EMFScope(resource);
ViatraQueryEngine engine = ViatraQueryEngine.on(scope); //This line has error

but I faced with this error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/collections/impl/map/mutable/UnifiedMap
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at org.eclipse.viatra.query.runtime.matchers.util.EclipseCollectionsFactory.createMultiLookup(EclipseCollectionsFactory.java:125)
	at org.eclipse.viatra.query.runtime.matchers.util.CollectionsFactory.createMultiLookup(CollectionsFactory.java:122)
	at org.eclipse.viatra.query.runtime.internal.apiimpl.ViatraQueryEngineImpl.<init>(ViatraQueryEngineImpl.java:104)
	at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineManager.getQueryEngine(ViatraQueryEngineManager.java:104)
	at org.eclipse.viatra.query.runtime.api.ViatraQueryEngineManager.getQueryEngine(ViatraQueryEngineManager.java:84)
	at org.eclipse.viatra.query.runtime.api.ViatraQueryEngine.on(ViatraQueryEngine.java:68)
	at com.myapplication.runtime.model.RuntimeModel.queryOnModel(RuntimeModel.java:64)
	at com.myapplication.runtime.model.RuntimeModel.createModel(RuntimeModel.java:56)
	at com.myapplication.runtime.model.Main.main(Main.java:8)
Caused by: java.lang.ClassNotFoundException: org.eclipse.collections.impl.map.mutable.UnifiedMap
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	... 36 more

Re: Create a runtime model using EMF [message #1850046 is a reply to message #1850045] Sun, 13 February 2022 09:27 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33143
Registered: July 2009
Senior Member
It's better to ask on the Viatra forum:

https://www.eclipse.org/forums/index.php/f/147/

You'll need to add org.eclipse.collections to your plugin dependencies...


Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:Searching for a guide for Maven/Gradle builds and EMF(-based) frameworks
Next Topic:Find the path between two classes
Goto Forum:
  


Current Time: Thu May 02 12:02:44 GMT 2024

Powered by FUDForum. Page generated in 0.03206 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top