From 5a192f58ea089c0f9bb631c049bcb9ba41f3339b Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Tue, 9 Sep 2014 15:47:16 +0400 Subject: [PATCH] Create AbstractDiagnosticWithParametersRenderer with renderParameters method. --- ...tractDiagnosticWithParametersRenderer.java | 39 +++++++++++++++++++ ...DiagnosticWithMultiParametersRenderer.java | 11 ++---- .../DiagnosticWithParameters1Renderer.java | 11 ++---- .../DiagnosticWithParameters2Renderer.java | 13 +++---- .../DiagnosticWithParameters3Renderer.java | 13 +++---- 5 files changed, 57 insertions(+), 30 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/AbstractDiagnosticWithParametersRenderer.java diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/AbstractDiagnosticWithParametersRenderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/AbstractDiagnosticWithParametersRenderer.java new file mode 100644 index 00000000000..4ff075cf0d7 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/AbstractDiagnosticWithParametersRenderer.java @@ -0,0 +1,39 @@ +/* + * Copyright 2010-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.lang.diagnostics.rendering; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.diagnostics.Diagnostic; + +import java.text.MessageFormat; + +public abstract class AbstractDiagnosticWithParametersRenderer implements DiagnosticRenderer { + @NotNull private final MessageFormat messageFormat; + + protected AbstractDiagnosticWithParametersRenderer(@NotNull String message) { + messageFormat = new MessageFormat(message); + } + + @NotNull + @Override + public String render(@NotNull D diagnostic) { + return messageFormat.format(renderParameters(diagnostic)); + } + + @NotNull + public abstract Object[] renderParameters(@NotNull D diagnostic); +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithMultiParametersRenderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithMultiParametersRenderer.java index c001e47cf3f..4731ece3eb4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithMultiParametersRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithMultiParametersRenderer.java @@ -20,20 +20,17 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters1; import org.jetbrains.jet.renderer.MultiRenderer; -import java.text.MessageFormat; - -public class DiagnosticWithMultiParametersRenderer implements DiagnosticRenderer> { - @NotNull private final MessageFormat messageFormat; +public class DiagnosticWithMultiParametersRenderer extends AbstractDiagnosticWithParametersRenderer> { @NotNull private final MultiRenderer renderersForA; public DiagnosticWithMultiParametersRenderer(@NotNull String message, @NotNull MultiRenderer renderersForA) { - this.messageFormat = new MessageFormat(message); + super(message); this.renderersForA = renderersForA; } @NotNull @Override - public String render(@NotNull DiagnosticWithParameters1 diagnostic) { - return messageFormat.format(renderersForA.render(diagnostic.getA())); + public Object[] renderParameters(@NotNull DiagnosticWithParameters1 diagnostic) { + return renderersForA.render(diagnostic.getA()); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters1Renderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters1Renderer.java index a62834d9434..49ed8703f8c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters1Renderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters1Renderer.java @@ -21,22 +21,19 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters1; import org.jetbrains.jet.renderer.Renderer; -import java.text.MessageFormat; - import static org.jetbrains.jet.lang.diagnostics.rendering.RenderingPackage.renderParameter; -public class DiagnosticWithParameters1Renderer implements DiagnosticRenderer> { - private final MessageFormat messageFormat; +public class DiagnosticWithParameters1Renderer extends AbstractDiagnosticWithParametersRenderer> { private final Renderer rendererForA; public DiagnosticWithParameters1Renderer(@NotNull String message, @Nullable Renderer rendererForA) { - this.messageFormat = new MessageFormat(message); + super(message); this.rendererForA = rendererForA; } @NotNull @Override - public String render(@NotNull DiagnosticWithParameters1 diagnostic) { - return messageFormat.format(new Object[]{renderParameter(diagnostic.getA(), rendererForA)}); + public Object[] renderParameters(@NotNull DiagnosticWithParameters1 diagnostic) { + return new Object[]{renderParameter(diagnostic.getA(), rendererForA)}; } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters2Renderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters2Renderer.java index 8c05ee870aa..5c735937151 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters2Renderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters2Renderer.java @@ -21,26 +21,23 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters2; import org.jetbrains.jet.renderer.Renderer; -import java.text.MessageFormat; - import static org.jetbrains.jet.lang.diagnostics.rendering.RenderingPackage.renderParameter; -public class DiagnosticWithParameters2Renderer implements DiagnosticRenderer> { - private final MessageFormat messageFormat; +public class DiagnosticWithParameters2Renderer extends AbstractDiagnosticWithParametersRenderer> { private final Renderer rendererForA; private final Renderer rendererForB; public DiagnosticWithParameters2Renderer(@NotNull String message, @Nullable Renderer rendererForA, @Nullable Renderer rendererForB) { - this.messageFormat = new MessageFormat(message); + super(message); this.rendererForA = rendererForA; this.rendererForB = rendererForB; } @NotNull @Override - public String render(@NotNull DiagnosticWithParameters2 diagnostic) { - return messageFormat.format(new Object[]{ + public Object[] renderParameters(@NotNull DiagnosticWithParameters2 diagnostic) { + return new Object[]{ renderParameter(diagnostic.getA(), rendererForA), - renderParameter(diagnostic.getB(), rendererForB)}); + renderParameter(diagnostic.getB(), rendererForB)}; } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters3Renderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters3Renderer.java index 8f7921457a9..26b4b247873 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters3Renderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters3Renderer.java @@ -21,12 +21,9 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithParameters3; import org.jetbrains.jet.renderer.Renderer; -import java.text.MessageFormat; - import static org.jetbrains.jet.lang.diagnostics.rendering.RenderingPackage.renderParameter; -public class DiagnosticWithParameters3Renderer implements DiagnosticRenderer> { - private final MessageFormat messageFormat; +public class DiagnosticWithParameters3Renderer extends AbstractDiagnosticWithParametersRenderer> { private final Renderer rendererForA; private final Renderer rendererForB; private final Renderer rendererForC; @@ -35,7 +32,7 @@ public class DiagnosticWithParameters3Renderer implements DiagnosticRen @Nullable Renderer rendererForA, @Nullable Renderer rendererForB, @Nullable Renderer rendererForC) { - this.messageFormat = new MessageFormat(message); + super(message); this.rendererForA = rendererForA; this.rendererForB = rendererForB; this.rendererForC = rendererForC; @@ -43,10 +40,10 @@ public class DiagnosticWithParameters3Renderer implements DiagnosticRen @NotNull @Override - public String render(@NotNull DiagnosticWithParameters3 diagnostic) { - return messageFormat.format(new Object[]{ + public Object[] renderParameters(@NotNull DiagnosticWithParameters3 diagnostic) { + return new Object[]{ renderParameter(diagnostic.getA(), rendererForA), renderParameter(diagnostic.getB(), rendererForB), - renderParameter(diagnostic.getC(), rendererForC)}); + renderParameter(diagnostic.getC(), rendererForC)}; } }