From 2f545688eb6f7858f6750417bcee455ba0bc945e Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 13 Dec 2012 22:33:00 +0400 Subject: [PATCH] Organized methods in DescriptorRendererImpl. --- .../jet/renderer/DescriptorRendererImpl.java | 152 +++++++++--------- 1 file changed, 80 insertions(+), 72 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java index 84d05c2150d..bc4fbd8ed7a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java @@ -76,6 +76,8 @@ public class DescriptorRendererImpl implements DescriptorRenderer { this.textFormat = textFormat; } + + /* FORMATTING */ private String renderKeyword(String keyword) { switch (textFormat) { case PLAIN: @@ -86,16 +88,47 @@ public class DescriptorRendererImpl implements DescriptorRenderer { throw new IllegalStateException("Unexpected textFormat: " + textFormat); } + private String escape(String s) { + switch (textFormat) { + case PLAIN: + return s; + case HTML: + return s.replaceAll("<", "<").replaceAll(">", ">"); + } + throw new IllegalStateException("Unexpected textFormat: " + textFormat); + } + + private String lt() { + return escape("<"); + } + + private String renderMessage(String message) { + switch (textFormat) { + case PLAIN: + return message; + case HTML: + return "" + message + ""; + } + throw new IllegalStateException("Unexpected textFormat: " + textFormat); + } + + + /* NAMES RENDERING */ private String renderName(Name identifier) { String asString = identifier.toString(); return escape(KEYWORDS.contains(asString) ? '`' + asString + '`' : asString); } + private void renderName(DeclarationDescriptor descriptor, StringBuilder stringBuilder) { + stringBuilder.append(renderName(descriptor.getName())); + } + @NotNull private String renderFqName(@NotNull FqNameUnsafe fqName) { return renderFqName(fqName.pathSegments()); } + @NotNull private String renderFqName(@NotNull List pathSegments) { StringBuilder buf = new StringBuilder(); @@ -108,6 +141,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { return buf.toString(); } + /* TYPES RENDERING */ @Override public String renderType(JetType type) { if (type == null) { @@ -185,6 +219,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } } + private String renderFunctionType(JetType type) { StringBuilder sb = new StringBuilder(); @@ -205,39 +240,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer { return sb.toString(); } - private String escape(String s) { - switch (textFormat) { - case PLAIN: - return s; - case HTML: - return s.replaceAll("<", "<").replaceAll(">", ">"); - } - throw new IllegalStateException("Unexpected textFormat: " + textFormat); - } - - private String lt() { - return escape("<"); - } - - @NotNull - @Override - public String render(@NotNull DeclarationDescriptor declarationDescriptor) { - StringBuilder stringBuilder = new StringBuilder(); - declarationDescriptor.accept(rootVisitor, stringBuilder); - - if (withDefinedIn) { - appendDefinedIn(declarationDescriptor, stringBuilder); - } - return stringBuilder.toString(); - } - - @Override - public String renderFunctionParameters(@NotNull FunctionDescriptor functionDescriptor) { - StringBuilder stringBuilder = new StringBuilder(); - renderValueParameters(functionDescriptor, stringBuilder); - return stringBuilder.toString(); - } - + /* COMMON DESCRIPTORS RENDERING */ private void appendDefinedIn(DeclarationDescriptor declarationDescriptor, StringBuilder stringBuilder) { if (declarationDescriptor instanceof ModuleDescriptor) { stringBuilder.append(" is a module"); @@ -252,14 +255,51 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } } - private String renderMessage(String message) { - switch (textFormat) { - case PLAIN: - return message; - case HTML: - return "" + message + ""; + private void renderVisibility(Visibility visibility, StringBuilder builder) { + if (!modifiers) return; + if ("package".equals(visibility.toString())) { + builder.append("public/*package*/ "); } - throw new IllegalStateException("Unexpected textFormat: " + textFormat); + else { + builder.append(renderKeyword(visibility.toString())).append(" "); + } + } + + private void renderModality(Modality modality, StringBuilder builder) { + if (!modifiers) return; + String keyword = ""; + switch (modality) { + case FINAL: + keyword = "final"; + break; + case OPEN: + keyword = "open"; + break; + case ABSTRACT: + keyword = "abstract"; + break; + } + builder.append(renderKeyword(keyword)).append(" "); + } + + @NotNull + @Override + public String render(@NotNull DeclarationDescriptor declarationDescriptor) { + StringBuilder stringBuilder = new StringBuilder(); + declarationDescriptor.accept(rootVisitor, stringBuilder); + + if (withDefinedIn) { + appendDefinedIn(declarationDescriptor, stringBuilder); + } + return stringBuilder.toString(); + } + + /* FUNCTION DESCRIPTORS */ + @Override + public String renderFunctionParameters(@NotNull FunctionDescriptor functionDescriptor) { + StringBuilder stringBuilder = new StringBuilder(); + renderValueParameters(functionDescriptor, stringBuilder); + return stringBuilder.toString(); } private void renderValueParameters(FunctionDescriptor function, StringBuilder builder) { @@ -283,7 +323,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { builder.append(")"); } } - private void renderValueParameterOfFunction(ValueParameterDescriptor descriptor, StringBuilder builder) { rootVisitor.visitVariableDescriptor(descriptor, builder, true); boolean withDefaultValue = debugMode ? descriptor.declaresDefaultValue() : descriptor.hasDefaultValue(); @@ -365,33 +404,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { return null; } - private void renderVisibility(Visibility visibility, StringBuilder builder) { - if (!modifiers) return; - if ("package".equals(visibility.toString())) { - builder.append("public/*package*/ "); - } - else { - builder.append(renderKeyword(visibility.toString())).append(" "); - } - } - - private void renderModality(Modality modality, StringBuilder builder) { - if (!modifiers) return; - String keyword = ""; - switch (modality) { - case FINAL: - keyword = "final"; - break; - case OPEN: - keyword = "open"; - break; - case ABSTRACT: - keyword = "abstract"; - break; - } - builder.append(renderKeyword(keyword)).append(" "); - } - @Override public Void visitFunctionDescriptor(FunctionDescriptor descriptor, StringBuilder builder) { if (!startFromName) { @@ -560,10 +572,6 @@ public class DescriptorRendererImpl implements DescriptorRenderer { } } - private void renderName(DeclarationDescriptor descriptor, StringBuilder stringBuilder) { - stringBuilder.append(escape(DescriptorRendererImpl.this.renderName(descriptor.getName()))); - } - private void renderTypeParameter(TypeParameterDescriptor descriptor, StringBuilder builder, boolean topLevel) { if (!descriptor.isReified()) { String variance = descriptor.getVariance().toString();