Added COMPACT descriptor renderer (without "defined in ...")

This commit is contained in:
Evgeny Gerashchenko
2012-03-01 20:02:30 +04:00
parent 16f4ec70e9
commit 688fad7f8f
@@ -37,6 +37,13 @@ import java.util.List;
*/
public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
public static final DescriptorRenderer COMPACT = new DescriptorRenderer() {
@Override
protected boolean shouldRenderDefinedIn() {
return false;
}
};
public static final DescriptorRenderer TEXT = new DescriptorRenderer();
public static final DescriptorRenderer HTML = new DescriptorRenderer() {
@@ -182,10 +189,16 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
if (declarationDescriptor == null) return lt() + "null>";
StringBuilder stringBuilder = new StringBuilder();
declarationDescriptor.accept(rootVisitor, stringBuilder);
appendDefinedIn(declarationDescriptor, stringBuilder);
if (shouldRenderDefinedIn()) {
appendDefinedIn(declarationDescriptor, stringBuilder);
}
return stringBuilder.toString();
}
protected boolean shouldRenderDefinedIn() {
return true;
}
private void appendDefinedIn(DeclarationDescriptor declarationDescriptor, StringBuilder stringBuilder) {
stringBuilder.append(" ").append(renderMessage("defined in")).append(" ");
@@ -198,7 +211,9 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
public String renderAsObject(@NotNull ClassDescriptor classDescriptor) {
StringBuilder stringBuilder = new StringBuilder();
rootVisitor.renderClassDescriptor(classDescriptor, stringBuilder, "object");
appendDefinedIn(classDescriptor, stringBuilder);
if (shouldRenderDefinedIn()) {
appendDefinedIn(classDescriptor, stringBuilder);
}
return stringBuilder.toString();
}
@@ -341,8 +356,7 @@ public class DescriptorRenderer implements Renderer<DeclarationDescriptor> {
builder.append(", ");
}
}
builder.append("> ");
return true;
builder.append(">");
}
return false;
}