From f64ec9ad25dcf8fbaccc21a076e6c2860c60fd20 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 1 Sep 2014 10:31:53 +0200 Subject: [PATCH] =?UTF-8?q?simplify=20StreamProvider.saveContent=20?= =?UTF-8?q?=E2=80=94=20we=20don't=20user=20returned=20value=20in=20any=20c?= =?UTF-8?q?ase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/stores/OldStreamProviderAdapter.java | 3 +- .../impl/stores/StateStorageManagerImpl.java | 11 ++----- .../components/impl/stores/StorageUtil.java | 11 +++---- .../impl/stores/StreamProvider.java | 2 +- .../impl/stores/XmlElementStorage.java | 32 ++++++++----------- 5 files changed, 24 insertions(+), 35 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/OldStreamProviderAdapter.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/OldStreamProviderAdapter.java index 2120030db2c1..709256880059 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/OldStreamProviderAdapter.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/OldStreamProviderAdapter.java @@ -32,9 +32,8 @@ final class OldStreamProviderAdapter extends StreamProvider implements CurrentUs } @Override - public boolean saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException { + public void saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException { myProvider.saveContent(fileSpec, new BufferExposingByteArrayInputStream(content, size), size, roamingType, async); - return false; } @Nullable diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java index 431c9a97820c..df53261ccc03 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StateStorageManagerImpl.java @@ -575,22 +575,17 @@ public abstract class StateStorageManagerImpl implements StateStorageManager, Di } @Override - public boolean saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException { - boolean result = false; + public void saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException { for (StreamProvider streamProvider : myStreamProviders) { try { - if (streamProvider.isEnabled() && streamProvider.isApplicable(fileSpec, roamingType) && streamProvider.saveContent(fileSpec, content, size, roamingType, async)) { - result = true; + if (streamProvider.isEnabled() && streamProvider.isApplicable(fileSpec, roamingType)) { + streamProvider.saveContent(fileSpec, content, size, roamingType, async); } } - catch (ConnectException e) { - LOG.debug("Cannot send user profile to server: " + e.getLocalizedMessage()); - } catch (Exception e) { LOG.debug(e); } } - return result; } @Override diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java index 2f6a3460eb7a..8bf8d9bf6b44 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StorageUtil.java @@ -274,17 +274,16 @@ public class StorageUtil { return writeToBytes(document, useSystemLineSeparator ? SystemProperties.getLineSeparator() : "\n"); } - public static boolean sendContent(@NotNull StreamProvider provider, @NotNull String fileSpec, @NotNull Document copy, @NotNull RoamingType type, boolean async) { + public static void sendContent(@NotNull StreamProvider provider, @NotNull String fileSpec, @NotNull Document copy, @NotNull RoamingType type, boolean async) { if (!provider.isApplicable(fileSpec, type)) { - return false; + return; } try { - return doSendContent(provider, fileSpec, copy, type, async); + doSendContent(provider, fileSpec, copy, type, async); } catch (IOException e) { LOG.warn(e); - return false; } } @@ -297,10 +296,10 @@ public class StorageUtil { /** * You must call {@link StreamProvider#isApplicable(String, com.intellij.openapi.components.RoamingType)} before */ - public static boolean doSendContent(StreamProvider provider, String fileSpec, Document copy, RoamingType type, boolean async) throws IOException { + public static void doSendContent(StreamProvider provider, String fileSpec, Document copy, RoamingType type, boolean async) throws IOException { // we should use standard line-separator (\n) - stream provider can share file content on any OS BufferExposingByteArrayOutputStream content = documentToBytes(copy, false); - return provider.saveContent(fileSpec, content.getInternalBuffer(), content.size(), type, async); + provider.saveContent(fileSpec, content.getInternalBuffer(), content.size(), type, async); } public static void logStateDiffInfo(Set> changedFiles, Set componentNames) { diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StreamProvider.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StreamProvider.java index ec57d8c63601..0bacfc535af0 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StreamProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/StreamProvider.java @@ -37,7 +37,7 @@ public abstract class StreamProvider { * @param roamingType * @param async */ - public abstract boolean saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException; + public abstract void saveContent(@NotNull String fileSpec, @NotNull byte[] content, int size, @NotNull RoamingType roamingType, boolean async) throws IOException; @Nullable public abstract InputStream loadContent(@NotNull String fileSpec, @NotNull RoamingType roamingType) throws IOException; diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java index b028676168d5..52f7ae7bda47 100644 --- a/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java +++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/stores/XmlElementStorage.java @@ -382,11 +382,7 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { try { if (myStreamProvider != null && myStreamProvider.isEnabled() && (myProviderUpToDateHash == -1 || myProviderUpToDateHash != hash)) { try { - //noinspection IfStatementWithIdenticalBranches - if (saveForProvider(myStreamProvider)) { - //noinspection UnnecessaryReturnStatement - return; - } + saveForProvider(myStreamProvider); } finally { myProviderUpToDateHash = hash; @@ -409,15 +405,15 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { } } - private boolean saveForProvider(@NotNull StreamProvider streamProvider) { + private void saveForProvider(@NotNull StreamProvider streamProvider) { if (!streamProvider.isApplicable(myFileSpec, RoamingType.PER_USER)) { - return false; + return; } Document document = getDocumentToSave(); Element rootElement = document.getRootElement(); if (rootElement.getChildren().isEmpty()) { - return false; + return; } // skip the whole document if some component has disabled roaming type @@ -427,27 +423,29 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { // but this project id must not be shared if (!myFileSpec.equals(StoragePathMacros.WORKSPACE_FILE) && rootElement.getContent(new RoamingElementFilter(RoamingType.DISABLED)).iterator().hasNext()) { - return false; + return; } RoamingElementFilter perPlatformFilter = new RoamingElementFilter(RoamingType.PER_PLATFORM); if (rootElement.getContent(perPlatformFilter).iterator().hasNext()) { - return doSaveForProvider(rootElement, new RoamingElementFilter(RoamingType.PER_USER)) || - doSaveForProvider(rootElement, perPlatformFilter); + doSaveForProvider(rootElement, new RoamingElementFilter(RoamingType.PER_USER)); + doSaveForProvider(rootElement, perPlatformFilter); } else { - return doSaveForProvider(document, RoamingType.PER_USER, streamProvider); + doSaveForProvider(document, RoamingType.PER_USER, streamProvider); } } - private boolean doSaveForProvider(Element element, RoamingElementFilter filter) { + private void doSaveForProvider(Element element, RoamingElementFilter filter) { Element copiedElement = JDOMUtil.cloneElement(element, filter); - return copiedElement != null && doSaveForProvider(new Document(copiedElement), filter.myRoamingType, myStreamProvider); + if (copiedElement != null) { + doSaveForProvider(new Document(copiedElement), filter.myRoamingType, myStreamProvider); + } } - private boolean doSaveForProvider(Document actualDocument, RoamingType roamingType, StreamProvider streamProvider) { + private void doSaveForProvider(Document actualDocument, RoamingType roamingType, StreamProvider streamProvider) { try { - boolean result = StorageUtil.doSendContent(streamProvider, myFileSpec, actualDocument, roamingType, true); + StorageUtil.doSendContent(streamProvider, myFileSpec, actualDocument, roamingType, true); if (streamProvider.isVersioningRequired()) { TObjectLongHashMap versions = loadVersions(actualDocument.getRootElement().getChildren(StorageData.COMPONENT)); if (!versions.isEmpty()) { @@ -455,11 +453,9 @@ public abstract class XmlElementStorage implements StateStorage, Disposable { StorageUtil.doSendContent(streamProvider, myFileSpec + VERSION_FILE_SUFFIX, versionDoc, roamingType, true); } } - return result; } catch (IOException e) { LOG.warn(e); - return false; } }