Converted DescriptorRenderer, DescriptorRendererImpl and DescriptorRedererBuilder to Kotlin
This commit is contained in:
@@ -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
Reference in New Issue
Block a user