Converted DescriptorRenderer, DescriptorRendererImpl and DescriptorRedererBuilder to Kotlin

This commit is contained in:
Valentin Kipyatkov
2015-06-05 12:56:43 +03:00
parent 855715cc5c
commit ce2ce44d7b
6 changed files with 1420 additions and 1640 deletions
@@ -1,180 +0,0 @@
/*
* Copyright 2010-2015 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.kotlin.renderer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor;
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor;
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.kotlin.name.FqNameBase;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.types.JetType;
import org.jetbrains.kotlin.types.TypeProjection;
import java.util.List;
public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
DescriptorRenderer COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder().setWithDefinedIn(false).build();
DescriptorRenderer COMPACT = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers().build();
DescriptorRenderer COMPACT_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED).build();
DescriptorRenderer STARTS_FROM_NAME = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setStartFromName(true).build();
DescriptorRenderer ONLY_NAMES_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setWithoutTypeParameters(true)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
.setReceiverAfterName(true)
.setRenderCompanionObjectName(true)
.setWithoutSuperTypes(true)
.setStartFromName(true).build();
DescriptorRenderer FQ_NAMES_IN_TYPES = new DescriptorRendererBuilder().build();
DescriptorRenderer SHORT_NAMES_IN_TYPES = new DescriptorRendererBuilder()
.setNameShortness(NameShortness.SHORT)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED)
.build();
DescriptorRenderer DEBUG_TEXT = new DescriptorRendererBuilder()
.setDebugMode(true)
.setNameShortness(NameShortness.FULLY_QUALIFIED)
.build();
DescriptorRenderer FLEXIBLE_TYPES_FOR_CODE = new DescriptorRendererBuilder()
.setFlexibleTypesForCode(true)
.build();
DescriptorRenderer HTML_COMPACT_WITH_MODIFIERS = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setTextFormat(TextFormat.HTML).build();
DescriptorRenderer HTML_NAMES_WITH_SHORT_TYPES = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setNameShortness(NameShortness.SHORT)
.setRenderCompanionObjectName(true)
.setTextFormat(TextFormat.HTML).build();
DescriptorRenderer HTML = new DescriptorRendererBuilder().setTextFormat(TextFormat.HTML).build();
DescriptorRenderer HTML_FOR_UNINFERRED_TYPE_PARAMS = new DescriptorRendererBuilder()
.setUninferredTypeParameterAsName(true)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setTextFormat(TextFormat.HTML).build();
DescriptorRenderer DEPRECATION = new DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setWithoutTypeParameters(false)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
.setReceiverAfterName(false)
.setRenderCompanionObjectName(true)
.setRenderAccessors(true)
.setWithoutSuperTypes(true)
.setRenderDefaultValues(false)
.setStartFromName(true).build();
@NotNull
String renderType(@NotNull JetType type);
@NotNull
String renderTypeArguments(@NotNull List<TypeProjection> typeArguments);
@NotNull
String renderClassifierName(@NotNull ClassifierDescriptor klass);
@NotNull
String renderAnnotation(@NotNull AnnotationDescriptor annotation);
@NotNull
@Override
String render(@NotNull DeclarationDescriptor declarationDescriptor);
@NotNull
String renderFunctionParameters(@NotNull FunctionDescriptor functionDescriptor);
@NotNull
String renderName(@NotNull Name name);
@NotNull
String renderFqName(@NotNull FqNameBase fqName);
enum TextFormat {
PLAIN, HTML
}
enum OverrideRenderingPolicy {
RENDER_OVERRIDE, RENDER_OPEN, RENDER_OPEN_OVERRIDE
}
enum ParameterNameRenderingPolicy {
ALL, ONLY_NON_SYNTHESIZED, NONE
}
enum Modifier {
VISIBILITY, MODALITY, OVERRIDE, ANNOTATIONS, INNER, MEMBER_KIND
}
/** @see DefaultValueParameterHandler */
interface ValueParametersHandler {
void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder);
void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder);
void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder);
void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder);
}
class DefaultValueParameterHandler implements ValueParametersHandler {
@Override
public void appendBeforeValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
stringBuilder.append("(");
}
@Override
public void appendAfterValueParameters(@NotNull FunctionDescriptor function, @NotNull StringBuilder stringBuilder) {
stringBuilder.append(")");
}
@Override
public void appendBeforeValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
}
@Override
public void appendAfterValueParameter(@NotNull ValueParameterDescriptor parameter, @NotNull StringBuilder stringBuilder) {
FunctionDescriptor function = (FunctionDescriptor) parameter.getContainingDeclaration();
if (parameter.getIndex() != function.getValueParameters().size() - 1) {
stringBuilder.append(", ");
}
}
}
}
@@ -0,0 +1,190 @@
/*
* Copyright 2010-2015 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.kotlin.renderer
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.name.FqNameBase
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.JetType
import org.jetbrains.kotlin.types.TypeProjection
public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public fun renderType(type: JetType): String
public fun renderTypeArguments(typeArguments: List<TypeProjection>): String
public fun renderClassifierName(klass: ClassifierDescriptor): String
public fun renderAnnotation(annotation: AnnotationDescriptor): String
override fun render(declarationDescriptor: DeclarationDescriptor): String
public fun renderFunctionParameters(functionDescriptor: FunctionDescriptor): String
public fun renderName(name: Name): String
public fun renderFqName(fqName: FqNameBase): String
public enum class TextFormat {
PLAIN,
HTML
}
public enum class OverrideRenderingPolicy {
RENDER_OVERRIDE,
RENDER_OPEN,
RENDER_OPEN_OVERRIDE
}
public enum class ParameterNameRenderingPolicy {
ALL,
ONLY_NON_SYNTHESIZED,
NONE
}
public enum class Modifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
}
/** @see DefaultValueParameterHandler
*/
public interface ValueParametersHandler {
public fun appendBeforeValueParameters(function: FunctionDescriptor, stringBuilder: StringBuilder)
public fun appendAfterValueParameters(function: FunctionDescriptor, stringBuilder: StringBuilder)
public fun appendBeforeValueParameter(parameter: ValueParameterDescriptor, stringBuilder: StringBuilder)
public fun appendAfterValueParameter(parameter: ValueParameterDescriptor, stringBuilder: StringBuilder)
}
public class DefaultValueParameterHandler : ValueParametersHandler {
override fun appendBeforeValueParameters(function: FunctionDescriptor, stringBuilder: StringBuilder) {
stringBuilder.append("(")
}
override fun appendAfterValueParameters(function: FunctionDescriptor, stringBuilder: StringBuilder) {
stringBuilder.append(")")
}
override fun appendBeforeValueParameter(parameter: ValueParameterDescriptor, stringBuilder: StringBuilder) {
}
override fun appendAfterValueParameter(parameter: ValueParameterDescriptor, stringBuilder: StringBuilder) {
val function = parameter.getContainingDeclaration() as FunctionDescriptor
if (parameter.getIndex() != function.getValueParameters().size() - 1) {
stringBuilder.append(", ")
}
}
}
companion object {
public val COMPACT_WITH_MODIFIERS: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.build()
public val COMPACT: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.build()
public val COMPACT_WITH_SHORT_TYPES: DescriptorRenderer = DescriptorRendererBuilder()
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED)
.build()
public val STARTS_FROM_NAME: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setStartFromName(true)
.build()
public val ONLY_NAMES_WITH_SHORT_TYPES: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setWithoutTypeParameters(true)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
.setReceiverAfterName(true)
.setRenderCompanionObjectName(true)
.setWithoutSuperTypes(true)
.setStartFromName(true)
.build()
public val FQ_NAMES_IN_TYPES: DescriptorRenderer = DescriptorRendererBuilder().build()
public val SHORT_NAMES_IN_TYPES: DescriptorRenderer = DescriptorRendererBuilder()
.setNameShortness(NameShortness.SHORT)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.ONLY_NON_SYNTHESIZED)
.build()
public val DEBUG_TEXT: DescriptorRenderer = DescriptorRendererBuilder()
.setDebugMode(true)
.setNameShortness(NameShortness.FULLY_QUALIFIED)
.build()
public val FLEXIBLE_TYPES_FOR_CODE: DescriptorRenderer = DescriptorRendererBuilder()
.setFlexibleTypesForCode(true)
.build()
public val HTML_COMPACT_WITH_MODIFIERS: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setTextFormat(TextFormat.HTML)
.build()
public val HTML_NAMES_WITH_SHORT_TYPES: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setNameShortness(NameShortness.SHORT)
.setRenderCompanionObjectName(true)
.setTextFormat(TextFormat.HTML)
.build()
public val HTML: DescriptorRenderer = DescriptorRendererBuilder()
.setTextFormat(TextFormat.HTML)
.build()
public val HTML_FOR_UNINFERRED_TYPE_PARAMS: DescriptorRenderer = DescriptorRendererBuilder()
.setUninferredTypeParameterAsName(true)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setTextFormat(TextFormat.HTML)
.build()
public val DEPRECATION: DescriptorRenderer = DescriptorRendererBuilder()
.setWithDefinedIn(false)
.setModifiers()
.setNameShortness(NameShortness.SHORT)
.setWithoutTypeParameters(false)
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
.setReceiverAfterName(false)
.setRenderCompanionObjectName(true)
.setRenderAccessors(true)
.setWithoutSuperTypes(true)
.setRenderDefaultValues(false)
.setStartFromName(true)
.build()
}
}
@@ -1,260 +0,0 @@
/*
* Copyright 2010-2015 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.kotlin.renderer;
import kotlin.KotlinPackage;
import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.types.JetType;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumSet;
import java.util.Set;
public class DescriptorRendererBuilder {
private NameShortness nameShortness = NameShortness.SOURCE_CODE_QUALIFIED;
private boolean withDefinedIn = true;
private Set<DescriptorRenderer.Modifier> modifiers = EnumSet.allOf(DescriptorRenderer.Modifier.class);
private boolean startFromName = false;
private boolean debugMode = false;
private boolean classWithPrimaryConstructor = false;
private boolean verbose = false;
private boolean unitReturnType = true;
private boolean normalizedVisibilities = false;
private boolean showInternalKeyword = true;
private boolean prettyFunctionTypes = true;
private boolean uninferredTypeParameterAsName = false;
private boolean includePropertyConstant = false;
private boolean withoutTypeParameters = false;
private boolean withoutSuperTypes = false;
private Function1<JetType, JetType> typeNormalizer = new Function1<JetType, JetType>() {
@Override
public JetType invoke(JetType type) {
return type;
}
};
private boolean renderDefaultValues = true;
private boolean flexibleTypesForCode = false;
private boolean secondaryConstructorsAsPrimary = true;
private DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN;
private DescriptorRenderer.ValueParametersHandler valueParametersHandler = new DescriptorRenderer.DefaultValueParameterHandler();
private DescriptorRenderer.TextFormat textFormat = DescriptorRenderer.TextFormat.PLAIN;
private DescriptorRenderer.ParameterNameRenderingPolicy parameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.ALL;
private Collection<FqName> excludedAnnotationClasses = Collections.emptyList();
private boolean receiverAfterName = false;
private boolean renderCompanionObjectName = false;
private boolean renderAccessors = false;
// See JvmAnnotationNames#ANNOTATIONS_COPIED_TO_TYPES
private Collection<FqName> excludedTypeAnnotationClasses = KotlinPackage.setOf(
new FqName("org.jetbrains.annotations.ReadOnly"),
new FqName("org.jetbrains.annotations.Mutable"),
new FqName("org.jetbrains.annotations.NotNull"),
new FqName("org.jetbrains.annotations.Nullable")
);
public DescriptorRendererBuilder() {
}
@NotNull
public DescriptorRendererBuilder setNameShortness(NameShortness shortness) {
this.nameShortness = shortness;
return this;
}
@NotNull
public DescriptorRendererBuilder setWithDefinedIn(boolean withDefinedIn) {
this.withDefinedIn = withDefinedIn;
return this;
}
@NotNull
public DescriptorRendererBuilder setModifiers(Set<DescriptorRenderer.Modifier> modifiers) {
this.modifiers = modifiers;
return this;
}
@NotNull
public DescriptorRendererBuilder setModifiers(DescriptorRenderer.Modifier... modifiers) {
return setModifiers(KotlinPackage.setOf(modifiers));
}
@NotNull
public DescriptorRendererBuilder setStartFromName(boolean startFromName) {
this.startFromName = startFromName;
return this;
}
@NotNull
public DescriptorRendererBuilder setDebugMode(boolean debugMode) {
this.debugMode = debugMode;
return this;
}
@NotNull
public DescriptorRendererBuilder setClassWithPrimaryConstructor(boolean classWithPrimaryConstructor) {
this.classWithPrimaryConstructor = classWithPrimaryConstructor;
return this;
}
@NotNull
public DescriptorRendererBuilder setVerbose(boolean verbose) {
this.verbose = verbose;
return this;
}
@NotNull
public DescriptorRendererBuilder setUnitReturnType(boolean unitReturnType) {
this.unitReturnType = unitReturnType;
return this;
}
@NotNull
public DescriptorRendererBuilder setNormalizedVisibilities(boolean normalizedVisibilities) {
this.normalizedVisibilities = normalizedVisibilities;
return this;
}
@NotNull
public DescriptorRendererBuilder setShowInternalKeyword(boolean showInternalKeyword) {
this.showInternalKeyword = showInternalKeyword;
return this;
}
@NotNull
public DescriptorRendererBuilder setOverrideRenderingPolicy(@NotNull DescriptorRenderer.OverrideRenderingPolicy overrideRenderingPolicy) {
this.overrideRenderingPolicy = overrideRenderingPolicy;
return this;
}
@NotNull
public DescriptorRendererBuilder setValueParametersHandler(@NotNull DescriptorRenderer.ValueParametersHandler valueParametersHandler) {
this.valueParametersHandler = valueParametersHandler;
return this;
}
@NotNull
public DescriptorRendererBuilder setTextFormat(@NotNull DescriptorRenderer.TextFormat textFormat) {
this.textFormat = textFormat;
return this;
}
@NotNull
public DescriptorRendererBuilder setExcludedAnnotationClasses(@NotNull Collection<FqName> excludedAnnotationClasses) {
this.excludedAnnotationClasses = excludedAnnotationClasses;
return this;
}
@NotNull
public DescriptorRendererBuilder setExcludedTypeAnnotationClasses(@NotNull Collection<FqName> excludedTypeAnnotationClasses) {
this.excludedTypeAnnotationClasses = excludedTypeAnnotationClasses;
return this;
}
@NotNull
public DescriptorRendererBuilder setPrettyFunctionTypes(boolean prettyFunctionTypes) {
this.prettyFunctionTypes = prettyFunctionTypes;
return this;
}
@NotNull
public DescriptorRendererBuilder setUninferredTypeParameterAsName(boolean uninferredTypeParameterAsName) {
this.uninferredTypeParameterAsName = uninferredTypeParameterAsName;
return this;
}
@NotNull
public DescriptorRendererBuilder setIncludePropertyConstant(boolean includePropertyConstant) {
this.includePropertyConstant = includePropertyConstant;
return this;
}
@NotNull
public DescriptorRendererBuilder setParameterNameRenderingPolicy(@NotNull DescriptorRenderer.ParameterNameRenderingPolicy parameterNameRenderingPolicy) {
this.parameterNameRenderingPolicy = parameterNameRenderingPolicy;
return this;
}
@NotNull
public DescriptorRendererBuilder setWithoutTypeParameters(boolean withoutTypeParameters) {
this.withoutTypeParameters = withoutTypeParameters;
return this;
}
@NotNull
public DescriptorRendererBuilder setReceiverAfterName(boolean receiverAfterName) {
this.receiverAfterName = receiverAfterName;
return this;
}
@NotNull
public DescriptorRendererBuilder setRenderCompanionObjectName(boolean renderCompanionObjectName) {
this.renderCompanionObjectName = renderCompanionObjectName;
return this;
}
@NotNull
public DescriptorRendererBuilder setWithoutSuperTypes(boolean withoutSuperTypes) {
this.withoutSuperTypes = withoutSuperTypes;
return this;
}
@NotNull
public DescriptorRendererBuilder setRenderDefaultValues(boolean renderDefaultValues) {
this.renderDefaultValues = renderDefaultValues;
return this;
}
@NotNull
public DescriptorRendererBuilder setTypeNormalizer(@NotNull Function1<JetType, JetType> typeNormalizer) {
this.typeNormalizer = typeNormalizer;
return this;
}
@NotNull
public DescriptorRendererBuilder setFlexibleTypesForCode(boolean flexibleTypesForCode) {
this.flexibleTypesForCode = flexibleTypesForCode;
return this;
}
@NotNull
public DescriptorRendererBuilder setSecondaryConstructorsAsPrimary(boolean secondaryConstructorsAsPrimary) {
this.secondaryConstructorsAsPrimary = secondaryConstructorsAsPrimary;
return this;
}
@NotNull
public DescriptorRendererBuilder setRenderAccessors(boolean renderAccessors) {
this.renderAccessors = renderAccessors;
return this;
}
@NotNull
public DescriptorRenderer build() {
return new DescriptorRendererImpl(
nameShortness, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, verbose, unitReturnType,
normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName,
overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, excludedTypeAnnotationClasses,
includePropertyConstant, parameterNameRenderingPolicy, withoutTypeParameters, receiverAfterName, renderCompanionObjectName,
withoutSuperTypes, typeNormalizer, renderDefaultValues, flexibleTypesForCode, secondaryConstructorsAsPrimary,
renderAccessors
);
}
}
@@ -0,0 +1,212 @@
/*
* Copyright 2010-2015 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.kotlin.renderer
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.types.JetType
import java.util.Collections
import java.util.EnumSet
public class DescriptorRendererBuilder {
private var nameShortness = NameShortness.SOURCE_CODE_QUALIFIED
private var withDefinedIn = true
private var modifiers: Set<DescriptorRenderer.Modifier> = EnumSet.allOf(javaClass<DescriptorRenderer.Modifier>())
private var startFromName = false
private var debugMode = false
private var classWithPrimaryConstructor = false
private var verbose = false
private var unitReturnType = true
private var normalizedVisibilities = false
private var showInternalKeyword = true
private var prettyFunctionTypes = true
private var uninferredTypeParameterAsName = false
private var includePropertyConstant = false
private var withoutTypeParameters = false
private var withoutSuperTypes = false
private var typeNormalizer: Function1<JetType, JetType> = object : Function1<JetType, JetType> {
override fun invoke(type: JetType): JetType {
return type
}
}
private var renderDefaultValues = true
private var flexibleTypesForCode = false
private var secondaryConstructorsAsPrimary = true
private var overrideRenderingPolicy: DescriptorRenderer.OverrideRenderingPolicy = DescriptorRenderer.OverrideRenderingPolicy.RENDER_OPEN
private var valueParametersHandler: DescriptorRenderer.ValueParametersHandler = DescriptorRenderer.DefaultValueParameterHandler()
private var textFormat: DescriptorRenderer.TextFormat = DescriptorRenderer.TextFormat.PLAIN
private var parameterNameRenderingPolicy: DescriptorRenderer.ParameterNameRenderingPolicy = DescriptorRenderer.ParameterNameRenderingPolicy.ALL
private var excludedAnnotationClasses: Collection<FqName> = emptyList()
private var receiverAfterName = false
private var renderCompanionObjectName = false
private var renderAccessors = false
// See JvmAnnotationNames#ANNOTATIONS_COPIED_TO_TYPES
private var excludedTypeAnnotationClasses: Collection<FqName> = setOf(
FqName("org.jetbrains.annotations.ReadOnly"),
FqName("org.jetbrains.annotations.Mutable"),
FqName("org.jetbrains.annotations.NotNull"),
FqName("org.jetbrains.annotations.Nullable"))
public fun setNameShortness(shortness: NameShortness): DescriptorRendererBuilder {
this.nameShortness = shortness
return this
}
public fun setWithDefinedIn(withDefinedIn: Boolean): DescriptorRendererBuilder {
this.withDefinedIn = withDefinedIn
return this
}
public fun setModifiers(modifiers: Set<DescriptorRenderer.Modifier>): DescriptorRendererBuilder {
this.modifiers = modifiers
return this
}
public fun setModifiers(vararg modifiers: DescriptorRenderer.Modifier): DescriptorRendererBuilder {
return setModifiers(setOf(*modifiers))
}
public fun setStartFromName(startFromName: Boolean): DescriptorRendererBuilder {
this.startFromName = startFromName
return this
}
public fun setDebugMode(debugMode: Boolean): DescriptorRendererBuilder {
this.debugMode = debugMode
return this
}
public fun setClassWithPrimaryConstructor(classWithPrimaryConstructor: Boolean): DescriptorRendererBuilder {
this.classWithPrimaryConstructor = classWithPrimaryConstructor
return this
}
public fun setVerbose(verbose: Boolean): DescriptorRendererBuilder {
this.verbose = verbose
return this
}
public fun setUnitReturnType(unitReturnType: Boolean): DescriptorRendererBuilder {
this.unitReturnType = unitReturnType
return this
}
public fun setNormalizedVisibilities(normalizedVisibilities: Boolean): DescriptorRendererBuilder {
this.normalizedVisibilities = normalizedVisibilities
return this
}
public fun setShowInternalKeyword(showInternalKeyword: Boolean): DescriptorRendererBuilder {
this.showInternalKeyword = showInternalKeyword
return this
}
public fun setOverrideRenderingPolicy(overrideRenderingPolicy: DescriptorRenderer.OverrideRenderingPolicy): DescriptorRendererBuilder {
this.overrideRenderingPolicy = overrideRenderingPolicy
return this
}
public fun setValueParametersHandler(valueParametersHandler: DescriptorRenderer.ValueParametersHandler): DescriptorRendererBuilder {
this.valueParametersHandler = valueParametersHandler
return this
}
public fun setTextFormat(textFormat: DescriptorRenderer.TextFormat): DescriptorRendererBuilder {
this.textFormat = textFormat
return this
}
public fun setExcludedAnnotationClasses(excludedAnnotationClasses: Collection<FqName>): DescriptorRendererBuilder {
this.excludedAnnotationClasses = excludedAnnotationClasses
return this
}
public fun setExcludedTypeAnnotationClasses(excludedTypeAnnotationClasses: Collection<FqName>): DescriptorRendererBuilder {
this.excludedTypeAnnotationClasses = excludedTypeAnnotationClasses
return this
}
public fun setPrettyFunctionTypes(prettyFunctionTypes: Boolean): DescriptorRendererBuilder {
this.prettyFunctionTypes = prettyFunctionTypes
return this
}
public fun setUninferredTypeParameterAsName(uninferredTypeParameterAsName: Boolean): DescriptorRendererBuilder {
this.uninferredTypeParameterAsName = uninferredTypeParameterAsName
return this
}
public fun setIncludePropertyConstant(includePropertyConstant: Boolean): DescriptorRendererBuilder {
this.includePropertyConstant = includePropertyConstant
return this
}
public fun setParameterNameRenderingPolicy(parameterNameRenderingPolicy: DescriptorRenderer.ParameterNameRenderingPolicy): DescriptorRendererBuilder {
this.parameterNameRenderingPolicy = parameterNameRenderingPolicy
return this
}
public fun setWithoutTypeParameters(withoutTypeParameters: Boolean): DescriptorRendererBuilder {
this.withoutTypeParameters = withoutTypeParameters
return this
}
public fun setReceiverAfterName(receiverAfterName: Boolean): DescriptorRendererBuilder {
this.receiverAfterName = receiverAfterName
return this
}
public fun setRenderCompanionObjectName(renderCompanionObjectName: Boolean): DescriptorRendererBuilder {
this.renderCompanionObjectName = renderCompanionObjectName
return this
}
public fun setWithoutSuperTypes(withoutSuperTypes: Boolean): DescriptorRendererBuilder {
this.withoutSuperTypes = withoutSuperTypes
return this
}
public fun setRenderDefaultValues(renderDefaultValues: Boolean): DescriptorRendererBuilder {
this.renderDefaultValues = renderDefaultValues
return this
}
public fun setTypeNormalizer(typeNormalizer: Function1<JetType, JetType>): DescriptorRendererBuilder {
this.typeNormalizer = typeNormalizer
return this
}
public fun setFlexibleTypesForCode(flexibleTypesForCode: Boolean): DescriptorRendererBuilder {
this.flexibleTypesForCode = flexibleTypesForCode
return this
}
public fun setSecondaryConstructorsAsPrimary(secondaryConstructorsAsPrimary: Boolean): DescriptorRendererBuilder {
this.secondaryConstructorsAsPrimary = secondaryConstructorsAsPrimary
return this
}
public fun setRenderAccessors(renderAccessors: Boolean): DescriptorRendererBuilder {
this.renderAccessors = renderAccessors
return this
}
public fun build(): DescriptorRenderer {
return DescriptorRendererImpl(nameShortness, withDefinedIn, modifiers, startFromName, debugMode, classWithPrimaryConstructor, verbose, unitReturnType, normalizedVisibilities, showInternalKeyword, prettyFunctionTypes, uninferredTypeParameterAsName, overrideRenderingPolicy, valueParametersHandler, textFormat, excludedAnnotationClasses, excludedTypeAnnotationClasses, includePropertyConstant, parameterNameRenderingPolicy, withoutTypeParameters, receiverAfterName, renderCompanionObjectName, withoutSuperTypes, typeNormalizer, renderDefaultValues, flexibleTypesForCode, secondaryConstructorsAsPrimary, renderAccessors)
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff