Organized methods in DescriptorRendererImpl.
This commit is contained in:
@@ -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 "<i>" + message + "</i>";
|
||||
}
|
||||
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<Name> 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 "<i>" + message + "</i>";
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user