-
Notifications
You must be signed in to change notification settings - Fork 17
Code Examples
Yoann Vernageau edited this page Oct 31, 2017
·
6 revisions
NOTE:
In the following examples, every calls to MyUri
and MyConfig
refer to a module-specific implementation of UriBuilder
and Config
.
The only code you need to initialize a resource is the same as in standard EMF.
To ease the integration of NeoEMF (and avoid mistakes), it is recommended to use the UriBuilder
associated to the database you want to use, findable in each module.
// Creates a new URI to locate a file-based resource.
URI uri = MyUriBuilder.builder().fromFile(new File("<db_path>"));
// You can also use UriBuilder#fromServer(host, port, model) to locate a distributed resource, if supported.
//URI uri = MyUriBuilder.builder().fromServer("host", 10000, "model");
// Creates the resource
ResourceSet resourceSet = new ResourceSetImpl();
Resource resource = resourceSet.createResource(uri);
NeoEMF is fully-integrated with EMF, the procedure is so the same.
// Creates a new configuration builder, used to easily configure the behavior of NeoEMF and the inner database.
// In addition to the options common to all backends, each builder has its own options.
ImmutableConfig config = MyConfig.newConfig()
.autoSave(50000) // A common option
.log() // Another common option
.withOption("key", "value"); // A custom option
// Load an existing resource (optional)
resource.load(config.asMap());
// Do something on the resource
// Save your modifications
resource.save(config.asMap());
// Don't forget to unload the resource when you're done with it
// It shutdown the inner database and clean the memory
resource.unload();
ImmutableConfig config = MyConfig.newConfig()
.cacheContainers()
.cacheMetaclasses();
URI uri = MyUriBuilder.builder().fromFile(new File("db_path"));
Resource resource = new ResourceSetImpl().createResource(uri);
resource.load(config.asMap());
// Perform modifications
MyClass myClass = (MyClass) resource.getContents().get(0);
myClass.setName("NewName");
resource.save(config.asMap());
resource.unload();