diff options
author | Miles Parker | 2013-06-12 22:39:57 +0000 |
---|---|---|
committer | Miles Parker | 2013-06-17 17:20:01 +0000 |
commit | 9da316592e757ab7c492bd4d22336cc33cefde13 (patch) | |
tree | 36da67c3d6615be010381fb040a6de81f50dfc29 /org.eclipse.mylyn.reviews.edit | |
parent | f6e6527b8d11ce343c99eaf01f86ce983521bae9 (diff) | |
download | org.eclipse.mylyn.reviews-9da316592e757ab7c492bd4d22336cc33cefde13.tar.gz org.eclipse.mylyn.reviews-9da316592e757ab7c492bd4d22336cc33cefde13.tar.xz org.eclipse.mylyn.reviews-9da316592e757ab7c492bd4d22336cc33cefde13.zip |
409427: [model] replace xml persitence with binary
Change-Id: Id7e99000aa75bbd90e5284969739fd8407d08e4e
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=409427
Diffstat (limited to 'org.eclipse.mylyn.reviews.edit')
-rw-r--r-- | org.eclipse.mylyn.reviews.edit/src/org/eclipse/mylyn/reviews/spi/edit/remote/AbstractRemoteEditFactoryProvider.java | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/org.eclipse.mylyn.reviews.edit/src/org/eclipse/mylyn/reviews/spi/edit/remote/AbstractRemoteEditFactoryProvider.java b/org.eclipse.mylyn.reviews.edit/src/org/eclipse/mylyn/reviews/spi/edit/remote/AbstractRemoteEditFactoryProvider.java index 1c03b669d..d35ee795a 100644 --- a/org.eclipse.mylyn.reviews.edit/src/org/eclipse/mylyn/reviews/spi/edit/remote/AbstractRemoteEditFactoryProvider.java +++ b/org.eclipse.mylyn.reviews.edit/src/org/eclipse/mylyn/reviews/spi/edit/remote/AbstractRemoteEditFactoryProvider.java @@ -33,7 +33,6 @@ import org.eclipse.emf.ecore.EFactory; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; @@ -43,6 +42,7 @@ import org.eclipse.mylyn.reviews.core.spi.remote.AbstractDataLocator; import org.eclipse.mylyn.reviews.core.spi.remote.emf.AbstractRemoteEmfFactoryProvider; import org.eclipse.mylyn.reviews.edit.ReviewsEditPluginActivator; import org.eclipse.mylyn.reviews.edit.provider.ReviewsItemProviderAdapterFactory; +import org.eclipse.mylyn.reviews.internal.core.model.ReviewsResourceFactory; /** * Supports decoupling of Reviews from remote API as well as job management. @@ -76,6 +76,9 @@ public abstract class AbstractRemoteEditFactoryProvider<ERootObject extends EObj this.parentReference = parentReference; this.localKeyAttribute = localKeyAttribute; this.childType = childType; + + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("reviews", new ReviewsResourceFactory()); + ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory( ComposedAdapterFactory.Descriptor.Registry.INSTANCE); @@ -84,12 +87,6 @@ public abstract class AbstractRemoteEditFactoryProvider<ERootObject extends EObj BasicCommandStack commandStack = new BasicCommandStack(); editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>()); - - Map<Object, Object> loadOptions = editingDomain.getResourceSet().getLoadOptions(); - loadOptions.put(XMLResource.OPTION_DEFER_ATTACHMENT, Boolean.TRUE); - loadOptions.put(XMLResource.OPTION_DEFER_IDREF_RESOLUTION, Boolean.TRUE); - loadOptions.put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.TRUE); - loadOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ } public EClass getRootClass() { @@ -99,6 +96,13 @@ public abstract class AbstractRemoteEditFactoryProvider<ERootObject extends EObj @Override public ERootObject open() { if (rootObject == null) { + IPath oldContainerPath = getDataLocator().getModelPath() + .append(getContainerSegment()) + .append(getContainerSegment()); + + rootObject = (ERootObject) open(getRootClass(), getRootClass().getName()); + clearChildren(); + rootObject = (ERootObject) open(getRootClass(), getRootClass().getName()); clearChildren(); } @@ -282,9 +286,6 @@ public abstract class AbstractRemoteEditFactoryProvider<ERootObject extends EObj } final Map<Object, Object> saveOptions = new HashMap<Object, Object>(); saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); - if (resource instanceof XMLResource) { - saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ - } try { resource.save(saveOptions); } catch (IOException e) { @@ -293,12 +294,12 @@ public abstract class AbstractRemoteEditFactoryProvider<ERootObject extends EObj } /** - * WARNING: Recursively deletes directory specified by {@link AbstractDataLocator#getSystemPath()}. Ensure that that + * WARNING: Recursively deletes directory specified by {@link AbstractDataLocator#getModelPath()}. Ensure that that * directory isn't used by any other resources! */ public void deleteCache() { close(); - IPath systemPath = getDataLocator().getSystemPath(); + IPath systemPath = getDataLocator().getModelPath(); File file = new File(systemPath.toOSString()); if (file.exists()) { try { |