Introduced DescriptorRendererBuilder.

Hid constructor of DescriptorRendererImpl.
This commit is contained in:
Evgeny Gerashchenko
2012-12-13 22:08:23 +04:00
parent 1cfc5f366e
commit 79cf8e60b8
5 changed files with 105 additions and 14 deletions
@@ -24,13 +24,24 @@ import org.jetbrains.jet.lang.diagnostics.rendering.Renderer;
import org.jetbrains.jet.lang.types.JetType;
public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererImpl(false, false, true, false, false, null, TextFormat.PLAIN);
DescriptorRenderer COMPACT = new DescriptorRendererImpl(false, false, false, false, false, null, TextFormat.PLAIN);
DescriptorRenderer STARTS_FROM_NAME = new DescriptorRendererImpl(false, false, false, true, false, null, TextFormat.PLAIN);
DescriptorRenderer TEXT = new DescriptorRendererImpl(false, true, true, false, false, null, TextFormat.PLAIN);
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererImpl(true, true, true, false, false, null, TextFormat.PLAIN);
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererImpl(false, true, true, false, true, null, TextFormat.PLAIN);
DescriptorRenderer HTML = new DescriptorRendererImpl(false, true, true, false, false, null, TextFormat.HTML);
DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder().setWithDefinedIn(false).build();
DescriptorRenderer COMPACT = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers(false).build();
DescriptorRenderer STARTS_FROM_NAME = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers(false)
.setStartFromName(true).build();
DescriptorRenderer TEXT = new DescriptorRendererBuilder().build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder().setShortNames(true).build();
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder().setDebugMode(true).build();
DescriptorRenderer HTML = new DescriptorRendererBuilder().setTextFormat(TextFormat.HTML).build();
String renderType(JetType type);
@@ -0,0 +1,74 @@
/*
* 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.renderer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class DescriptorRendererBuilder {
private boolean shortNames = false;
private boolean withDefinedIn = true;
private boolean modifiers = true;
private boolean startFromName = false;
private boolean debugMode = false;
@Nullable
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = null;
@NotNull
private DescriptorRenderer.TextFormat textFormat = DescriptorRenderer.TextFormat.PLAIN;
public DescriptorRendererBuilder() {
}
public DescriptorRendererBuilder setShortNames(boolean shortNames) {
this.shortNames = shortNames;
return this;
}
public DescriptorRendererBuilder setWithDefinedIn(boolean withDefinedIn) {
this.withDefinedIn = withDefinedIn;
return this;
}
public DescriptorRendererBuilder setModifiers(boolean modifiers) {
this.modifiers = modifiers;
return this;
}
public DescriptorRendererBuilder setStartFromName(boolean startFromName) {
this.startFromName = startFromName;
return this;
}
public DescriptorRendererBuilder setDebugMode(boolean debugMode) {
this.debugMode = debugMode;
return this;
}
public DescriptorRendererBuilder setValueParametersHandler(@Nullable DescriptorRenderer.ValueParametersHandler valueParametersHandler) {
this.valueParametersHandler = valueParametersHandler;
return this;
}
public DescriptorRendererBuilder setTextFormat(@NotNull DescriptorRenderer.TextFormat textFormat) {
this.textFormat = textFormat;
return this;
}
public DescriptorRenderer build() {
return new DescriptorRendererImpl(shortNames, withDefinedIn, modifiers, startFromName, debugMode, valueParametersHandler, textFormat);
}
}
@@ -75,7 +75,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
@NotNull
private final TextFormat textFormat;
public DescriptorRendererImpl(
/* package */ DescriptorRendererImpl(
boolean shortNames,
boolean withDefinedIn,
boolean modifiers,
@@ -42,6 +42,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.plugin.JetBundle;
import org.jetbrains.jet.plugin.JetIcons;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
import org.jetbrains.jet.renderer.DescriptorRendererImpl;
import javax.swing.*;
@@ -53,8 +54,10 @@ import static org.jetbrains.jet.plugin.codeInsight.ktSignature.KotlinSignatureUt
* @since 16 Aug 2012
*/
public class AddKotlinSignatureAnnotation extends BaseIntentionAction implements Iconable {
private static final DescriptorRenderer RENDERER = new DescriptorRendererImpl(true, false, false, false, false, null,
DescriptorRenderer.TextFormat.PLAIN);
private static final DescriptorRenderer RENDERER = new DescriptorRendererBuilder()
.setShortNames(true)
.setModifiers(false)
.setWithDefinedIn(false).build();
public AddKotlinSignatureAnnotation() {
setText(JetBundle.message("add.kotlin.signature.action.text"));
@@ -28,7 +28,7 @@ import org.jetbrains.jet.lang.diagnostics.rendering.TabledDescriptorRenderer.Tab
import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintPosition;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import org.jetbrains.jet.renderer.DescriptorRendererImpl;
import org.jetbrains.jet.renderer.DescriptorRendererBuilder;
import java.util.Iterator;
import java.util.List;
@@ -152,7 +152,7 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer {
super();
}
public static final DescriptorRenderer.ValueParametersHandler RENDERER_HANDLER = new DescriptorRenderer.ValueParametersHandler() {
private static final DescriptorRenderer.ValueParametersHandler VALUE_PARAMETERS_HANDLER = new DescriptorRenderer.ValueParametersHandler() {
@Override
public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
stringBuilder.append("<td align=\"right\"><div style=\"white-space:nowrap;font-weight:bold;\">");
@@ -187,8 +187,11 @@ public class HtmlTabledDescriptorRenderer extends TabledDescriptorRenderer {
}
};
public static final DescriptorRenderer DESCRIPTOR_IN_TABLE =
new DescriptorRendererImpl(false, false, false, false, false, RENDERER_HANDLER, DescriptorRenderer.TextFormat.HTML);
public static final DescriptorRenderer DESCRIPTOR_IN_TABLE = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers(false)
.setValueParametersHandler(VALUE_PARAMETERS_HANDLER)
.setTextFormat(DescriptorRenderer.TextFormat.HTML).build();
private static void td(StringBuilder builder, String text) {
builder.append("<td><div style=\"white-space:nowrap;\">").append(text).append("</div></td>");