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 new file mode 100644 index 00000000000..758626891bb --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters2Renderer.java @@ -0,0 +1,47 @@ +/* + * Copyright 2010-2012 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.DiagnosticWithParameters2; +import org.jetbrains.jet.lang.diagnostics.Renderer; + +import java.text.MessageFormat; + +/** +* @author Evgeny Gerashchenko +* @since 4/12/12 +*/ +public class DiagnosticWithParameters2Renderer implements DiagnosticRenderer> { + private final MessageFormat messageFormat; + private final Renderer rendererForA; + private final Renderer rendererForB; + + public DiagnosticWithParameters2Renderer(@NotNull String message, @NotNull Renderer rendererForA, @NotNull Renderer rendererForB) { + this.messageFormat = new MessageFormat(message); + this.rendererForA = rendererForA; + this.rendererForB = rendererForB; + } + + @NotNull + @Override + public String render(@NotNull DiagnosticWithParameters2 diagnostic) { + return messageFormat.format(new Object[]{ + rendererForA.render(diagnostic.getA()), + rendererForB.render(diagnostic.getB())}); + } +} 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 new file mode 100644 index 00000000000..b18385e6fc8 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/DiagnosticWithParameters3Renderer.java @@ -0,0 +1,53 @@ +/* + * Copyright 2010-2012 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.DiagnosticWithParameters3; +import org.jetbrains.jet.lang.diagnostics.Renderer; + +import java.text.MessageFormat; + +/** +* @author Evgeny Gerashchenko +* @since 4/12/12 +*/ +public class DiagnosticWithParameters3Renderer implements DiagnosticRenderer> { + private final MessageFormat messageFormat; + private final Renderer rendererForA; + private final Renderer rendererForB; + private final Renderer rendererForC; + + public DiagnosticWithParameters3Renderer(@NotNull String message, + @NotNull Renderer rendererForA, + @NotNull Renderer rendererForB, + @NotNull Renderer rendererForC) { + this.messageFormat = new MessageFormat(message); + this.rendererForA = rendererForA; + this.rendererForB = rendererForB; + this.rendererForC = rendererForC; + } + + @NotNull + @Override + public String render(@NotNull DiagnosticWithParameters3 diagnostic) { + return messageFormat.format(new Object[]{ + rendererForA.render(diagnostic.getA()), + rendererForB.render(diagnostic.getB()), + rendererForC.render(diagnostic.getC())}); + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/SimpleDiagnosticRenderer.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/SimpleDiagnosticRenderer.java new file mode 100644 index 00000000000..0dd094f89f3 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/rendering/SimpleDiagnosticRenderer.java @@ -0,0 +1,38 @@ +/* + * Copyright 2010-2012 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; + +/** +* @author Evgeny Gerashchenko +* @since 4/12/12 +*/ +public class SimpleDiagnosticRenderer implements DiagnosticRenderer { + private final String message; + + public SimpleDiagnosticRenderer(@NotNull String message) { + this.message = message; + } + + @NotNull + @Override + public String render(@NotNull Diagnostic diagnostic) { + return message; + } +}