465190: ResourceManager for resource related tasks
ResourceManager replaces EmptyResourceInitializer
Change-Id: I8a711dbf5b3321734429112e4019fed8dc30a4b2
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=465190
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/02-FirstExample.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/02-FirstExample.xdoc
index 6dbfe2e..993df87 100644
--- a/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/02-FirstExample.xdoc
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/02-FirstExample.xdoc
@@ -106,28 +106,29 @@
item[open the class *GuiceModule (FirstexampleGuiceModule in this example) that the wizard created for you.
Note that this is a key class for all customizations; it allows to override several methods in order to provide custom behaviors
and implementations.]
- item[override method e[bindEmptyResourceInitializer()] providing a class for Resource initialization
+ item[override method e[bindResourceManager()] providing a class for Resource initialization
code[Java][
-public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return LibraryEmptyResourceInitializer.class;
+@Override
+public Class<? extends ResourceManager> bindResourceManager() {
+ return LibraryResourceManager.class;
}
]
]
- item[create a new class e[LibraryEmptyResourceInitializer] extending from e[EmptyResourceInitializer] for Resource initialization
+ item[create a new class e[LibraryResourceManager] extending from codeRef[org.eclipse.emf.parsley.resource.ResourceManager] for Resource initialization
code[Java][
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
import org.eclipse.emf.examples.extlibrary.Library;
+import org.eclipse.emf.parsley.resource.ResourceManager;
-public class LibraryEmptyResourceInitializer extends EmptyResourceInitializer {
-
- public void initialize(Resource resource) {
- super.initialize(resource);
- Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
- resource.getContents().add(library);
- }
+public class LibraryResourceManager extends ResourceManager {
+
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ resource.getContents().add(library);
+ }
}
]
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/06-Customization-RESOURCES.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/06-Customization-RESOURCES.xdoc
index c036e4d..b419849 100644
--- a/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/06-Customization-RESOURCES.xdoc
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/documentation/06-Customization-RESOURCES.xdoc
@@ -4,7 +4,7 @@
ul[
item[If you need a machanism to fill some data for the first time you use a model, you can provide
- a specific implementation of ref:EmptyResourceInitializer[Emty Resource Initializer].]
+ a specific implementation of ref:ResourceManager[Resource Manager].]
item[If you want to interact with Resource Loading, you can provide a specific ref:ResourceLoader[Resource
Loader]]
]
@@ -18,14 +18,17 @@
section2:ResourceLoader[Resource Loader]
The class codeRef[org.eclipse.emf.parsley.resource.ResourceLoader] can be used to handle resource loading.
-This class uses internally the ref:EmptyResourceInitializer[Empty Resource Initializer].
+This class uses internally the ref:ResourceManager[Resource Manager].
-section2:EmptyResourceInitializer[Empty Resource Initializer]
+section2:ResourceManager[Resource Manager]
-If you need to initialize your model, for the first use, you can define an implementation of codeRef[org.eclipse.emf.parsley.resource.EmptyResourceInitializer].
-When the main resource will be found empty, your code will be executed.
+Tasks concerning an EMF codeRef[org.eclipse.emf.ecore.resource.Resource] are
+delegated to codeRef[org.eclipse.emf.parsley.resource.ResourceManager].
+One of such tasks is initializing the resource, e.g., when, after loading, it is
+found empty. You can derive from this class (and bind it in the Guice module) and provide a custom implementation
+of the method e[initialize].
section2:ResourceSaveManager[Resource Save Manager]
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslGuiceModuleHelperTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslGuiceModuleHelperTests.xtend
index 763b9a3..002894d 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslGuiceModuleHelperTests.xtend
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslGuiceModuleHelperTests.xtend
@@ -100,7 +100,7 @@
bindTableFeaturesProvider
bindEmfSelectionHelper
bindResourceSaveManager
-bindEmptyResourceInitializer
+bindResourceManager
bindIContentProvider
bindProposalCreator
bindIEditingStrategy
diff --git a/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/TreeformGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/TreeformGuiceModule.java
index 449987c..1c3dde3 100644
--- a/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/TreeformGuiceModule.java
+++ b/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/TreeformGuiceModule.java
@@ -10,11 +10,10 @@
*******************************************************************************/
package org.eclipse.emf.parsley.examples.cdo.treeform;
-import org.eclipse.emf.parsley.examples.cdo.treeform.customizations.TreeformCDOEmptyResourceInitializer;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.examples.cdo.treeform.customizations.TreeformCDOResourceManager;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.ui.plugin.AbstractUIPlugin;
-
public class TreeformGuiceModule extends EmfParsleyGuiceModuleGen {
public TreeformGuiceModule(AbstractUIPlugin plugin) {
@@ -22,8 +21,7 @@
}
@Override
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return TreeformCDOEmptyResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return TreeformCDOResourceManager.class;
}
-
}
diff --git a/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOEmptyResourceInitializer.java b/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOResourceManager.java
similarity index 92%
rename from examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOEmptyResourceInitializer.java
rename to examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOResourceManager.java
index 08eecd5..95bcc30 100644
--- a/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOEmptyResourceInitializer.java
+++ b/examples/org.eclipse.emf.parsley.examples.cdo.treeform/src/org/eclipse/emf/parsley/examples/cdo/treeform/customizations/TreeformCDOResourceManager.java
@@ -20,10 +20,9 @@
import org.eclipse.emf.cdo.util.CommitException;
import org.eclipse.emf.cdo.util.ConcurrentAccessException;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
-public class TreeformCDOEmptyResourceInitializer extends
- EmptyResourceInitializer {
+public class TreeformCDOResourceManager extends ResourceManager {
@Override
public void initialize(Resource resource) {
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java
index 527fff8..9b5c359 100644
--- a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java
@@ -10,20 +10,17 @@
*******************************************************************************/
package org.eclipse.emf.parsley.examples.firstexample;
-
-import org.eclipse.emf.parsley.examples.firstexample.EmfParsleyGuiceModuleGen;
-
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.ui.plugin.AbstractUIPlugin;
-
public class FirstexampleGuiceModule extends EmfParsleyGuiceModuleGen {
public FirstexampleGuiceModule(AbstractUIPlugin plugin) {
super(plugin);
}
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return LibraryEmptyResourceInitializer.class;
+ @Override
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return LibraryResourceManager.class;
}
}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java
deleted file mode 100644
index d08e86f..0000000
--- a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
- * 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:
- * Vincenzo Caselli - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.parsley.examples.firstexample;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
-import org.eclipse.emf.examples.extlibrary.Library;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
-
-public class LibraryEmptyResourceInitializer extends EmptyResourceInitializer {
-
- public void initialize(Resource resource) {
- super.initialize(resource);
- Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
- resource.getContents().add(library);
- }
-
-}
-
-
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryResourceManager.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryResourceManager.java
new file mode 100644
index 0000000..ce6187a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryResourceManager.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
+ * 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:
+ * Vincenzo Caselli - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.parsley.examples.firstexample;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
+import org.eclipse.emf.examples.extlibrary.Library;
+import org.eclipse.emf.parsley.resource.ResourceManager;
+
+public class LibraryResourceManager extends ResourceManager {
+
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ resource.getContents().add(library);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfParsleyGuiceModuleGen.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfParsleyGuiceModuleGen.java
index 5063207..44423c8 100644
--- a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfParsleyGuiceModuleGen.java
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfParsleyGuiceModuleGen.java
@@ -8,10 +8,10 @@
import org.eclipse.emf.parsley.edit.UndoableEditingStrategy;
import org.eclipse.emf.parsley.edit.domain.GlobalAdapterFactoryEditingDomainProvider;
import org.eclipse.emf.parsley.examples.mail.accountsview.config.ConfiguratorGen;
-import org.eclipse.emf.parsley.examples.mail.accountsview.custom.MailEmptyResourceInitializer;
+import org.eclipse.emf.parsley.examples.mail.accountsview.custom.MailResourceManager;
import org.eclipse.emf.parsley.examples.mail.accountsview.edit.ui.provider.ViewerContentProviderGen;
import org.eclipse.emf.parsley.examples.mail.accountsview.ui.provider.LabelProviderGen;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -26,8 +26,8 @@
}
@Override
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return MailEmptyResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return MailResourceManager.class;
}
@Override
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailResourceManager.java
similarity index 94%
rename from examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java
rename to examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailResourceManager.java
index 3b39837..ddc1288 100644
--- a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailResourceManager.java
@@ -15,14 +15,14 @@
import org.eclipse.emf.parsley.examples.mail.Folder;
import org.eclipse.emf.parsley.examples.mail.Mail;
import org.eclipse.emf.parsley.examples.mail.MailFactory;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
/**
* @author Lorenzo Bettini
*
*/
-public class MailEmptyResourceInitializer extends EmptyResourceInitializer {
+public class MailResourceManager extends ResourceManager {
int counter = 0;
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley
index 7a0b3e0..4a80daa 100644
--- a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley
@@ -1,13 +1,13 @@
+import org.eclipse.emf.common.util.URI
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain
import org.eclipse.emf.parsley.edit.IEditingStrategy
import org.eclipse.emf.parsley.edit.UndoableEditingStrategy
import org.eclipse.emf.parsley.edit.domain.GlobalAdapterFactoryEditingDomainProvider
import org.eclipse.emf.parsley.examples.mail.Account
import org.eclipse.emf.parsley.examples.mail.Folder
-import org.eclipse.emf.parsley.examples.mail.accountsview.custom.MailEmptyResourceInitializer
+import org.eclipse.emf.parsley.examples.mail.accountsview.custom.MailResourceManager
import org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer
-import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.parsley.resource.ResourceManager
/* org.eclipse.emf.parsley.examples.mail.accountsview Emf Parsley Dsl Module file */
module org.eclipse.emf.parsley.examples.mail.accountsview {
@@ -21,7 +21,7 @@
}
bindings {
- type EmptyResourceInitializer -> MailEmptyResourceInitializer
+ type ResourceManager -> MailResourceManager
type IEditingStrategy -> UndoableEditingStrategy
// with this binding, a global EditingDomain will be used:
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java
index 266468c..fadc486 100644
--- a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java
@@ -17,7 +17,7 @@
import org.eclipse.emf.parsley.examples.rap.model.Item;
import org.eclipse.emf.parsley.examples.rap.model.Model;
import org.eclipse.emf.parsley.examples.rap.model.ModelFactory;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -26,8 +26,8 @@
public class GuiceModule extends EmfParsleyGuiceModule {
- public static class CustomEmptyResourceInitializer extends
- EmptyResourceInitializer {
+ public static class CustomResourceManager extends
+ ResourceManager {
public void initialize(org.eclipse.emf.ecore.resource.Resource resource) {
Model model = ModelFactory.eINSTANCE.createModel();
model.setName("My Model");
@@ -105,7 +105,7 @@
}
@Override
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return CustomEmptyResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return CustomResourceManager.class;
}
}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java
index 16b3cd5..78f9c98 100644
--- a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java
@@ -10,11 +10,10 @@
*******************************************************************************/
package org.eclipse.emf.parsley.examples.rap.ui;
-
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
import org.eclipse.emf.parsley.factories.TreeFormFactory;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.emf.parsley.widgets.TreeFormComposite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
@@ -25,7 +24,7 @@
public class View extends ViewPart {
public static final String ID = "org.eclipse.emf.parsley.examples.rap.ui.view";
- @Inject private EmptyResourceInitializer emptyResourceInitializer;
+ @Inject private ResourceManager resourceManager;
@Inject private TreeFormFactory treeFormFactory;
@@ -40,7 +39,7 @@
SWT.BORDER);
Resource resource = new ResourceImpl();
- emptyResourceInitializer.initialize(resource);
+ resourceManager.initialize(resource);
treeFormComposite.update(resource);
}
diff --git a/plugins/org.eclipse.emf.parsley.cdo.common/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java b/plugins/org.eclipse.emf.parsley.cdo.common/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java
index 1687439..bceccd9 100644
--- a/plugins/org.eclipse.emf.parsley.cdo.common/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java
+++ b/plugins/org.eclipse.emf.parsley.cdo.common/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java
@@ -21,7 +21,6 @@
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.parsley.cdo.util.CDOURIData;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
import org.eclipse.emf.parsley.resource.LoadResourceResponse;
import org.eclipse.emf.parsley.resource.ResourceLoader;
import org.eclipse.emf.spi.cdo.CDOMergingConflictResolver;
@@ -37,7 +36,6 @@
*/
public class CDOResourceLoader extends ResourceLoader {
- @Inject private EmptyResourceInitializer emptyResourceInitializer;
@Inject private CDOSessionManager sessionManager;
private static final Logger LOGGER = Logger.getLogger(CDOResourceLoader.class);
@@ -67,7 +65,7 @@
resource = getResource(editingDomain.getResourceSet(), resourceURI);
if(resource==null){
resource = createResource(editingDomain.getResourceSet(), resourceURI);
- emptyResourceInitializer.initialize(resource);
+ getResourceManager().initialize(resource);
((CDOTransaction)((CDOResource)resource).cdoView()).commit();
}
} catch (Exception e) {
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfParsleyJavaGuiceModule.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfParsleyJavaGuiceModule.java
index 74577ea..aae0e14 100644
--- a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfParsleyJavaGuiceModule.java
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfParsleyJavaGuiceModule.java
@@ -49,8 +49,8 @@
import org.eclipse.emf.parsley.listeners.OpenDialogMouseAdapter;
import org.eclipse.emf.parsley.listeners.OpenPropertyViewMouseAdapter;
import org.eclipse.emf.parsley.menus.ViewerContextMenuFactory;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.emf.parsley.runtime.service.AbstractGenericModule;
import org.eclipse.emf.parsley.runtime.ui.ClassLoaderImageHelper;
import org.eclipse.emf.parsley.runtime.ui.IImageHelper;
@@ -426,11 +426,13 @@
}
/**
- * Use this method to customize the resource initialization.
- * @return a specification of {@link EmptyResourceInitializer}
+ * Use this method to customize tasks concerning a resource,
+ * for example, its initialization.
+ *
+ * @return a specification of {@link ResourceManager}
*/
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return EmptyResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return ResourceManager.class;
}
/**
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java
deleted file mode 100644
index f92a3cf..0000000
--- a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 RCP Vision (http://www.rcp-vision.com) and others.
- * 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:
- * Lorenzo Bettini - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.parsley.resource;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-/**
- * This is used when a loaded resource is empty, so that the programmer
- * can add default contents.
- *
- * @author Lorenzo Bettini
- *
- */
-public class EmptyResourceInitializer {
-
- public void initialize(Resource resource) {
- // the default implementation does nothing
- }
-}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java
index 6ce3408..8210f68 100644
--- a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java
@@ -18,23 +18,27 @@
import com.google.inject.Inject;
/**
- * ResourceLoader is responsible for loading the resource.
- * @author Lorenzo Bettini
+ * ResourceLoader is responsible for loading a {@link Resource}.
*
+ * @author Lorenzo Bettini
*/
public class ResourceLoader {
@Inject
- private EmptyResourceInitializer emptyResourceInitializer;
+ private ResourceManager resourceManager;
public Resource getResource(ResourceSet resourceSet, URI resourceURI) {
Resource resource = resourceSet.getResource(resourceURI, true);
if (resource.getContents().isEmpty()) {
- emptyResourceInitializer.initialize(resource);
+ resourceManager.initialize(resource);
}
return resource;
}
+ protected ResourceManager getResourceManager() {
+ return resourceManager;
+ }
+
/**
* Tries to load the resource using the resource set of the editing domain
* and returns a {@link LoadResourceResponse}.
@@ -55,7 +59,7 @@
resource = editingDomain.getResourceSet().getResource(resourceURI,
false);
if (resource != null && resource.getContents().isEmpty()) {
- emptyResourceInitializer.initialize(resource);
+ resourceManager.initialize(resource);
}
}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceManager.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceManager.java
new file mode 100644
index 0000000..c0be578
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceManager.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2015 RCP Vision (http://www.rcp-vision.com) and others.
+ * 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:
+ * Lorenzo Bettini - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.parsley.resource;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * ResourceManager is responsible for tasks concerning a {@link Resource}.
+ *
+ * @author Lorenzo Bettini - initial API and implementation
+ *
+ */
+public class ResourceManager {
+
+ /**
+ * This method is called by the framework when a loaded resource has to be
+ * initialized; subclasses can redefine it in order to put some contents in
+ * the empty resource.
+ *
+ * The default implementation is empty
+ *
+ * @param resource
+ */
+ public void initialize(Resource resource) {
+ // the default implementation does nothing
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java
index d529602..8e7dd89 100644
--- a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java
@@ -13,7 +13,7 @@
import org.eclipse.emf.parsley.binding.FormControlFactory;
import org.eclipse.emf.parsley.binding.ProposalCreator;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.emf.parsley.tests.EmfParsleyGuiceModuleWithConfigurator;
import org.eclipse.emf.parsley.tests.binding.CustomLibraryFormControlFactory;
import org.eclipse.emf.parsley.tests.binding.CustomLibraryProposalCreator;
@@ -23,7 +23,7 @@
import org.eclipse.emf.parsley.tests.labeling.CustomLibraryTableColumnLabelProvider;
import org.eclipse.emf.parsley.tests.providers.TestFeaturesProvider;
import org.eclipse.emf.parsley.tests.providers.TestTableFeaturesProvider;
-import org.eclipse.emf.parsley.tests.resource.TestEmptyLibraryResourceInitializer;
+import org.eclipse.emf.parsley.tests.resource.TestLibraryResourceManager;
import org.eclipse.emf.parsley.ui.provider.FeatureCaptionProvider;
import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
import org.eclipse.emf.parsley.ui.provider.FormFeatureCaptionProvider;
@@ -68,8 +68,8 @@
}
@Override
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return TestEmptyLibraryResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return TestLibraryResourceManager.class;
}
@Override
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestLibraryResourceManager.java
similarity index 91%
rename from tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java
rename to tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestLibraryResourceManager.java
index e035c06..fff0bf2 100644
--- a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestLibraryResourceManager.java
@@ -16,14 +16,14 @@
import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
import org.eclipse.emf.parsley.examples.library.Library;
import org.eclipse.emf.parsley.examples.library.Writer;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
/**
* @author Lorenzo Bettini
*
*/
-public class TestEmptyLibraryResourceInitializer extends
- EmptyResourceInitializer {
+public class TestLibraryResourceManager extends
+ ResourceManager {
@Override
public void initialize(Resource resource) {
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/GlobalAdapterFactoryEditingDomainModule.java b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/GlobalAdapterFactoryEditingDomainModule.java
index 42e80a7..186148c 100644
--- a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/GlobalAdapterFactoryEditingDomainModule.java
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/GlobalAdapterFactoryEditingDomainModule.java
@@ -13,15 +13,14 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.parsley.edit.domain.GlobalAdapterFactoryEditingDomainProvider;
-import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceManager;
import org.eclipse.emf.parsley.tests.models.testmodels.TestmodelsFactory;
import com.google.inject.Provider;
public class GlobalAdapterFactoryEditingDomainModule extends
EmfParsleyGuiceModuleForTesting {
- protected static class TestEmptyResourceInitializer extends
- EmptyResourceInitializer {
+ protected static class TestResourceManager extends ResourceManager {
public void initialize(Resource resource) {
resource.getContents().add(
TestmodelsFactory.eINSTANCE.createClassWithName());
@@ -34,7 +33,7 @@
}
@Override
- public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
- return TestEmptyResourceInitializer.class;
+ public Class<? extends ResourceManager> bindResourceManager() {
+ return TestResourceManager.class;
}
}
\ No newline at end of file