diff --git a/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java b/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java index d8edc9c425a2..bc1d598a3145 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java +++ b/java/idea-ui/src/com/intellij/platform/templates/ArchivedProjectTemplate.java @@ -109,11 +109,11 @@ public abstract class ArchivedProjectTemplate implements ProjectTemplate { return null; } - public static abstract class StreamConsumer { + public static abstract class StreamProcessor { public abstract T consume(@NotNull ZipInputStream stream) throws IOException; } - public abstract void getStream(@NotNull StreamConsumer consumer) throws IOException; + public abstract T processStream(@NotNull StreamProcessor consumer) throws IOException; @Nullable public String getCategory() { @@ -137,9 +137,9 @@ public abstract class ArchivedProjectTemplate implements ProjectTemplate { }); } - static void consumeZipStream(@NotNull StreamConsumer consumer, @NotNull ZipInputStream stream) throws IOException { + static T consumeZipStream(@NotNull StreamProcessor consumer, @NotNull ZipInputStream stream) throws IOException { try { - consumer.consume(stream); + return consumer.consume(stream); } finally { StreamUtil.closeStream(stream); diff --git a/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java b/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java index d0b4d540fa0b..09916d08ca55 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java +++ b/java/idea-ui/src/com/intellij/platform/templates/LocalArchivedTemplate.java @@ -87,7 +87,7 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { @Nullable String readEntry(@NotNull final String endsWith) { try { - getStream(new StreamConsumer() { + return processStream(new StreamProcessor() { @Override public String consume(@NotNull ZipInputStream stream) throws IOException { ZipEntry entry; @@ -101,8 +101,8 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { }); } catch (IOException ignored) { + return null; } - return null; } @NotNull @@ -125,8 +125,8 @@ public class LocalArchivedTemplate extends ArchivedProjectTemplate { } @Override - public void getStream(@NotNull StreamConsumer consumer) throws IOException { - consumeZipStream(consumer, new ZipInputStream(myArchivePath.openStream())); + public T processStream(@NotNull StreamProcessor consumer) throws IOException { + return consumeZipStream(consumer, new ZipInputStream(myArchivePath.openStream())); } public URL getArchivePath() { diff --git a/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java b/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java index 9a2d7dcd2658..c7365ab04685 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java +++ b/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java @@ -163,12 +163,11 @@ public class RemoteTemplatesFactory extends ProjectTemplatesFactory { } @Override - public void getStream(@NotNull final StreamConsumer consumer) throws IOException { - HttpRequests.request(URL + myPath).connect(new HttpRequests.RequestProcessor() { + public T processStream(@NotNull final StreamProcessor consumer) throws IOException { + return HttpRequests.request(URL + myPath).connect(new HttpRequests.RequestProcessor() { @Override - public Void process(@NotNull HttpRequests.Request request) throws IOException { - consumeZipStream(consumer, new ZipInputStream(request.getInputStream())); - return null; + public T process(@NotNull HttpRequests.Request request) throws IOException { + return consumeZipStream(consumer, new ZipInputStream(request.getInputStream())); } }); } diff --git a/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java b/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java index 475cf4e42c05..96f05cd00c6f 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java +++ b/java/idea-ui/src/com/intellij/platform/templates/TemplateModuleBuilder.java @@ -214,7 +214,7 @@ public class TemplateModuleBuilder extends ModuleBuilder { }; final File dir = new File(path); - myTemplate.getStream(new ArchivedProjectTemplate.StreamConsumer() { + myTemplate.processStream(new ArchivedProjectTemplate.StreamProcessor() { @Override public Void consume(@NotNull ZipInputStream stream) throws IOException { ZipUtil.unzip(ProgressManager.getInstance().getProgressIndicator(), dir, stream, pathConvertor, new ZipUtil.ContentProcessor() {